78 votes

Comment supprimer une route de la table de routage de Linux ?

Cela s'avère être plus difficile que je ne le pensais. Les routes que je veux supprimer sont les routes " !" rejetées, mais je ne parviens pas à formuler la bonne commande "route del" pour y parvenir.

Voici la table de routage...

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
67.40.227.206   *               255.255.255.255 UH    0      0        0 ppp0
192.168.46.79   *               255.255.255.255 UH    0      0        0 ipsec0
192.168.46.79   -               255.255.255.255 !H    2      -        0 -
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
10.1.0.0        *               255.255.0.0     U     0      0        0 ipsec0
10.1.0.0        -               255.255.0.0     !     2      -        0 -
default         *               0.0.0.0         U     3      0        0 ppp0
default         *               0.0.0.0         U     4      0        0 ppp0

J'ai deux entrées pour 192.168.46.79 et 10.1.0.0. Elles sont générées automatiquement par le petit routeur basé sur Linux que j'utilise. Je peux faire un ping sur les tunnels IPSEC à partir du Shell lui-même, mais le trafic provenant du réseau local prend la deuxième route (la route " !" ou "!H" rejetée) pour des raisons que je ne comprends tout simplement pas.

0 votes

Pouvez-vous être plus précis lorsque vous dites que le trafic emprunte la "deuxième voie" ?

0 votes

Remarquez les deux entrées de table pour 192.168.46.79 ? Au niveau du routeur Shell, si j'envoie un ping de ce côté du tunnel, cela fonctionne. Du côté du réseau local, le trafic se dirige vers la "deuxième entrée 192.168.46.79" et est rejeté ou tombe.

0 votes

Je ne comprends pas non plus pourquoi le SG560 génère deux (2) entrées de table pour "default" et les destinations IPSEC. Je suis perplexe.

104voto

Philippe Gachoud Points 1417

Avec le route -n vous obtiendrez

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.178.1   0.0.0.0         UG    0      0        0 eth0
0.0.0.0         160.98.123.1    0.0.0.0         UG    600    0        0 wlan0

sudo route del -net 0.0.0.0 gw 192.168.178.1 netmask 0.0.0.0 dev eth0

vous obtiendrez tous les paramètres respectivement de ci-dessus

4 votes

Après le redémarrage, il apparaît à nouveau. Comment puis-je le supprimer définitivement ?

1 votes

@shyamkkhadka cela dépend du processus à partir duquel il a été créé... je vous recommande de poster une question avec votre cas spécifique pour l'analyser. Il est important de donner des détails sur la route que vous avez obtenue et que vous voulez supprimer. La plupart du temps, le serveur dhcp et le client créent les routes.

0 votes

Et si la passerelle est - ?

21voto

Falcon Momot Points 24815

Les types de routes avec les ! sont soit inaccessibles, soit interdites. route étant un ancien utilitaire de net-tools, ne fait pas la différence entre les deux. Utilisez iproute2.

La méthode Net-Tools pour supprimer ces routes serait d'utiliser route del sur elle. Cependant, net-tools ne fournit aucun moyen de différencier la route rejetée de l'autre (car l'argument dev est facultatif, bien que le fait de ne pas spécifier de périphérique soit susceptible de supprimer la route inaccessible).

iproute2 vous permet de le faire comme ceci :

ip route del unreachable 10.1.0.0/24
ip route del unreachable 192.168.46.79/32

Ce n'est peut-être pas inaccessible, mais interdit. Utilisez ip route sans arguments pour déterminer lequel.

12voto

baumgart Points 2403

Je pense que c'est ça : route del -net 10.1.0.0 netmask 255.255.0.0 metric 2

Je ne suis pas sûr à 100%. Mais, je pense que vous avez quelque chose d'autre de bizarre puisque vous avez 2 routes par défaut.

2 votes

+1 : 2 routes par défaut est toujours un signe de mauvaise configuration (à moins qu'elles ne pointent vers des passerelles différentes et qu'elles aient des métriques différentes).

1voto

Weasel Points 11

D'après mon expérience,

route del -host <ip> reject

devrait fonctionner. Dans votre cas spécifique,

route del -host 192.168.46.79 reject

devrait faire l'affaire. Veuillez noter que ceci s'applique aux routes que j'ai ajoutées manuellement. Je ne suis pas tout à fait certain de la raison pour laquelle le vôtre a des routes dupliquées sans interfaces. En tant que tel, il peut être nécessaire d'appliquer un paramètre métrique, comme décrit par baumgart.

-2voto

Veuillez voir s'il y a un "fichier de configuration des périphériques" sous /etc/network/interfaces.d/ -> J'avais eht0 ! ! Vraiment, c'était eht0 et non eth0 là !

0 votes

Vous pourriez développer quelque peu votre réponse, car le lien avec la question posée n'est pas évident pour l'instant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X