Umstellung auf systemd-networkd (Debian jessie)

Systemd basierte Netzwerkeinrichtung für Debian Edu jessie Arbeitsplatzrechner

Dieser Artikel beschreibt die Anwendung von systemd-networkd auf Debian Edu 8.x (aka jessie) Notebooks.

Womit haben wir es zu tun?

An den von uns unterstützten Schulen sind mehrere mit Debian Edu 8.x (aka jessie) betriebene Notebooks in Betrieb. Auf Notebooks für den Schulbetrien (für den Betrieb im Klassenraum) installieren wir das Debian Edu „Arbeitsplatzrechner“-Profil. Es gibt zwar bei der Installation von Debian Edu auch eine Möglichkeit, ein „Mobiler Arbeitsplatzrechner“-Profil zu installieren, bei welchem allerdings jede Benutzeranmeldung ein lokales Benutzerprofil sowie einen lokalen Persöhnlichen Ordner für den angemeldeten Benutzer (Paket: libpam-mklocaluser). Dies ist nicht etwas, was wir für unsere Kunden wollen. Anwender, welche die Schulnotebooks benutzen sollen immer in ihren persönlichen NFS-Verzeichnissen arbeiten. Schulnotebooks sollen nicht außerhalb des Schulnetzwerkes benutzbar sein.

Unsere Probleme

Die Standardeinrichtung für Debian Edu Arbeitsplatzrechner in Bezug auf Netzwerkverwaltung ist wie folgt:

Uns sind mit dieser Konfiguration diverese Probleme aufgefallen:

auto eth0
iface eth0 inet dhcp

Problem Nummer 1: In Kombination mit systemd führt dies zu einer Verzögerung von bis zu 120 Sekunden bei Systemstart.

Problem Nummer 2: Der WLAN-Adapter, verwaltet durch den NetworkManager, läuft an, „wann er will“.

Dies wird auf jeden Fall problematisch, wenn man sich auf autofs-ldap verlässt zur Zeit der Benutzeranmeldung. Oft ist die Situation aufgetreten, in denen der autofs Dienst schon gestartet war, aber die Verbindung mit dem WLAN-Netzwerk noch nicht mal begonnen hatte. Daraus risultiert, dass die Notebook Systeme Debian Edu's LDAP-Server nicht finden und so den autofs Dienst nicht konfigurieren, welcher dann nicht auf NFS-Netzwerk-Verzeichnisse zugreifen kann, welche über LDAP zur Verfügung gestellt werden.

Problem Nummer 3: Beim Herunterfahren des Systems kam es wieder zu Verzögerungen von 120 Sekunden, da die eingebundenen NFS-Verzeichnisse (Persönliche Ordner) nicht richtig ausgebunden werden konnten.

Die gesamte Problematik war recht schmerzhaft sowohl für uns, als auch für die Kunden. Heute saß ich mit einem unserer Kunden zusammen und kam auf eine Einrichtung (siehe unten), die völlig problemlos funktioniert...

Warum der Wechsel zu systemd-networkd?

Nach dem Wechsel zu systemd-networkd (aus systemd 215, zu finden in Debian jessie) haben sämtliche Probleme sofort gestoppt.

\o/ Und somit sind alle Probleme gelöst! \o/

Wie wechselt man zu systemd-networkd?

Nach gründlichem Lesen und Verstehen führt man das unten aufgeführte Skript als root auf Debian Edu jessie Notebooks aus, welche über das Debian Edu Arbeitsplatzrechner Profil installiert sind.

Veraussetzungen:

/etc/systemd/network/20-dhcp.network
/etc/systemd/network/21-dhcp-wireless.network
/etc/systemd/system/wpa_supplicant@.service
/etc/wpa_supplicant/wpa_supplicant-wlan0.conf

Das Skript:

WIFIDEV=wlan0

export DEBIAN_FRONTEND=noninteractive
apt-get remove -q -y --purge resolvconf

systemctl disable NetworkManager
systemctl enable systemd-networkd.service
systemctl enable systemd-resolved.service
systemctl start systemd-resolved.service
rm /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

cat > /etc/systemd/network/20-dhcp.network << EOF
[Match]
Name=eth*

[Network]
DHCP=yes
EOF

cat > /etc/systemd/network/21-dhcp-wireless.network << EOF
[Match]
Name=$WIFIDEV

[Network]
DHCP=yes
EOF

cat > /etc/systemd/system/wpa_supplicant@.service << EOF
[Unit]
Description=WPA supplicant daemon (interface-specific version)
Requires=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
Before=network.target
Wants=network.target

# NetworkManager users will probably want the dbus version instead.

[Service]
Type=simple
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I

[Install]
Alias=multi-user.target.wants/wpa_supplicant@%i.service
EOF

touch /etc/wpa_supplicant/wpa_supplicant-$WIFIDEV.conf
chmod go-rwx /etc/wpa_supplicant/wpa_supplicant-$WIFIDEV.conf

systemctl enable wpa_supplicant@$WIFIDEV.service
systemctl disable networking
systemctl disable wpa_supplicant.service

WiFi-Netwerke hinzufügen

Nun kann man als zuständiger Administrator Passwörter für die ESSIDs/WiFi-Netzwerke der betroffenen Schule zur wpa_supplicant Konfigurationsdatei hinzufügen.

export WIFIDEV=wlan0
wpa_passphrase <ESSID> '<wpapassphrase>' >> /etc/wpa_supplicant/wpa_supplicant-$WIFIDEV.conf

Es können so viele ESSIDs und Passwörter hinzugefügt werden wie benötigt.

Neustart

Nach Ausführung des Skriptes und Anpassung der Benutzerreferenzen der kabellosen Netzwerke sollten die Notebooks neu gestartet werden, damit man die Änderungen genießen kann.

Danksagung

Das oben beschriebene wurde inspiriert und angestoßen durch zwei Artikel. Vielen Dank an Dan Nanni [1] und Joachim Breitner [2] für die Inspiration. light+love Mike [1] http://xmodulo.com/switch-from-networkmanager-to-systemd-networkd.html [2] https://www.joachim-breitner.de/blog/664-Switching_to_systemd-networkd

IT-Zukunft Schule: Technik/Installation/Workstations/Workstation/SystemdNetworkdJessie (zuletzt geändert am 2016-05-26 09:20:51 durch BenjaminSchlueter)