it-swarm.com.de

Network Manager unterbricht manuelle Routen

Ich habe Ubuntu 13.10, Saucy Salamander x64 als Gast in VirtualBox (mit Windows 7 als Host).

Ich habe diesen /etc/network/interfaces geschrieben, weil ich eine große Anzahl permanenter, manueller statischer Routen hinzufügen muss:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp
    up ip -force -b /etc/network/eth1-routes

eth1-routes enthält mehrere Zeilen des Formulars:

route add 10.0.0.0/8 via 172.x.x.x dev eth1

wobei 172.x.x.x das Gateway ist, das VBox NAT mir gibt.

Indem ich netstat -nr ausführe, scheinen alle meine manuellen Routen erfolgreich hinzugefügt worden zu sein, einschließlich Routen, um über 172.x.x.x zu zwei DNS-Servern zu gelangen.

Der Netzwerkmanager gibt jedoch an, dass beide Geräte "nicht verwaltet" werden. Wenn ich /etc/NetworkManager/NetworkManager.confmanaged=true einstelle, funktioniert der Netzwerkmanager wieder, aber meine Routen gehen verloren. Mein aktueller Kompromiss ist es also, managed=false zu setzen und die eth0 -Zeilen in /etc/network/interfaces auskommentieren.

Gibt es eine Möglichkeit, ein Gerät zu verwalten und dennoch manuelle Routen wie oben durchzuführen?

9
Reinderien

Network Manager erkennt die Anweisungen, die Sie in /etc/network/interfaces geschrieben haben, nicht.

So können Sie Ihr Skript eth1-routes als Dispatcher-Skript für Network Manager in /etc/network/if-up.d/ hinzufügen. Es wird jedes Mal ausgeführt, wenn eine Schnittstelle geöffnet wird. Möglicherweise müssen Sie in Ihr Skript eine "if-Klausel" schreiben, um die Routen nur dann hinzuzufügen, wenn eth1 angezeigt wird. So was:

if [ "$IFACE" == "eth1" ]; then
  route add ...
  route add ...
fi
4
chaos

Network Manager verwaltet seine eigenen statischen Routen - öffnen Sie Network Manager und wählen Sie "Kabelverbindung 1". Wählen Sie Bearbeiten. Wählen Sie die Registerkarte IPv4. Am Ende dieser Seite befindet sich eine Schaltfläche für "Routen". Hier fügen Sie sie hinzu. Wenn fertig, schreibt NM in eine Datei mit Root-Rechten im Verzeichnis/etc/NetworkManager/system-connections/mit dem Namen "Wired connection 1".

Beispiel folgt

ls -l /etc/NetworkManager/system-connections/
total 4.0K
-rw------- 1 root root 216 Aug 26 10:38 Wired connection 1

Sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1

[802-3-ethernet]
mac-address=A:Real:Mac:Add:re:ss

[connection]
id=Wired connection 1
uuid=df4491fc-0981-4071-82ae-04c7b2d6d9fc
type=802-3-ethernet

[ipv6]
method=auto

[ipv4]
method=auto
route1=10.2.2.0/24,10.1.1.68,1

Dabei ist 10.2.2.0 das Zielnetzwerk und 10.1.1.68 das Gateway.

5
Fred

Wenn Sie Ubuntu eine Route hinzufügen möchten, die den Neustart fortsetzt und nicht die Standardschnittstelle als Gateway verwendet, können Sie der NetworkManager-Konfigurationsdatei eine Routenanweisung für die jeweilige Schnittstelle hinzufügen.

Fügen Sie der Konfigurationsdatei /etc/NetworkManager/system-connections/"connection name" eine Route hinzu, indem Sie die route-Anweisung zur Konfigurationsdatei für (unter der Annahme) hinzufügen IPv4). Die Route besteht aus vier Teilen; "das erste ist das IPv4-Zielnetzwerk oder die IPv4-Zieladresse (Netzwerk-Bytereihenfolge), das zweite ist das Zielnetzwerk oder das Adresspräfix (1 - 32), das dritte ist der nächste Hop (Netzwerk-Bytereihenfolge), wenn any, und der vierte ist die Routenmetrik ".

[ipv4]
method=auto
route1=172.16.0.0/16,192.168.3.1,1

Dies entspricht dem Festlegen der Route mithilfe der folgenden Routenanweisung:

route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.3.1

Der Name des Routenschlüssels ist in Tabelle 12 in der NetmorkManager-Entwicklerdokumentation definiert. Weitere Informationen finden Sie unter der folgenden URL: https://developer.gnome.org/NetworkManager/0.9/ref-settings.html

1
nuwandame