risposta-alla-domanda-sullo-sviluppo-web-bd.com

Come posso eliminare un percorso dalla tabella di routing Linux

Questo risulta essere più difficile di quanto pensassi. I percorsi che voglio eliminare sono i "!" percorsi rifiutati, ma non riesco a formulare il comando "route del" corretto per eseguirlo.

Ecco la tabella di routing ...

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

Ho due voci per 192.168.46.79 e 10.1.0.0. Questi sono generati automaticamente dal piccolo router basato su Linux che sto usando. Posso eseguire il ping dei tunnel IPSEC dalla stessa Shell, ma il traffico dalla LAN prende la seconda route (la route "!" O "! H" rifiutata) per motivi che semplicemente non capisco.

47
user54259

con il route -n comando che otterrai

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

otterrai tutti i parametri rispettivamente dall'alto

58
Philippe Gachoud

I tipi di percorsi con ! flag non sono raggiungibili o vietano. route, essendo un'utilità antica di net-tools, non fa distinzione tra i due. Usa iproute2.

Il modo net-tools per eliminare queste rotte sarebbe usare route del su di esso. Tuttavia, net-tools non fornisce alcun modo per distinguere tra la route rifiutata e l'altra (poiché l'argomento dev è facoltativo, sebbene non sia possibile specificare un dispositivo rimuova la route non raggiungibile).

iproute2 ti consente di farlo in questo modo:

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

Potrebbe non essere irraggiungibile, ma vietare. Uso ip route senza argomenti per determinare quale.

16
Falcon Momot

Penso che sia questo: route del -net 10.1.0.0 netmask 255.255.0.0 metric 2

Non ne sono sicuro al 100%. Ma penso che tu abbia qualcos'altro in corso dato che hai 2 percorsi predefiniti.

10
baumgart