Was macht "scope" in ip route und warum ist es notwendig, eine statische Route in Linux einzurichten?

0

Wenn ich standardmäßige DHCP-Routenregeln durch statische ersetzen möchte, muss ich eine Regel hinzufügen ip route add scope link dev eth0. Oder ich erhalte eine Fehlermeldung: "Nexthop hat ein ungültiges Gateway".

Hier sind meine Fragen:
F1 : Was bedeutet "Scope Link" in IP Route?
F2 : Warum ist es notwendig, von DHCP-Regeln zu statischen Regeln zu wechseln?

user762750
quelle
Welche vollständigen Befehle geben den Fehler aus und welche vollständigen Befehle verwenden Sie, um die Verbindungsrouten hinzuzufügen?
Grawity
@grawity Nachdem alle Regeln zu löschen, ich ausführen „ip route Standard 192.168.1.1 proto statische dev eth0 add“
user762750

Antworten:

3

Über diese Routen teilen Sie dem Linux-Kernel mit, in welchen Subnetzen Sie sich befinden.

Diese Informationen werden nicht in einem ausgeblendeten Feld "Mein aktuelles Subnetz" gespeichert, wenn Sie eine IP-Adresse hinzufügen. Stattdessen wird die Route immer in eine "Scope Link" -Route ohne angegebenes Gateway konvertiert (auch als "Device Route" oder "Interface Route" bezeichnet). Wenn der Kernel feststellen muss, ob eine Adresse direkt erreichbar ist, führt er nur eine Routing Table-Überprüfung durch .

Normalerweise werden diese Routen automatisch hinzugefügt, sobald Sie eine IP-Adresse konfigurieren. Wenn Sie beispielsweise ip addr add 192.168.1.5/24ausführen, wird die IP-Adresse 192.168.1.5 zugewiesen und eine Subnetz-Route für 192.168.1.0/24 erstellt. Es ist daher nicht erforderlich, diese Routen im normalen Gebrauch hinzuzufügen.

Wenn Sie jedoch blindlings "alle Routen löschen", werden diese automatisch erstellten Routen ebenfalls gelöscht, und die Überprüfung des Kernels "Ist diese Adresse in meinem Subnetz" funktioniert nicht mehr. Aus diesem Grund müssen Sie die Routen am Ende manuell neu hinzufügen.

(Der Kernel muss diese Überprüfung während auszuführen , ip route addweil Route Gateways (nexthops) muss seine direkt auf die gleichen L2 - Verbindung erreichbar -. Sie können nicht hinter einem anderen Gateway sein , das heißt, muss das Gateway in Ihrem Subnetz sein.

Routenbereiche sind ein allgemeiner Mechanismus, um diese Einschränkung auszudrücken: Der nächste Punkt der neuen Route muss über eine vorhandene Route mit einem geringeren Bereich erreichbar sein. Mit anderen Worten, Sie müssen einen lokalen Host (Linkbereich) durchlaufen, bevor Sie einen Remote-Host (globaler Bereich) erreichen können.

Grawity
quelle
Vielen Dank, dass Sie meine Zweifel ausgeräumt haben, aber ich habe noch eine andere Frage: Warum wird dieser Befehl "link scope" nicht benötigt, wenn ich systemd-networkd mit einer statischen IP-Adresse konfiguriere?
user762750
Der Kernel erstellt diese Routen automatisch, wenn Sie eine IP-Adresse hinzufügen. Daher wird der Befehl nur benötigt, wenn Sie zuerst eine Adresse hinzufügen und dann alle Routen löschen.
Grawity