Unterschiede zwischen den Revisionen 5 und 6
Revision 5 vom 2016-05-26 09:20:28
Größe: 6696
Kommentar:
Revision 6 vom 2016-05-26 09:20:51
Größe: 6697
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 49: Zeile 49:
'''Veraussetzungen''' '''Veraussetzungen:'''

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:

  • systemd läuft als PID 1
  • ifupdown verwaltet kabellose Netzwerk-Anbindungen
  • für unsere Kunden haben wir den Networkmanager mit einem systemweiten WiFi-Profil (WPA2-PSK)

Uns sind mit dieser Konfiguration diverese Probleme aufgefallen:

  • standardmäßig wird Netzwerkanbindung eth0 durch ifupdown verwaltet (über /etc/network/interfaces)

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.

  • Teilweise konnten sich Benutzer anmelden (mit korrekter Einbindung der Persönlichen Verzeichnisse über NFS, LDAP/Kerberos Anmeldung usw), wenn wir Glück hatten und die benötigte DHCP-Antwort über das Netzwerk schnell genug kam, sodass die Netzwerk- Prozesse des Notebooks korrekt konfiguriert werden konnten.

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.

  • Notebooks fahren ohne Verzögerung hoch (ob über LAN oder WLAN verbunden macht keinen Unterschied mehr)
  • Benutzer können sich immer korrekt und ohne Probleme im System anmelden (LDAP steht zur Verfügung, Kerberos ist zugriffsbereit, der autofs-ldap Dienst hat seinen LDAP-Server gefunden)
  • Notebooks fahren ohne jegliche Verzögerung herunter

\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:

  • Die LAN-Verbindungen der Netzwerkkarten heißten eth0, eth1 usw
  • Der WLAN-Netzwerkadapter heißt wlan0
  • Diese Dateien, welche normalerweise nicht vorhanden sind, werden überschrieben soweit vorhanden:

/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)