Netplan und wie man es richtig einrichtet

Ubuntu ist ein erstaunliches Betriebssystem. Ich habe lange nicht mehr mit Ubuntu Server gearbeitet, und es hatte keinen Sinn, mein Desktop von der stabilen Version zu aktualisieren. Vor kurzem musste ich mich jedoch mit der frischen Version von Ubuntu Server 18.04 auseinandersetzen. Zu meinem Erstaunen stellte ich fest, dass ich unendlich hinter der Zeit zurückgeblieben war und das Netzwerk nicht einrichten konnte, da das alte, bewährte System zur Konfiguration von Netzwerk-Interfaces durch das Bearbeiten der Datei /etc/network/interfaces abgeschafft wurde. Was kam ihm denn zuvor? Etwas Schreckliches und auf den ersten Blick völlig Unverständliches, begrüßt „Netplan“.

Um ehrlich zu sein, konnte ich zuerst den Sinn und Zweck nicht nachvollziehen, denn "alles war so bequem", aber nachdem ich ein wenig praktische Erfahrung gesammelt hatte, erkannte ich, dass es seinen eigenen Reiz hat. Und genug der Lyrik, kommen wir zur Sache: Was ist Netplan? Es ist ein neues Tool zur Netzwerkkonfiguration in Ubuntu, zumindest habe ich „so etwas in anderen Distributionen nicht gesehen“. Ein wesentliches Merkmal von Netplan ist, dass die Konfiguration in der Sprache YAML, ja, ja, Sie haben richtig gehört: YAML. Die Entwickler haben beschlossen, mit der Zeit zu gehen (und so viel Lob, wie er auch erhält, ich finde ihn trotzdem schrecklich). Der Hauptnachteil dieser Sprache ist, dass sie sehr empfindlich auf Leerzeichen reagiert. Lassen Sie uns das Konfigurationsbeispiel betrachten.

Die Konfigurationsdateien befinden sich unter /etc/netplan/dateiname.yaml. Zwischen jedem Block müssen 2 Leerzeichen sein.

1) Der Standardkopf sieht folgendermaßen aus:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4:no

Lassen Sie uns anschauen, was wir gerade gemacht haben:

  • network: — dies ist der Block, der die Konfiguration einleitet.
  • renderer: networkd — hier geben wir den Netzwerkmanager an, den wir verwenden möchten, entweder networkd oder NetworkManager.
  • version: 2 — hier verstehe ich die YAML-Version.
  • ethernets: — dieser Block sagt, dass wir das Ethernet-Protokoll konfigurieren.
  • enps0f0: — wir geben an, welchen Netzwerkadapter wir konfigurieren möchten.
  • dhcp4:no — wir deaktivieren DHCP v4; für 6 v6 dhcp6 entsprechend.

2) Lassen Sie uns versuchen, IP-Adressen zuzuweisen:

    enp3s0f0:
      dhcp4:no
      macaddress: bb:11:13:ab:ff:32
      addresses: [10.10.10.2/24, 10.10.10.3/24]
      gateway4: 10.10.10.1
      nameservers:
        addresses: 8.8.8.8

Hier haben wir MAC, IPv4, Gateway und DNS-Server festgelegt. Beachten Sie, dass, wenn wir mehr als eine IP-Adresse benötigen, wir diese durch ein Komma mit einem nachfolgenden Leerzeichen schreiben.

3) Und was ist, wenn wir Bonding?

  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1

  • bonds: — Block zur Erklärung, dass wir Bonding konfigurieren werden.
  • bond0: — beliebiger Name des Interfaces.
  • interfaces: — set von Interfaces, die zu einem Bond zusammengestellt werden, »wie zuvor besprochen, wenn es mehrere Parameter gibt, beschreiben wir sie in eckigen Klammern".
  • parameters: — Beschreibung des Konfigurationsblocks für die Parameter.
  • mode: — wir geben an, nach welchem Modus das Bonding arbeiten soll.
  • mii-monitor-interval: — wir setzen das Überwachungsintervall auf 1 Sekunde.

Innerhalb des Blocks mit dem Namen des Bonds können auch Parameter wie addresses, gateway4, routes usw. konfiguriert werden.

Wir haben eine Redundanz für unser Netzwerk hinzugefügt, jetzt müssen wir nur noch unterbringen. vlan und die Konfiguration kann als abgeschlossen angesehen werden.

vlans: 
    vlan10:
      id: 10
      link: bond0
      dhcp4: nein
      addresses: [10.10.10.2/24]
      gateway: 10.10.10.1
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: wahr

  • vlans: — wir deklarieren den Block für die VLAN-Konfiguration.
  • vlan10: — beliebiger Name des VLAN-Interfaces.
  • id: — unser VLAN-Tag.
  • link: — das Interface, über das das VLAN verfügbar sein wird.
  • routes: — wir deklarieren den Block zur Beschreibung von Routen.
  • — to: — wir geben die Adresse/Subnetz an, für die eine Route erforderlich ist.
  • via: — wir geben das Gateway an, über das unser Subnetz erreichbar sein wird.
  • on-link: — wir geben an, dass die Routen immer beim Hochfahren des Links eingetragen werden sollen.

Beachten Sie, wie ich die Abstände setze, in der YAML-Sprache ist das sehr wichtig.

Hier haben wir die Netzwerkinterfaces beschrieben, Bonding erstellt und sogar VLANs hinzugefügt. Lassen Sie uns unsere Konfiguration anwenden, der Befehl netplan apply überprüft unsere Konfiguration auf Fehler und wendet sie im Erfolgsfall an. Danach wird die Konfiguration beim Neustart des Systems automatisch aktiviert.

Nachdem wir alle vorherigen Codeblöcke zusammengeführt haben, ist das das Ergebnis:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4: nein
    ensp3s0f1:
      dhcp4: nein
  bonds:
    bond0:
      dhcp4: nein
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1
  vlan10:
      id: 10
      link: bond0
      dhcp4: nein
      addresses: [10.10.10.2/24]
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: wahr
  vlan20:
    id: 20
    link: bond0
    dhcp4: nein
    addresses: [10.10.11.2/24]
    gateway: 10.10.11.1
    nameserver:
      addresses: [8.8.8.8]
    

Hier ist unser Netzwerk bereit für den Einsatz, es war gar nicht so schlimm, wie es am Anfang schien, und der Code ist sehr schön und lesbar. P.S. Danke, dass es ein großartiges Handbuch für Netplan gibt unter dem Link. https://netplan.io/.

Quelle: habr.com

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster