NetworkManager vs. Wicked on SUSE (Artikel 140)
Analyse der Netzwerk-Dienste unter SUSE. Erfahren Sie, wann Sie das statische Wicked-Framework und wann den dynamischen NetworkManager einsetzen sollten.
# Networking on SUSE: Wicked vs. NetworkManager
TL;DR / Management Summary In der SUSE-Welt gibt es zwei ungleiche Brüder für die Netzwerkverwaltung. Wicked ist der Spezialist für das Rechenzentrum: stabil, deklarativ und optimiert für statische Setups. NetworkManager ist der Generalist für den Desktop und mobile Geräte: dynamisch, reaktiv und ideal für wechselnde WLANs und VPNs. Empfehlung: Bleiben Sie auf Servern (SLES) bei Wicked. Nutzen Sie den NetworkManager nur auf Laptops oder Workstations.
# 1. Einführung & Architektur
Statik vs. Dynamik.
- Wicked: Verhält sich wie ein klassisches System-Tool. Es liest die Konfiguration beim Booten (oder auf Befehl) und setzt den Kernel-Status. Es gibt keinen permanenten “Monitor”, der das Netzwerk bei jedem Event ändert.
- NetworkManager: Ein aktiver Dämon, der ständig udev-Events überwacht. Er ist darauf ausgelegt, Profile automatisch zu wechseln, sobald ein Link erscheint.
# Der Vergleich (Mermaid)
graph TD
A[Network Hardware] --> B[Linux Kernel]
B -->|Option 1: Server| C[Wicked Daemon]
B -->|Option 2: Laptop| D[NetworkManager]
C --> E[Config: /etc/sysconfig/network/]
D --> F[Config: /etc/NetworkManager/]
subgraph "Workload"
E --- G[Static IP, Bond, Bridge]
F --- H[DHCP, WiFi, VPN, LTE]
end
# 2. Entscheidungshilfe: Was brauche ich?
Die Enterprise-Kriterien.
| Feature | Wicked | NetworkManager |
|---|---|---|
| Boot-Zeit | Fest (wartet auf Interfaces) | Variabel (Hintergrund-Start) |
| Remote Edit | Sicher (Via YaST/Script) | Risiko (Re-Scan Gefahr) |
| VLAN/Bonds | Exzellent integriert | Komplex via nmcli |
| VPN Support | Basis (IPsec) | Riesig (Plugins für alle Protokolle) |
| User Access | Nur Root | Jeder User möglich (via PolicyKit) |
# 3. Den Stack umschalten
Die Wahl treffen.
Sie können den Stack jederzeit via YaST oder CLI ändern.
# via YaST
sudo yast2 lan.- Tab “Global Options”.
- Dropdown “Network Setup Method” wählen.
# via CLI
SUSE nutzt eine Variable in der /etc/sysconfig/network/config:
# Ändere zu 'networkmanager' oder 'wicked'
sudo sed -i 's/NETWORK_MANAGER=.*/NETWORK_MANAGER="yes"/' /etc/sysconfig/network/config
# Dienst aktivieren
sudo systemctl enable --now NetworkManager
sudo systemctl disable --now wicked
# 4. Day-2 Operations: Co-Existenz vermeiden
Kein “Doppel-Management”.
Ein häufiger Fehler ist, dass beide Dienste gleichzeitig versuchen, ein Interface zu steuern. Dies führt zu IP-Konflikten und hängenden Routen.
# Den inaktiven Dienst maskieren
# Wenn Wicked genutzt wird:
sudo systemctl mask NetworkManager
# 5. Troubleshooting & “War Stories”
Praxisfallen.
# Story 1: “Der hängende Boot (Wicked)”
Symptom: Ein SLES-Server braucht 2 Minuten zum Booten, bevor der Login erscheint.
Ursache: Wicked wartet auf ein konfiguriertes Interface, das keinen Link hat (z.B. ein Backup-Port ohne Kabel).
Lösung: Setzen Sie STARTMODE='manual' oder STARTMODE='hotplug' in der ifcfg Datei, damit der Bootvorgang nicht blockiert wird.
# Story 2: “VPN-Abbruch nach Logout (NetworkManager)”
Symptom: Ein Admin verbindet sich via NetworkManager-VPN zu einem Server. Sobald er die GUI-Session schließt, bricht das VPN ab. Ursache: Der NetworkManager betrachtet VPNs standardmäßig als User-Sessions. Lösung: Konfigurieren Sie die VPN-Verbindung als “System-wide” (Available to all users), damit sie unabhängig vom User-Login bestehen bleibt.
# 6. Fazit & Empfehlung
- Produktion: Nutzen Sie Wicked. Es ist vorhersehbarer und die Standard-Wahl für SLES-Support von Drittanbietern.
- Virtualisierung: In Proxmox-VMs ist Wicked die stabilere Wahl für Cloud-Init Integrationen.
- Wichtig: Mischen Sie die Konfiguration nicht. Wenn Sie NetworkManager nutzen, ignorieren Sie die Dateien in
/etc/sysconfig/network/.
# Anhang: Cheatsheet
| Aufgabe | Wicked | NetworkManager |
|---|---|---|
| Status | wicked show all |
nmcli dev status |
| Profil laden | wicked ifup eth0 |
nmcli con up eth0 |
| Log-Analyse | journalctl -u wicked |
journalctl -u NetworkManager |
| Tool-GUI | yast2 lan |
nmtui |
| IP Adressen | ip a |
ip a |