Reihenfolge der Routing-Tabelle ändern/Eintrag nach oben oder unten verschieben in Linux

Reihenfolge der Routing-Tabelle ändern/Eintrag nach oben oder unten verschieben in Linux

Ich habe einige Schnittstellen in meiner Routing-Tabelle und die erste funktioniert nicht mehr. Ich möchte sie vorübergehend nach unten verschieben, um eine darunterliegende zur Standardschnittstelle zu machen. Muss ich sie löschen und erneut hinzufügen oder gibt es einen Befehl ip/route/ifconfig, mit dem ich die Einträge einfach nach oben oder unten verschieben kann?

Antwort1

Eine Routing-Tabelle wird nicht von oben nach unten verwendet. Stattdessen haben spezifischere Routen (mit längerer Präfixlänge) immer Vorrang vor weniger spezifischen – z. B. hat eine /24-Route Vorrang vor einer /16-Route, die wiederum Vorrang vor der „Standard“-/0-Route hat.

Wenn Sie zwei Routen zum exakt gleichen Ziel haben (z. B. beide für 192.168.1.0/24), werden sie anhand ihres „metrischen“ Parameters verglichen. Dabei handelt es sich im Wesentlichen um die Kosten der Route, sodass der niedrigste metrische Wert (die niedrigsten Kosten) gewinnt.

Wenn Sie also über mehrere „Standardrouten“ verfügen, können Sie eine priorisieren, indem Sie sie entfernen und mit einer niedrigeren Metrik erneut hinzufügen, zum Beispiel:

$ ip route
default via 192.168.7.1 dev eth0 proto dhcp metric 100
default via 192.168.1.1 dev wlan0 proto dhcp metric 600
$ ip route del default dev wlan0
$ ip route add default via 192.168.1.1 dev wlan0 metric 50

(Sie müssen die unerwünschte Route mit der hohen Metrik nicht wirklich löschen, insbesondere wenn die Änderung nur von kurzer Dauer ist – es reicht aus, die neue hinzuzufügen.)

ip route changeBeachten Sie, dass Sie in dieser Situation wahrscheinlich nicht oder verwenden können ip route replace, da diese die angegebene Metrik alsNachschlageschlüsselund das Gerät als zu aktualisierenden Parameter, während Sie wahrscheinlich genau das Gegenteil tun möchten.

verwandte Informationen