Netplan ist ein Dienstprogramm, das von Canonical, dem Unternehmen hinter Ubuntu, entwickelt wurde. Es bietet eine Abstraktion der Netzwerkkonfiguration über die derzeit unterstützten zwei „Backend“-Systeme (oder „Renderer“ in der Netplan-Terminologie):networkd und NetworkManager . Mit Netplan werden sowohl physische als auch virtuelle Netzwerkschnittstellen über yaml konfiguriert Dateien, die in Konfigurationen übersetzt werden, die mit dem ausgewählten Backend kompatibel sind.
Unter Ubuntu 20.04 ersetzt Netplan die herkömmliche Methode zum Konfigurieren von Netzwerkschnittstellen mithilfe von /etc/network/interfaces
Datei; Es zielt darauf ab, die Dinge einfacher und zentralisierter zu machen (die alte Art der Konfiguration von Schnittstellen kann weiterhin verwendet werden:Lesen Sie unseren Artikel über das Zurückschalten des Netzwerks auf /etc/network/interfaces unter Ubuntu 20.04 Focal Fossa Linux). In diesem Artikel lernen wir die Grundprinzipien hinter dem Dienstprogramm kennen und, nur als Beispiel, wie wir es verwenden können, um eine statische IPv4-Adresse für eine Netzwerkschnittstelle zu konfigurieren.
In diesem Tutorial lernen Sie :
- Die grundlegende Struktur der von Netplan verwendeten Yaml-Konfigurationsdateien
- So erstellen Sie eine einfache Regel, um einer Netzwerkschnittstelle eine statische IP zuzuweisen
- Anwenden von Konfigurationen mit Generieren , probieren und bewerben Unterbefehle
Netplan-Netzwerkkonfigurations-Tutorial für Anfänger
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Ubuntu 20.04 (Focal Fossa) |
Software | Netplan (standardmäßig installiert) |
Andere | Root-Berechtigungen zum Ändern von Konfigurationsdateien |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass gegebene Linux-Befehle als normaler nicht-privilegierter Benutzer ausgeführt werden |
Netplan-Konfigurationsdateien
Es gibt drei Orte, an denen Netplan-Konfigurationsdateien abgelegt werden können; in der Reihenfolge ihrer Priorität sind sie:
/run/netplan
/etc/netplan
/lib/netplan
In jedem dieser Verzeichnisse werden Konfigurationen mithilfe von Dateien mit der .yaml-Datei erstellt Erweiterung, die lexikographisch verarbeitet werden Reihenfolge, unabhängig davon, in welchem Verzeichnis sie sich befinden.
Die Verzeichnispriorität spielt nur eine Rolle, wenn Dateien mit demselben Namen vorhanden sind:In diesen Fällen wird nur die Datei geparst, die im Verzeichnis mit der höheren Priorität enthalten ist.
Wenn ein Boolean oder Skalar Parameter in mehr als einer Konfigurationsdatei definiert ist, nimmt er den Wert an, der in der letzten analysierten Datei definiert ist; wenn die Werte Sequenzen sind , stattdessen werden sie verkettet.
Benutzer sollten ihre Konfigurationen in /etc/netplan
platzieren Verzeichnis; standardmäßig ist die einzige Datei, die auf einem frisch installierten Ubuntu 20.04-System vorhanden ist, /etc/netplan/01-network-manager-all.yaml
. Im nächsten Abschnitt sehen wir uns die darin enthaltenen Anweisungen und ihre Bedeutung an.
Die Datei /etc/netplan/01-network-manage-all.yaml
Die einzige vorhandene Konfigurationsdatei ist /etc/netplan/
Verzeichnis auf einem neu installierten Ubuntu 20.04-System ist 01-network-manage-all.yaml
. Werfen wir einen Blick auf den Inhalt:
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
Wie der Kommentar in der Datei andeutet, soll die Konfiguration alle Netzwerkschnittstellen auf dem System so einstellen, dass sie vom NetworkManager
verwaltet werden Renderer. Wir können beobachten, dass Anweisungen innerhalb des Hauptknotens network
eingerückt sind . Da es sich um Yaml-Dateien handelt, ist die Einrückung entscheidend.
Zwei weitere Schlüsselwörter, die wir in der Datei finden können, sind version
und renderer
:Ersteres gibt die verwendete Syntaxversion an, letzteres das Backend des Systems (Netzwerk vs. NetworkManager ).
Im nächsten Abschnitt dieses Tutorials erstellen wir ein etwas komplexeres Konfigurationsbeispiel und verwenden es, um einer Netzwerkschnittstelle eine statische IPv4-Adresse zuzuweisen.
Ein Konfigurationsbeispiel – Festlegen einer statischen IPv4-Adresse
Die Konfigurationsdatei, die wir oben gesehen haben, ist ziemlich einfach; Lassen Sie uns etwas Komplexeres versuchen und sehen, wie wir eine statische IPv4-Adresse mit Netplan konfigurieren können.
Als erstes müssen wir eine neue Konfigurationsdatei erstellen, die nach der Standarddatei geparst wird:Nennen wir sie /etc/netplan/02-static-ip.yaml
. Innerhalb der Datei erstellen wir eine Regel, die mit der/den Netzwerkschnittstelle(n) übereinstimmt, die wir einrichten möchten:Wir können die Aufgabe mit match
ausführen Strophe.
Innerhalb des match
Abschnitt können wir eine Reihe physikalischer Schnittstellen auf der Grundlage des Werts der angegebenen Eigenschaften auswählen. Damit die Einstellungen angewendet werden, müssen alle Eigenschaften mit der Regel übereinstimmen.
In die Konfigurationsdatei schreiben wir:
# Set static ip address for enp1s0 interface network: version: 2 renderer: NetworkManager ethernets: id0: match: name: enp1s0 dhcp4: false addresses: - 192.168.122.250/24 nameservers: addresses: - 192.168.122.1 gateway4: 192.168.122.1
Schauen wir uns die neuen Anweisungen, die wir in der Konfiguration verwendet haben, genauer an. Innerhalb des network
Knoten können Geräte nach ihrem Typ gruppiert werden:
ethernets
wifis
bridges
Da wir es in unserem Beispiel mit einem Ethernet-Gerät zu tun haben, haben wir ethernets
verwendet Strophe. Innerhalb des match
Strophe haben wir die Schnittstelle mit ihrem name
referenziert :enp1s0
. Abgleichsregeln können auch auf macaddress
basieren und nur bei Verwendung von networkd
als Renderer auf driver
Dies ist der Linux-Kernel-Treibername, der für das/die Gerät(e) verwendet wird.
Um unsere gewünschte Konfiguration zu erreichen, haben wir eine Reihe von Anweisungen verwendet. Da wir eine statische Adresse vergeben wollen, haben wir dhcp4
deaktiviert und die addresses
verwendet Schlüsselwort, um der Schnittstelle eine IPv4-Adresse zuzuordnen. Es können mehrere Adressen angegeben werden:Sie müssen zusammen mit der Subnetzmaske angegeben werden.
Wir setzen auch die Adressen der nameservers
in der gleichnamigen Strophe. Schließlich setzen wir die IPv4-Adresse des Gateways, das die Schnittstelle verwenden soll, mit dem gateway4
Schlüsselwort.
Vereinfachung der Konfiguration
Die Konfiguration, die wir im obigen Beispiel verwendet haben, kann leicht vereinfacht werden. Um auf die Schnittstelle zu verweisen, der wir die statische Adresse zuweisen möchten, haben wir den match
verwendet Strophe hätten wir aber auch weglassen können. Da wir möchten, dass unsere Einstellungen nur auf ein bestimmtes Gerät angewendet werden, können wir es direkt mit seinem vorhersehbaren Namen (enp1s0
) als id :
network: version: 2 renderer: NetworkManager ethernets: enp1s0: dhcp4: false addresses: - 192.168.122.250/24 nameservers: addresses: - 192.168.122.1 gateway4: 192.168.122.1
Wenn die match
Strophe verwendet wird, die id (id0
im vorherigen Beispiel) ist willkürlich und wird verwendet, um das/die konfigurierte(n) Gerät(e) aus anderen Abschnitten der Konfigurationsdatei zu referenzieren. Wenn die match
Strophe wird weggelassen, stattdessen wird die id verwendet muss dem vorhersagbaren Namen des Geräts entsprechen. Beim Arbeiten mit virtuellen Geräten wie Bridges oder Bonds wird die id wird nicht verwendet, um auf eine vorhandene Schnittstelle zu verweisen, sondern stellt den Namen dar, der verwendet werden sollte, wenn die Schnittstelle erstellt wird.
An diesem Punkt ist unsere Konfiguration fertig; alles, was wir tun sollten, ist es zu speichern und zu testen.
Testen und Anwenden einer Netplan-Konfiguration
Im vorherigen Abschnitt haben wir gesehen, wie Sie eine einfache Netplan-Konfiguration erstellen, um eine statische IPv4-Adresse für eine Netzwerkschnittstelle bereitzustellen. Jetzt ist es an der Zeit, die Konfiguration zu testen, um zu sehen, ob sie richtig funktioniert. Um unser Ziel zu erreichen, können wir den netplan
verwenden Dienstprogramm und try
Unterbefehl.
Der try
Unterbefehl von netplan
Das Dienstprogramm wird, wie der Name schon sagt, verwendet, um eine Konfiguration auszuprobieren und sie optional zurückzusetzen, wenn der Benutzer sie nach einer bestimmten Zeit nicht bestätigt. Das Standard-Timeout ist 120
Sekunden, kann aber mit --timeout
geändert werden Option.
Wie Sie an der Ausgabe der ip address
sehen können Befehl die aktuelle IPv4-Adresse für enp1s0
Schnittstelle ist 192.168.122.200
:
$ ip address|grep enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.200/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
Wenden wir die Konfiguration an:
$ sudo netplan try
Sobald wir den Befehl ausgeführt haben, erscheint die folgende Eingabeaufforderung auf dem Bildschirm:
Do you want to keep these settings? Press ENTER before the timeout to accept the new configuration Changes will revert in 120 seconds
Wir haben genug Zeit, um festzustellen, ob sich die IP-Adresse der Schnittstelle geändert hat:
$ ip address|grep enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.250/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
Wie wir sehen können, hat sich die IPv4-Adresse wie erwartet geändert. In diesem Fall konnte der Befehl die Konfiguration jedoch nach Ablauf des Zeitlimits nicht zurücksetzen. Dies ist ein bekanntes Problem, das auch in der Manpage des Dienstprogramms gemeldet wird. In solchen Fällen sollte ein Neustart ausreichen, um vollständig zum ursprünglichen Zustand zurückzukehren.
Zwei weitere Befehle können verwendet werden:
netplan generate
netplan apply
Den netplan generate
Der Befehl konvertiert die Einstellungen in den YAML-Dateien in Konfigurationen, die für den verwendeten Renderer geeignet sind, wendet sie jedoch nicht an. In den allermeisten Fällen soll es nicht direkt aufgerufen werden:Es wird zum Beispiel durch netplan apply
aufgerufen die zusätzlich die Änderungen ohne „Revert“-Timeout anwendet.
Schlussfolgerungen
In diesem Tutorial haben wir uns an Netplan gewandt, ein von Canonical entwickeltes Dienstprogramm, das standardmäßig auf Ubuntu 20.04 Focal Fossa aktiv ist. Der Zweck dieses Dienstprogramms besteht darin, Konfigurationen für Netzwerkschnittstellen mithilfe von Yaml-Konfigurationsdateien zu abstrahieren.
Diese Konfigurationen werden dann in Konfigurationen für den angegebenen Renderer übersetzt, z. B. NetworkManager oder networkd. In diesem Tutorial haben wir gesehen, wie man eine einfache Regel schreibt, um eine statische IP-Adresse für eine Netzwerkschnittstelle festzulegen, wir haben einige der Knoten kennengelernt, die in Konfigurationsdateien verwendet werden können, und wir haben gesehen, wie man Änderungen über den netplan try
und netplan apply
Befehle. Hier haben wir nur an der Oberfläche dessen gekratzt, was mit Netplan erreicht werden kann. Wenn Sie mehr darüber erfahren möchten, werfen Sie bitte einen Blick auf die Netplan-Website und auf die Hilfsprogramm-Manpage.