Was bedeuten „Linkdown“ und „Onlink“ in Linux Route?

Was bedeuten „Linkdown“ und „Onlink“ in Linux Route?

Als ich Folgendes eingab ip route show: IP-Route anzeigen

Was bedeutet das linkdowneigentlich? Manchmal kann ich noch sehen onlink. Möchte auch wissen, was das onlinkbedeutet.

Beeinflusst es die Routing-Priorität? Zum Beispiel der Fall von zwei Standardrouten im Bild

Antwort1

linkdownist der Status, der für eine Route angezeigt wird, die in der Tabelle enthalten ist und so konfiguriert ist, dass sie über eine Schnittstelle in diesem Status hinausgeht DOWN. Sie können dies sehen, indem Sie Folgendes ausführen:

ip a

und suche nach dem Status der Schnittstellen. Auf meinem Laptop habe ich WLAN eingeschaltet und den Ethernet-Adapter ausgesteckt, daher wird Folgendes angezeigt:

wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000

In meiner Routing-Tabelle habe ich eine Reihe von Routen, aber ich kann ein paar unbrauchbare hinzufügen:

sudo ip route add 192.168.123.0/24 dev enp0s25
sudo ip route add 192.168.124.0/24 dev wlp3s0

Dann wird in meiner Tabelle linkdownfür die Ethernet-Route Folgendes angezeigt:

 192.168.123.0/24 dev enp0s25 scope link linkdown 
 192.168.124.0/24 dev wlp3s0 scope link 

onlinkbedeutet, dass das Routing „so tun soll, als sei der nächste Hop direkt mit diesem Link verbunden, auch wenn er keinem Schnittstellenpräfix entspricht“. Wir können also auch einen der in der Tabelle aufgeführten vortäuschen:

sudo ip route add 192.168.125.0/24 via 192.168.123.111 dev wlp3s0 onlink

Was nun in der Routing-Tabelle angezeigt wird:

192.168.123.0/24 dev enp0s25 scope link linkdown 
192.168.124.0/24 dev wlp3s0 scope link 
192.168.125.0/24 via 192.168.123.111 dev wlp3s0 onlink 

Sie können es sogar noch raffinierter gestalten und beides haben, indem Sie einen Onlink zur Down-Schnittstelle verwenden:

192.168.126.0/24 via 192.168.123.111 dev enp0s25 onlink linkdown

Antwort2

linkdownist der Status, der für eine Route angezeigt wird, die sich in der Tabelle befindet und so konfiguriert ist, dass sie über eine Schnittstelle in diesem Status hinausgeht DOWN.

Ich versuche, anhand eines Beispiels zu zeigen, was die onlinkOption wirklich bewirkt:

Sie haben eth0(auf Ihrem Computer) eine IP-Adresse/Maske konfiguriert: 192.168.0.1/24

Sie möchten aus irgendeinem Grund ein Gateway im physischen LAN verwenden, dessen eth0Konfiguration inkonsistent ist. Nehmen wir an, es hat die Adresse 10.0.10.1/24, die nicht mit der Konfiguration 192.168.0.1/24 übereinstimmt, die Sie Ihrem eigenen Computer zugewiesen haben.

Wenn du sagst:

ip route add default dev eth0 via 10.0.10.1

dann erhalten Sie eine Fehlermeldung (Netzwerk nicht erreichbar oder so etwas).

Warum? Weil es (streng genommen) keinen Sinn ergibt, eine Maschine mit der Nummer 10.0.10.1 im eth0LAN zu haben, da Sie Ihrem Computer mitgeteilt haben, dass die Netzwerkadresse dieses LANs 192.168.0.0/24 lautet.

Aber jetzt kommt es: Wenn Sie onlinkdem Befehl Folgendes hinzufügen:

ip route add default dev eth0 via 10.0.10.1 onlink

dann wird die Route akzeptiert.

Kommen wir nun aber zu einer anderen Frage: Was macht der Kernel, wenn ein Paket an dieses onlinkGateway geroutet werden muss?

Ich habe es (experimentell) überprüft und das ist das Ergebnis: Der Kernel sendet eine ARP-Anfrage im eth0LAN mit der Frage „Wer hat 10.0.10.1?“, also das onlinkvon Ihnen konfigurierte Gateway. Wenn er eine Antwort erhält, hat der Kernel eineMAC-Adressewohin es seine Pakete senden kann und wo das Routing durchgeführt wird.

Das bedeutet: Wenn die Adresse des Gateways nicht mit der LAN-Konfiguration auf Ihrem Computer übereinstimmt ( ), können Sie den Kernel durch Hinzufügen dieses Gateways zur Anweisung eth0zwingen .onlink

Ich schätze, es gibt sehr seltene Situationen, in denen Sie diese Funktion verwenden müssen. Situationen, in denen Sie die Onlink-Option benötigen, sind meist auf ein schlechtes Netzwerkdesign zurückzuführen. Ich glaube nicht, dass das durchschnittliche Tunnel-Setup onlinkbeides benötigt.

Antwort entnommen ausHIER

verwandte Informationen