Ubuntu ist ein beeindruckendes Betriebssystem. Es ist eine Weile her, dass ich mit Ubuntu Server gearbeitet habe, und ich hatte keinen Grund, meinen Desktop von der stabilen Version zu aktualisieren. KĂŒrzlich musste ich mich jedoch mit der neuen Version von Ubuntu Server 18.04 auseinandersetzen. Zu meinem Erstaunen stellte ich fest, dass ich ewig hinterherhinkte und das Netzwerk nicht einrichten konnte, da das alte, bewĂ€hrte System zur Konfiguration von Netzwerkschnittstellen durch Bearbeitung der Datei /etc/network/interfaces nicht mehr gĂŒltig war. Was hat es ersetzt? Etwas Schreckliches und auf den ersten Blick völlig UnverstĂ€ndliches: âNetplanâ.
Um ehrlich zu sein, konnte ich anfangs nicht verstehen, was das Problem war und âwarum das nötig ist, denn alles war so bequemâ, aber nachdem ich ein wenig Praxis gesammelt hatte, erkannte ich, dass es seinen Reiz hat. Genug der Lyrik, fahren wir fort. 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 einer Sprache geschrieben wird , ja ja, Sie haben richtig gehört, YAML, die Entwickler haben beschlossen, mit der Zeit zu gehen (und egal wie oft es gelobt wird, finde ich es trotzdem eine schreckliche Sprache). Der Hauptnachteil dieser Sprache ist, dass sie sehr empfindlich auf Leerzeichen reagiert. Lassen Sie uns die Konfiguration anhand eines Beispiels betrachten.
Die Konfigurationsdateien befinden sich unter dem Pfad /etc/netplan/dateiname.yaml, zwischen jedem Block sollten + 2 Leerzeichen sein.
1) Die StandardĂŒberschrift sieht folgendermaĂen aus:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4:noLassen Sie uns betrachten, was wir gerade gemacht haben:
- network: â das ist der Block, der die Konfiguration startet.
- renderer: networkd â hier geben wir den Netzwerkmanager an, den wir verwenden werden, entweder networkd oder NetworkManager.
- version: 2 â das hier ist, wie ich verstanden habe, die Version von YAML.
- ethernets: â dieser Block sagt, dass wir das Ethernet-Protokoll konfigurieren werden.
- enp3s0f0: â hier geben wir an, welchen Netzwerkadapter wir konfigurieren werden.
- 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.8Hier haben wir den MAC, die IPv4, das Gateway und den DNS-Server festgelegt. Beachten Sie, dass, wenn wir mehr als eine IP-Adresse benötigen, wir diese durch ein Komma mit einem erforderlichen Leerzeichen danach schreiben.
3) Was ist, wenn wir einen ?
bonds:
bond0:
dhcp4: nein
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1- bonds: â Dieser Block erklĂ€rt, dass wir das Bonding konfigurieren werden.
- bond0: â ein beliebiger Name fĂŒr die Schnittstelle.
- interfaces: â die Menge der Schnittstellen, die im Bonding zusammengefasst werden. "Wie bereits erwĂ€hnt, wenn es mehrere Parameter gibt, beschreiben wir diese in eckigen Klammern."
- parameters: â hier beschreiben wir den Block zur Konfiguration der Parameter.
- mode: â wir geben an, nach welchem Modus das Bonding arbeitet.
- 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 den anhĂ€ngen, und die Konfiguration kann als abgeschlossen betrachtet 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: true
- vlans: â Wir deklarieren den Block zur Konfiguration des VLAN.
- vlan10: â ein beliebiger Name fĂŒr die VLAN-Schnittstelle.
- id: â das Tag unseres VLAN.
- link: â das Interface, ĂŒber das der VLAN verfĂŒgbar sein wird.
- routes: â wir deklarieren einen Block zur Beschreibung der Routen.
- â to: â wir legen die Adresse/Subnetz fest, zu dem die Route benötigt wird.
- via: â wir geben das Gateway an, ĂŒber das unser Subnetz erreichbar sein wird.
- on-link: â wir geben an, dass Routen immer beim Hochfahren des Links geschrieben werden sollen.
Bitte beachten Sie, wie ich den Abstand setze; in YAML ist das sehr wichtig.
Hier haben wir die Netzwerkschnittstellen beschrieben, Bonding erstellt und sogar VLANs hinzugefĂŒgt. Lassen Sie uns unsere Konfiguration anwenden; der Befehl netplan apply prĂŒft unsere Konfiguration auf Fehler und wendet sie im Erfolgsfall an. In Zukunft wird die Konfiguration bei einem Neustart des Systems automatisch hochgefahren.
Nachdem wir alle vorherigen Codeblöcke zusammengefĂŒhrt haben, sieht unser Ergebnis so aus:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4: no
ensp3s0f1:
dhcp4: no
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1
vlan10:
id: 10
link: bond0
dhcp4: no
addresses: [10.10.10.2/24]
routes:
- to: 10.10.10.2/24
via: 10.10.10.1
on-link: true
vlan20:
id: 20
link: bond0
dhcp4: no
addresses: [10.10.11.2/24]
gateway: 10.10.11.1
nameserver:
addresses: [8.8.8.8]
Unser Netzwerk ist jetzt betriebsbereit. Es stellte sich heraus, dass es gar nicht so kompliziert ist, wie es zunĂ€chst schien, und der Code ist sehr schön und lesbar geworden. P.C. vielen Dank fĂŒr das hervorragende Handbuch zu Netplan unter dem Link. .
Quelle: habr.com
