Impossible de supprimer un itinéraire avec la passerelle 0.0.0.0

8

J'essaie de configurer mes itinéraires d'une manière qui me permettra de me connecter à la boîte Vagrant de la démo Solum .

Ma table de routage contient, sans s'y limiter, les itinéraires suivants:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
192.168.76.0    192.168.76.2    255.255.255.0   UG    0      0        0 vboxnet0
192.168.76.0    0.0.0.0         255.255.255.0   U     0      0        0 vboxnet0

Je soupçonne que la troisième route (générée automatiquement au démarrage de la boîte Vagrant) interfère avec la deuxième route (créée manuellement), alors j'essaie de la supprimer.

Cependant, en utilisant l'une des commandes suivantes

$ sudo route del 192.168.76.0 gw 0.0.0.0
$ sudo route del 192.168.76.0

Retour:

SIOCDELRT: No such process

qui apparaît généralement lorsque routevous ne trouvez pas l'itinéraire.

D'autre part, en utilisant

$ sudo route del 192.168.76.0/24 gw 0.0.0.0
$ sudo route del 192.168.76.0/24

rendements:

route: netmask 000000ff doesn't make sense with host route
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
(rest of usage)

Qu'est-ce que je fais mal? Y a-t-il une raison pour laquelle je ne peux pas supprimer cet itinéraire? Ai-je tort de supposer que cela interfère avec celui que j'ai mis en place?

(J'utilise Ubuntu 14.04+).

Dragomok
la source
2
Du haut de ma tête: essayez route del -net 192.168.76.0. Sinon, il pense que vous essayez de supprimer une route vers un seul hôte.
Jos
Comment avez-vous ajouté l'itinéraire? Il semble que vous utilisiez vbox, donc le routage peut faire partie de la configuration de vobx, je ne peux pas dire d'après ce que vous avez publié.
Panther
Par curiosité, mais pourquoi avez-vous choisi cette voie? Il me semble que le réseau 192.168.76.0/24 est en liaison - aucune passerelle nécessaire. Mais lorsque vous jetez un œil aux instructions de configuration que vous avez liées, vous trouverez l'itinéraire route add -net 192.168.78.0/24 192.168.76.2qui a beaucoup plus de sens.
Nephente
2
Btw. Si deux itinéraires ou plus correspondent à un hôte, le plus spécifique est prioritaire, c'est-à-dire celui avec le préfixe le plus long. Une route hôte statique a le préfixe / 32 et sera préférée. Le critère suivant (généralement) dépend de la façon dont la route a été apprise, par exemple statique ou via un protocole de routage, où les routes en liaison ont la priorité la plus élevée, suivies des routes statiques, suivies des routes dynamiques apprises via, par exemple, OSPF.
Nephente
@Jos votre réponse s'est avérée être presque correcte - si j'ajoute juste /24à la fin de la commande, cela fonctionne. Je vous remercie. Si vous postez une réponse, peut-être avec quelques précisions dans l'intérêt des personnes qui exploreront cette question à l'avenir, je l'accepterai.
Dragomok

Réponses:

11

Pour supprimer une seule route d'une table de routes, vous devez spécifier suffisamment de paramètres pour qu'une correspondance unique avec l'une des routes puisse être établie.

Si vous souhaitez supprimer un sous-réseau entier (par opposition à un seul hôte), vous devez à la fois utiliser l' -netindicateur et une indication de la portée de l'adresse réseau, c'est-à-dire soit le netmaskparamètre (par exemple 255.255.255.0) ou un nombre comme / 24 (ce qui signifie que les 24 premiers bits sont le numéro de réseau et les 8 autres sont utilisés pour les hôtes). Dans votre cas, les deux

sudo route del -net 192.168.76.0/24

et

sudo route del -net 192.168.76.0 netmask 255.255.255.0

aurait fonctionné.

(merci à @nephente pour les ajouts utiles)

Jos
la source
ou suivi de la spécification de l'interface, par exemple dev vboxnet0->sudo route del -net 192.168.76.0 netmask 255.255.255.0 dev vboxnet0
adadion
0

Le commentaire de Jos est presque correct:

$ sudo route del -net 192.168.76.0/24 supprime l'itinéraire.

Dragomok
la source