GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Netplan-Netzwerkkonfigurations-Tutorial für Anfänger

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

Softwareanforderungen und Linux-Befehlszeilenkonventionen
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:

  1. /run/netplan
  2. /etc/netplan
  3. /lib/netplan

Netplan-Design-Übersicht

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.


Ubuntu
  1. Python SciPy Tutorial - Ein Leitfaden für Anfänger

  2. Jenkins-Tutorial:Grundlagen für Anfänger

  3. Podman Tutorial - Grundlagen für Anfänger

  4. Linux-CD-Befehls-Tutorial für Anfänger (8 Beispiele)

  5. Linux Date Command Tutorial für Anfänger (8 Beispiele)

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)

Bash-Scripting-Tutorial für Anfänger

Bash Heredoc-Tutorial für Anfänger

So installieren Sie Google Chrome unter Ubuntu 20.04:Tutorial für Anfänger