systemd-networkd vs. NetworkManager: Architektur-Entscheidungen im Serverbetrieb

Die Wahl des richtigen Netzwerk-Management-Tools auf Linux-Servern ist entscheidend für Stabilität, Automatisierung und Skalierbarkeit. Zwei weit verbreitete Optionen sind systemd-networkd und NetworkManager. Beide Systeme haben unterschiedliche Architekturen, Einsatzgebiete und Konfigurationsphilosophien. Dieser Artikel erklärt die Unterschiede, Vor- und Nachteile und gibt praxisnahe Empfehlungen für den Serverbetrieb.

Architektur von systemd-networkd

systemd-networkd ist ein leichter Netzwerk-Daemon, der Teil von systemd ist und sich auf die Konfiguration von Netzwerk-Interfaces zur Boot-Zeit konzentriert. Es arbeitet direkt mit dem Linux-Kernel zusammen und ist vollständig systemd-integriert.

Funktionsweise

  • Konfiguration über deklarative .network und .netdev Dateien in /etc/systemd/network/
  • Verwendet native systemd-Dienste, kein zusätzliches GUI- oder DBus-Interface nötig
  • Automatisches Aktivieren von Interfaces beim Boot, unterstützt statische IP, DHCP, VLANs, Bridges und Bonding
  • Minimaler Ressourcenverbrauch, besonders geeignet für Server und Embedded-Systeme

Beispielkonfiguration statische IP

[Match]
Name=ens33

[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1
DNS=8.8.8.8

Architektur von NetworkManager

NetworkManager ist ein flexibles Netzwerkmanagement-Tool, das ursprünglich für Desktop-Systeme entwickelt wurde, mittlerweile aber auch auf Servern eingesetzt wird. Es abstrahiert Netzwerkgeräte, unterstützt dynamische Netzwerke und bietet umfangreiche APIs über DBus.

Funktionsweise

  • Unterstützt manuelle und dynamische Konfigurationen, inklusive WLAN, VPNs und mobile Daten
  • Konfiguration über CLI (nmcli), GUI (nm-applet, Cockpit) oder Textdateien in /etc/NetworkManager/system-connections/
  • Automatische Verwaltung von DNS, Routen und Verbindungen
  • Mehr Ressourcenbedarf als systemd-networkd, aber hohe Flexibilität

Beispiel CLI-Konfiguration statische IP

# Verbindung erstellen
nmcli con add type ethernet ifname ens33 con-name server-eth ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1

DNS setzen

nmcli con mod server-eth ipv4.dns "8.8.8.8 8.8.4.4"

Verbindung aktivieren

nmcli con up server-eth

Vergleich der beiden Systeme

Kriterium systemd-networkd NetworkManager
Ressourcenverbrauch Sehr gering Moderater bis höherer Verbrauch
Komplexität Niedrig, deklarativ Höher, viele Abstraktionen
Automatisierung Bootzeit-fokussiert, systemd-native Units Flexible Scripting-Optionen, CLI und DBus
Dynamic Networks Begrenzt, z.B. DHCP möglich Umfassend, z.B. VPN, WLAN, mobile Netze
Einsatzbereich Server, Container, Embedded Desktop, Server mit wechselnden Netzwerken

Best Practices für Serverbetrieb

  • Für statische, vorhersehbare Netzwerke auf Servern empfiehlt sich systemd-networkd wegen Stabilität und minimalem Overhead
  • Für Umgebungen mit dynamischen Verbindungen, VPN oder WLAN ist NetworkManager flexibler
  • Mix vermeiden: Nicht beide Dienste gleichzeitig aktivieren, sonst Konflikte bei Interface-Kontrolle
  • Konfiguration versionieren: git oder Configuration Management (Ansible) verwenden
  • Monitoring einrichten: networkctl für systemd, nmcli dev status für NetworkManager

Fehlerbehebung und Troubleshooting

  • Interfaces werden nicht aktiviert → Prüfen, ob der korrekte Dienst läuft (systemctl status systemd-networkd oder systemctl status NetworkManager)
  • IP-Adresse nicht gesetzt → Prüfen der Konfigurationsdateien und Neustart des jeweiligen Daemons
  • DNS-Probleme → resolvectl für systemd, nmcli dev show für NetworkManager
  • Konflikte zwischen beiden Diensten → nmcli device status und networkctl vergleichen, nicht benötigten Daemon deaktivieren

Fazit

Die Entscheidung zwischen systemd-networkd und NetworkManager hängt von Einsatzgebiet, Automatisierungsstrategie und Netzwerkkomplexität ab. Während systemd-networkd für stabile, deklarative Serverkonfigurationen optimal ist, bietet NetworkManager die Flexibilität für dynamische, wechselnde Netzwerkumgebungen. Eine klare Architekturentscheidung und konsequente Konfiguration vermeiden Konflikte und gewährleisten einen stabilen, wartbaren Serverbetrieb.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles