web-dev-qa-db-fra.com

Comment supprimer un itinéraire de la table de routage Linux

Cela s'avère plus difficile que je ne le pensais. Les itinéraires que je souhaite supprimer sont les "!" routes rejetées, mais je n'arrive pas à formuler la bonne commande "route del" pour la retirer.

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. Ceux-ci sont générés automatiquement par le petit routeur basé sur Linux que j'utilise. Je peux envoyer une requête ping aux tunnels IPSEC à partir du shell lui-même, mais le trafic provenant du LAN prend la deuxième route (la route "!" Ou "! H" rejetée) pour des raisons que je ne comprends tout simplement pas.

47
user54259

avec le route -n commande que 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 d'en haut

58
Philippe Gachoud

Les types de routes avec le ! le drapeau est inaccessible ou interdit. route, étant un ancien utilitaire de net-tools, ne fait pas de différence entre les deux. Utilisez iproute2.

La façon dont net-tools pour supprimer ces routes serait d'utiliser route del dessus. Cependant, net-tools ne fournit aucun moyen de différencier la route rejetée de l'autre (car l'argument dev est facultatif, mais ne pas spécifier de périphérique est 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

Il n'est peut-être pas inaccessible, mais interdit. Utilisation ip route sans argument pour déterminer lequel.

16
Falcon Momot

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 maladroit, car vous avez 2 itinéraires par défaut.

10
baumgart