Wie lösche ich eine Route aus der Linux-Routing-Tabelle?

42

Das ist schwieriger als ich dachte. Die Routen, die ich löschen möchte, sind die "!" Abgelehnte Routen, aber ich kann nicht den richtigen "route del" -Befehl formulieren, um sie abzurufen.

Hier ist die Routing-Tabelle ...

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

Ich habe zwei Einträge für 192.168.46.79 und 10.1.0.0. Diese werden von dem kleinen Linux-basierten Router, den ich verwende, automatisch generiert. Ich kann die IPSEC-Tunnel von der Shell aus anpingen, aber der Datenverkehr vom LAN nimmt die zweite Route (die abgelehnte "!" - oder "! H" -Route) aus Gründen, die ich einfach nicht verstehe.

Zoredache
quelle
Können Sie genauer sagen, dass der Verkehr auf der zweiten Route verläuft?
Zoredache
Beachten Sie die beiden Tabelleneinträge für 192.168.46.79? Wenn ich an der Router-Shell die Seite des Tunnels anpinge, funktioniert es. Von der LAN-Seite geht der Datenverkehr zum "zweiten 192.168.46.79" -Eintrag und wird abgelehnt / verworfen.
Ich verstehe auch nicht, warum das SG560 zwei (2) Tabelleneinträge für "default" und die IPSEC-Ziele generiert. Ich bin ratlos.

Antworten:

53

Mit dem route -nBefehl erhalten Sie

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

Sie erhalten alle Parameter jeweils von oben

Philippe Gachoud
quelle
1
Nach dem Neustart kommt es wieder. Wie kann ich dauerhaft löschen?
Shyamkkhadka
1
@shyamkkhadka es hängt davon ab, von welchem ​​Prozess es erstellt wurde ... empfehlen Ihnen, eine Frage mit Ihrem speziellen Fall zu posten, um es zu analysieren. Geben Sie Details zu der Route an, die Sie haben und die Sie entfernen möchten. Meistens werden der DHCP-Server und der Client die Routen erstellen
Philippe Gachoud,
15

Die Arten der Routen mit der !Flagge sind entweder nicht erreichbar oder verboten. routeunterscheidet nicht zwischen den beiden. Verwenden Sie iproute2.

Die Möglichkeit, diese Routen mit net-tools zu löschen, besteht darin, darauf zuzugreifen route del. Net-tools bietet jedoch keine Möglichkeit zur Unterscheidung zwischen der abgelehnten und der anderen Route (da das dev-Argument optional ist, obwohl die Nichtangabe eines Geräts wahrscheinlich die nicht erreichbare Route entfernt).

Mit iproute2 können Sie dies folgendermaßen tun:

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

Es könnte nicht unerreichbar sein, aber verbieten. Verwenden Sie ip routeohne Argumente, um zu bestimmen, welche.

Falcon Momot
quelle
8

Ich denke es ist das: route del -net 10.1.0.0 netmask 255.255.0.0 metric 2

Ich bin nicht 100% sicher. Aber ich denke, Sie haben etwas anderes doof los, da Sie 2 Standardrouten haben.

baumgart
quelle
2
+1: 2-Standardrouten sind immer ein Zeichen für eine Fehlkonfiguration (es sei denn, sie verweisen tatsächlich auf verschiedene Gateways und haben unterschiedliche Metriken).
Wolfgangsz
-1

Bitte sehen Sie nach, ob es eine "Gerätekonfigurationsdatei" unter /etc/network/interfaces.d/ gibt -> Ich hatte eht0 !! Wirklich, es war eht0 und nicht eth0 da!

Andreas Brandts
quelle
Möglicherweise möchten Sie Ihre Antwort etwas erweitern, da derzeit nicht klar ist, wie sie sich auf die gestellte Frage bezieht.
womble