GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ändern des bestehenden Routeneintrags in Linux

(Zusammenfassen verschiedener Kommentare zu einer Antwort)

Derzeit ist es nicht möglich, die Metrik einer Route zu ändern. Wie eine Nachricht von 2005 auf LKML besagt:

[...] Die Metrik/Priorität kann nicht geändert werden, da wir keine separaten Felder für die abzugleichenden Felder und die neuen Werte haben. Wenn Sie also eine Metrik angeben, wird der Eintrag einfach nicht gefunden und die Anforderung schlägt mit ENOENT fehl, weil NLM_F_CREATE ist nicht angegeben. Dies ist eine Einschränkung des aktuellen Protokolls und es könnte eine gute Idee sein, dies zu ändern, aber es ist nicht trivial [...]

Dies scheint sowohl für ip route change zu gelten und ip route replace - Ersteres führt bei mir zu einem Fehler, während Letzteres wie angekündigt eine zusätzliche Route erstellt (auf seiner Manpage steht, dass replace ersetzt oder Route erstellen). Dies stimmt damit überein, dass der Kernel mit ENOENT und ip route replace antwortet anschließend mit einer Routenerstellungsanfrage.

Die Lösung besteht also darin, die vorhandene Route zu löschen und eine neue hinzuzufügen, z. B.

ip route del 40.2.2.0/24 via 30.1.2.2
ip route add 40.2.2.0/24 via 30.1.2.2 metric 1234

Wie in einem Kommentar zu der Frage vermerkt und eine Nachricht auf der Linux-Net-Mailingliste zitiert:"Die Metrik/Priorität kann nicht geändert werden [...] Dies ist eine Einschränkung des aktuellen Protokolls [...]."
Die einzige Möglichkeit besteht darin, die Route zu löschen und eine neue hinzuzufügen.

Dies geschieht mit dem route Befehl, Beispiel:

sudo route add -net default gw 10.10.0.1 netmask 0.0.0.0 dev wlan0 metric 1

Debian-Manpage für den Route-Befehl


ifmetric ermöglicht es Ihnen, Ihre Routenmetrik im Handumdrehen zu ändern, vorausgesetzt, die Schnittstelle, die die Routen durchlaufen, die Sie ändern möchten.

Nutzung

ifmetric <iface> [<metric>]

Verwenden Sie beispielsweise ifmetric tun0 12 um die Metrik für alle Routen, die durch tun0 gehen, auf 12 zu ändern .


Linux
  1. So fügen Sie eine neue statische Route unter RHEL7 Linux hinzu

  2. So fügen Sie einem vorhandenen Linux-Server eine neue Festplatte hinzu

  3. Melden Sie bestehende Sitzungen in Linux ab

  4. IP-Routing:Linux-Routen-Flags (U – Up, G – Gateway, H – Host)

  5. Linux - Treffer der Standardroute finden

Linux Route Add-Befehl mit Beispielen

Erstellen Sie ein Home-Verzeichnis für einen bestehenden Benutzer in Linux

Route-Befehl unter Linux

So fügen Sie eine Route unter Linux hinzu

7 Beispiele für Linux-Route-Befehle (So fügen Sie eine Route unter Linux hinzu)

route-Befehlsbeispiele in Linux