Umstellung des kabelgebundenen Netzwerkes auf systemd-networkd (mit Bridge Konfiguration)

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche

Vorbetrachtung

Die Umstellung bezieht sich auf ein kabelgebundenes Netzwerk (feste IP-Adresse, kein DHCP) mit einer sogenannten Software-Bridge, an der wiederum das Netzwerkinterfaces eth0 hängt. Damit die Software-Bridge funktioniert müssen die bridge-utils installiert sein.

Ausgangssituation:

  • Desktop mit fester IP-Adresse im lokalen Netzwerk
  • LAN Netzwerkkarte (wired)
  • Bridge Konfiguration (für gemeinsames Netzwerk des Hosts mit seinem VM's)
  • bridge-utils sind installiert

Umstellung

Nachfolgend die einzelnen Schritte zur Umstellung des Netzwerkdienstes, sowie die Aktivierung der Software-Bridge.

Netzwerk stoppen

Für Systeme die mit herkömmlichen Netzwerk ifupdown

# systemctl stop networking.service

Für Systeme die mit NM laufen

# systemctl stop NetworkManager.service

Alte Configs sichern

interfaces umbennen oder verschieben bzw. leeren

# mv  /etc/network/interfaces /etc/network/interfaces.ORIG
# touch /etc/network/interfaces

Alte Servives deaktivieren

Den Networking Service dauerhaft deaktivieren.

# systemctl disable networking.service

Für Systeme die mit NM laufen den NetworkManager.service dauerhaft deaktivieren

# systemctl disable NetworkManager.service

Neue Config anlegen

Im Verzeichnis /etc/systemd/network die Datei eth.network anlegen.

[Match]
Name=eth*
[Network]
Bridge=bri0

Im Verzeichnis /etc/systemd/network die Datei bridge.network anlegen

[Match]
Name=bri0
[Network]
DNS=194.150.168.168
DNS=213.73.91.35
Address=192.168.199.10/24
Gateway=192.168.199.1

Im Verzeichnis /etc/systemd/network die Datei bridge.netdev anlegen.

[NetDev]
Name=bri0
Kind=bridge

Rechte anpassen

Die oben angelegten Dateien müssen die Rechte 644 (Octal) haben sonst bricht der Start des networkd mit einer wenig aussagekräftigen Meldung ab.

# chmod 644 /etc/network/*.net*
# ls -ld /etc/network/*
-rw-r--r-- 1 root root   31 Mär 27 14:17 bridge.netdev
-rw-r--r-- 1 root root  114 Mär 27 14:17 bridge.network
-rw-r--r-- 1 root root   52 Mär 27 14:19 eth.network

Neue Services starten

Den networkd- und resolved-Service starten.

# systemctl start systemd-networkd.service
# systemctl start systemd-resolved.service

Namensauflösung (Resolving) anpassen

Link oder Datei /etc/resolv.conf löschen und neu anlegen.

# rm /etc/resolv.conf
# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Neue Services dauerhaft aktivieren

networkd und resolved Service dauerhaft aktivieren

# systemctl enable systemd-networkd.service
# systemctl enable systemd-resolved.service

Zustand des Netzwerkinfaces und Netzwerkservices überprüfen

Zustand der Netzwerkinfaces überprüfen.

# networkctl
# networkctl status eth0
# networkctl status bri0

Status vom Service networkd und resolved feststellen.

# systemctl status systemd-networkd.service
# systemctl status systemd-resolved.service

Ob ein Service "enabled" bzw. "disabled" ist kann man, wie nachfolgend gezeigt, überprüfen. networking.service muss deaktiviert und die anderen beiden aktiviert sein.

# systemctl is-enabled networking.service
# systemctl is-enabled systemd-networkd
# systemctl is-enabled systemd-resolved

Zum Schluß ein Reboot - fertig!

Fehlerbehandlung

Mögliche Fehler kann man im Journal mit dem folgenden Kommando sehen (eingeschränkt auf den networkd).

# journalctl -f -u systemd-networkd.service --since=today

Sollte das Netzwerk nicht starten nach einem Reboot, dann noch folgende Anpassung vornehmen.

Die Links /etc/rc* entfernen lassen und ggf.nochmals interfaces leeren.

# update-rc.d networking remove
# touch /etc/network/interfaces