Network Manager unterbricht manuelle Routen

9

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

Ich habe dies geschrieben, /etc/network/interfacesweil 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

Wo 172.x.x.xist das Gateway, das mir VBox NAT gibt?

Beim Ausführen netstat -nrscheinen alle meine manuellen Routen erfolgreich hinzugefügt worden zu sein, einschließlich der Routen, über die zwei DNS-Server erreicht werden sollen 172.x.x.x.

Der Netzwerkmanager sagt jedoch, dass beide Geräte "nicht verwaltet" werden. Wenn ich einstelle /etc/NetworkManager/NetworkManager.conf managed=true, funktioniert der Netzwerkmanager wieder, aber meine Routen gehen verloren. Mein aktueller Kompromiss besteht also darin managed=false, die eth0Zeilen in festzulegen und zu kommentieren /etc/network/interfaces.

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

Reinderien
quelle

Antworten:

4

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

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

if [ "$IFACE" == "eth1" ]; then
  route add ...
  route add ...
fi
Chaos
quelle
5

Der Netzwerkmanager verwaltet seine eigenen statischen Routen. Öffnen Sie den Netzwerkmanager 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". Dort fügen Sie sie hinzu. Wenn dies erledigt ist, schreibt NM in eine Datei mit Root-Berechtigungen im Verzeichnis / etc / NetworkManager / system-connection / mit dem Namen "Kabelverbindung 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.

Fred
quelle
1

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

Fügen Sie der Konfigurationsdatei / etc / NetworkManager / system-connection / "Verbindungsname" eine Route hinzu, indem Sie die Routenanweisung zur Konfigurationsdatei für hinzufügen (unter der Annahme von IPv4). Die Route besteht aus vier Teilen; "Das erste ist das Ziel-IPv4-Netzwerk oder die Zieladresse (Netzwerkbyte-Reihenfolge), das zweite das Zielnetzwerk oder das Adresspräfix (1 - 32), das dritte ist der nächste Hop (Netzwerkbyte-Reihenfolge), falls vorhanden, und das vierte ist das 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 Routen-Keyname 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

Nuwandame
quelle