it-swarm.com.de

Wie stelle ich statische Routen in Ubuntu Server ein?

Ich benutze Ubuntu seit Ubuntu 8.10; Heute arbeite ich mit Ubuntu 12.04 Server.

Ich habe Schwierigkeiten, statische Routen beim Booten beizubehalten. Normalerweise würde ich die Routenbefehle setzen

/sbin/route add -net <IP>/<MASK> <GW> dev <ethX>

in /etc/rc.local oder ich würde eine Datei (mit dem Namen routes) im Verzeichnis /etc/network/if-up/ erstellen, aber ich stelle fest, dass es unter Ubuntu 12.04 nicht funktioniert.

Wenn ich die Befehle in die Shell eingebe, funktionieren sie, aber dieselben Befehle funktionieren nicht, wenn sie sich in der angegebenen Datei befinden.

Ich habe bereits versucht, den Dateinamen in andere Namen zu ändern, weil ich dachte, mein Dateiname (routes) könnte in Ubuntu 12.04 fehlerhaft sein, aber das hat auch nicht funktioniert.

Ich bemerke auch, dass der Befehl /sbin/ifconfig funktioniert, abzüglich des /sbin/route.

Was hat sich in der Netzwerkeinrichtung geändert?

Wie kann ich unter Ubuntu 12.04 statische Routen definieren?

51
Frank Allan

Sie können statische Routen in /etc/network/interfaces einfügen:

auto eth0
iface eth0 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
      up route add -net 172.16.0.0 netmask 255.240.0.0 gw 192.168.1.1
64
Eric Carvalho

Ich habe sehr oft festgestellt, dass sich der richtige Ort zum Definieren einer statischen Route in/etc/network/interfaces befindet. Es ist in Ordnung, wenn Sie das Netzwerk global neu starten, beispielsweise mit /etc/init.d/networking restart. Wenn Sie jedoch ifdown und ifup verwenden, um eine Schnittstelle einzeln herunterzufahren, endet ifup mit dem Fehler:

ifup eth1

RTNETLINK answers: File exists
Failed to bring up eth1.

Aus diesem Grund wird versucht, eine Route zu definieren, diese ist jedoch bereits definiert. Die Benutzeroberfläche ist trotzdem aktiv, aber ifup wird nicht aktualisiert/ausgeführt/vernetzt/ifstate. Wenn Sie uns das nächste Mal ifdown mitteilen, können Sie dies nur tun, wenn Sie das Flag --force verwenden.

Damit die Konfiguration fortgesetzt werden kann, auch wenn Routen bereits definiert sind, können Sie dieses Format verwenden, wenn Sie Routen in/etc/network/interfaces definieren

up ip route add 172.16.0.0/24 via 192.168.10.1 || true
up ip route add 192.168.0.0/16 via 192.168.10.1 || true

Auf diese Weise wird die Warnung in der Ausgabe angezeigt, die Schnittstellenkonfiguration wird jedoch abgeschlossen

ifup eth1

RTNETLINK answers: File exists
RTNETLINK answers: File exists
ssh stop/waiting
ssh start/running, process 18553
18
mseisdedos

Sie können dies versuchen (fügen Sie es zu /etc/network/interfaces hinzu). Dies ist fast die vollständige Methode zum Festlegen von Routen:

auto eth0
iface eth0 inet static
    post-up /sbin/route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
    post-up /bin/mount -t nfs 192.168.0.203:/motd/ /motd/
10
mmehboobhan

In Ubuntu gibt es ein Paket ifupdown-extra.
Es bietet automatische Skripts (installiert in /etc/network/*/), von denen eines zum Hinzufügen statischer Routen verwendet wird.

Die Konfigurationsdatei dafür ist /etc/network/routes

Am Anfang dieser Konfigurationsdatei befindet sich eine gute Beschreibung:

Diese Konfigurationsdatei wird vom Skript "static-routes if-updown" und vom Skript "/etc/init.d/networking-routes" gelesen, um eine Liste von Routen einzurichten, die entweder einer bestimmten Schnittstelle oder globalen Routen zugeordnet sind.

Eine Beispielroute, die ich benutze, ist:

192.168.240.0 255.255.255.0 192.168.130.3 em3
6
NGRhodes

was bei uns funktioniert hat war

Sudo route add -net 192.168.0.2/32 gw 192.168.1.1 netmask 255.255.0.0

früher lief ich auf einem Mac:

Sudo route -n add -net 192.168.0.2/32 192.168.1.1

aber auf einem Ubuntu fehlte das "gw" zwischen IPs und dem letzten "netmask" -Teil (auch -n auf Ubuntu nicht erforderlich)

1
Peter Perháč

Ich bevorzuge die Verwendung von nmcli.

nmcli device modify <device-name> ipv4.routes "<ip>/<mask> <gw>" ipv4.route-metric 25

Zum Beispiel:

nmcli device modify wlp2s0 ipv4.routes "1.1.1.0/24 192.168.0.1" ipv4.route-metric 25

Übernehmen Sie anschließend die Änderungen, indem Sie den NetworkManager-Dienst neu starten:

Sudo systemctl restart NetworkManager.service
0
isapir