Netplan unter Ubuntu meistern: Vollständiger Leitfaden zur Netzwerk-Konfiguration mit YAML

1. Überblick über Netplan unter Ubuntu

Was ist Netplan?

Netplan ist ein Werkzeug zur Verwaltung von Netzwerkkonfigurationen, das ab Ubuntu 17.10 eingeführt wurde. Zuvor wurden Werkzeuge wie ifconfig und /etc/network/interfaces verwendet, doch Netplan bietet einen neuen Ansatz für die Netzwerkkonfiguration. Einer der größten Vorteile von Netplan ist, dass es YAML‑Dateien verwendet, um Netzwerkeinstellungen zu beschreiben. Das macht die Konfiguration einfach und konsistent und ermöglicht es, selbst komplexe Netzwerkumgebungen leicht zu verwalten.

Netplan unterstützt Backends wie NetworkManager und systemd-networkd und ist sowohl in den Ubuntu‑Desktop‑ als auch in den Server‑Editionen verfügbar. Dadurch wird eine einheitliche Netzwerkverwaltung über verschiedene Umgebungen hinweg ermöglicht.

Warum Netplan verwenden?

Im Vergleich zu traditionellen Methoden der Netzwerkkonfiguration bietet Netplan folgende Vorteile:

  1. Einfache Syntax: Das YAML‑Format ist intuitiv und klar strukturiert, sodass Konfigurationen selbst für Anfänger leicht zu verstehen sind.
  2. Einheitliche Verwaltung: Da es sowohl auf Desktop‑ als auch auf Server‑Umgebungen funktioniert, können verschiedene Netzwerkkonfigurationen zentral verwaltet werden.
  3. Dynamische Änderungen: Durch das Bearbeiten und Anwenden der Konfigurationsdatei können Netzwerkeinstellungen in Echtzeit aktualisiert werden.

Grundstruktur von Netplan

Netplan‑Konfigurationsdateien befinden sich typischerweise im Verzeichnis /etc/netplan/ und verwenden die Dateiendung .yaml. Diese Dateien enthalten Informationen wie Schnittstellenkonfigurationen, IP‑Adressen und DNS‑Serverdetails.

Im Folgenden ein Beispiel für eine grundlegende Netplan‑Konfiguration:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

In diesem Beispiel ist die Ethernet‑Schnittstelle enp3s0 so konfiguriert, dass sie eine IP‑Adresse per DHCP bezieht.

Die Rolle von Netplan in Ubuntu 18.04 LTS und neueren Versionen

Netplan ist ab Ubuntu 18.04 LTS standardmäßig installiert und wird sowohl in Desktop‑ als auch in Server‑Umgebungen häufig zur Netzwerkverwaltung eingesetzt. In Server‑Umgebungen, in denen häufig mehrere Netzwerkschnittstellen oder statische IP‑Zuweisungen benötigt werden, erweist sich die Flexibilität von Netplan als besonders nützlich.

Als Nächstes werden wir praktische Beispiele zur Netzwerk‑Konfiguration mit Netplan untersuchen.

2. Grundlegende Netplan‑Konfiguration

Speicherort der Netplan‑Konfigurationsdateien

Netplan‑Konfigurationsdateien werden typischerweise im Verzeichnis /etc/netplan/ abgelegt. Sie können Netzwerkeinstellungen ändern, indem Sie diese .yaml‑Dateien bearbeiten. Dateinamen wie 50-cloud-init.yaml sind üblich, können jedoch je nach Umgebung variieren.

Um die Konfigurationsdatei zu öffnen, verwenden Sie einen Texteditor wie vi oder nano:

sudo vi /etc/netplan/50-cloud-init.yaml

Dynamische IP‑Adresskonfiguration (DHCP)

Um automatisch eine IP‑Adresse per DHCP zu erhalten, verwenden Sie die folgende YAML‑Konfiguration. Dies ist die einfachste Einrichtung und wird häufig in Heim‑ und Büro‑Umgebungen verwendet.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

Statische IP‑Adresskonfiguration

In manchen Umgebungen muss einem Server oder bestimmten Geräten eine statische IP‑Adresse zugewiesen werden. Das folgende Beispiel zeigt, wie eine statische IP‑Adresse konfiguriert wird.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Anwenden der Konfiguration

Nach dem Bearbeiten der Konfigurationsdatei wenden Sie die Netplan‑Konfiguration mit dem folgenden Befehl an:

sudo netplan apply

Überprüfen der Konfiguration

Um zu prüfen, ob die Netplan‑Einstellungen erfolgreich angewendet wurden, überprüfen Sie den Status der Netzwerkschnittstelle mit dem folgenden Befehl:

ip a

3. Konfiguration mehrerer Netzwerkschnittstellen

Konfiguration mehrerer Ethernet‑Schnittstellen

Geräte mit mehreren Netzwerkschnittstellen können jeder Schnittstelle unterschiedliche Einstellungen zuweisen. Das nachstehende Beispiel konfiguriert zwei Ethernet‑Schnittstellen:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
    enp4s0:
      addresses:
        - 192.168.1.150/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Bonding für Redundanz

Bonding kombiniert mehrere Netzwerkschnittstellen zu einer einzigen virtuellen Schnittstelle, bietet Redundanz und verbessert die Verfügbarkeit. Das nachstehende Beispiel erstellt eine Bond‑Schnittstelle mit dem Namen bond0:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: active-backup
        primary: enp3s0

Wi‑Fi-Konfiguration

Netplan unterstützt ebenfalls die Wi‑Fi-Konfiguration. Das folgende Beispiel verbindet sich mit einer bestimmten SSID:

network:
  version: 2
  renderer: networkd
  wifis:
    wlp2s0:
      access-points:
        "my_wifi_network":
          password: "password1234"
      dhcp4: true

VLAN-Konfiguration

Virtuelle LANs (VLANs) können Netzwerke logisch segmentieren. Das nachstehende Beispiel erstellt ein VLAN auf enp3s0:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan10:
      id: 10
      link: enp3s0
      addresses:
        - 192.168.10.1/24

4. Erweiterte Netplan-Konfiguration

Statische Routing-Konfiguration

Beim Verbinden von Netzwerken über mehrere Router ist statisches Routing erforderlich. Das nachstehende Beispiel gibt eine Route für den Zugriff auf ein bestimmtes Netzwerk an:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: 10.0.0.0/24
          via: 192.168.1.1

Diese Konfiguration legt eine statische Route für das Netzwerk 10.0.0.0/24 über das Standard‑Gateway 192.168.1.1 fest.

Mehrere Standard‑Gateways

Netplan ermöglicht das Festlegen verschiedener Standard‑Gateways pro Schnittstelle. Dies ist nützlich, wenn das Internet über unterschiedliche Netzwerksegmente erreicht wird:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
    enp4s0:
      addresses:
        - 10.0.0.100/24
      gateway4: 10.0.0.1

DNS-Server-Konfiguration

Das nachstehende Beispiel gibt die Google Public DNS‑Server an:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Erweiterte Bonding-Konfiguration

Bonding‑Modi können für unterschiedliche Verhaltensweisen geändert werden. Das nachstehende Beispiel konfiguriert Round‑Robin‑Bonding:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: balance-rr

Der Modus balance-rr verteilt den Datenverkehr abwechselnd über die beiden Schnittstellen und verbessert die Leistung durch Bandbreitenverteilung.

Erweiterte VLAN-Konfiguration

VLANs werden in großflächigen Netzwerken verwendet, um Umgebungen logisch zu trennen. Das nachstehende Beispiel weist die VLAN‑ID 100 zu:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan100:
      id: 100
      link: enp3s0
      addresses:
        - 192.168.100.1/24

Damit wird die VLAN‑ID 100 der Schnittstelle enp3s0 zugewiesen, wodurch ein segmentiertes virtuelles Netzwerk entsteht.

5. Netplan-Fehlerbehebung

Obwohl Netplan praktisch ist, können Konfigurationsfehler oder Systembeschränkungen zu Problemen führen. Dieser Abschnitt erklärt häufige Probleme und deren Lösungen.

Häufige Netplan-Probleme und Ursachen

1. Konfiguration nicht angewendet

  • YAML‑Einrückungsfehler : YAML ist streng bezüglich Einrückungen. Falsche Abstände verhindern korrektes Parsen.
  • Falsche Schnittstellennamen : Stellen Sie sicher, dass die Schnittstellennamen mit der Ausgabe des Befehls ip a übereinstimmen.

Lösungen

  1. Führen Sie netplan apply aus, nachdem Sie die Konfigurationsdatei gespeichert haben.
  2. Verwenden Sie sudo netplan try, um Änderungen zu testen, bevor Sie sie dauerhaft anwenden.
    sudo netplan apply
    
    sudo netplan try
    

2. Netzwerkverbindungsfehler

  • Falsche Gateway‑ oder DNS‑Einstellungen : Überprüfen Sie IP‑Adressen und DNS‑Konfiguration.
  • Physische Schnittstellenprobleme : Prüfen Sie Kabel und Hardware.

Lösungen

  1. Verwenden Sie den Befehl ping, um die Konnektivität zu testen:
    ping 8.8.8.8
    
  1. Wenden Sie die Netzwerkkonfiguration erneut an und starten Sie die Dienste neu:
    sudo systemctl restart networkd
    

3. Fehlermeldungen während netplan apply

Fehler treten auf, wenn die Konfiguration falsch ist oder die Schnittstelle nicht erkannt wird.

  • Beispiel‑Fehlermeldung : Error in network configuration: failed to bring up device enp3s0

Überprüfen Sie den korrekten Schnittstellennamen mit ip a.

Lösung

Überprüfen Sie Einrückungen, Rechtschreibung, Schnittstellennamen und die Korrektheit der IP‑Adresse.

Protokolle prüfen

Systemprotokolle sind nützlich zur Fehlersuche. Verwenden Sie den untenstehenden Befehl, um netzwerkbezogene Protokolle anzuzeigen:

journalctl -u systemd-networkd

Dies zeigt detaillierte Informationen, die bei der Behebung von Konfigurationsfehlern helfen.

6. Zusammenfassung und nächste Schritte

Die Verwendung von Netplan ermöglicht es, Ubuntu‑Netzwerkeinstellungen einfach und effizient zu verwalten. Nachfolgend finden Sie eine Zusammenfassung und empfohlene nächste Schritte für eine vertiefte Auseinandersetzung.

Hauptvorteile von Netplan

  1. Intuitive YAML‑Konfiguration : Einfach zu lesen und zu ändern.
  2. Flexibles Netzwerkdesign : Unterstützt mehrere Schnittstellen, Bonding, Routen und VLANs.
  3. Einheitliche Schnittstelle : Funktioniert mit systemd-networkd und NetworkManager.
  4. Echtzeit‑Updates : Änderungen sofort mit einem Befehl anwenden.

Empfohlene nächste Schritte

  1. Virtuelles Netzwerkdesign : Verwenden Sie mehrere VLANs, um Netzwerke logisch zu segmentieren.
  2. IPv6‑Konfiguration : Bereiten Sie sich auf moderne Netzwerk‑Infrastruktur vor.
  3. Automatisierungsskripte : Automatisieren Sie Konfigurationen mit Ansible oder Puppet.
  4. Sicherheitsverbesserungen : Stärken Sie Firewall‑ und Zugriffskontrolleinstellungen.

Zusätzliche Ressourcen