Nmstate Ein deklaratives Netzwerkkonfigurationstool für Linux
- 1585
- 452
- Miriam Bauschke
Das Linux-Ökosystem bietet zahlreiche Möglichkeiten, Netzwerke zu konfigurieren. In diesem Handbuch wird ein weiteres Netzwerkkonfigurationstool vorgestellt, das als bekannt ist Nmstate
Nmstate ist ein deklarativer Netzwerkmanager für die Konfiguration von Netzwerken auf Linux -Hosts. Es handelt sich um eine Bibliothek, die ein Befehlszeilen-Tool bietet, das Host-Netzwerkeinstellungen verwaltet. Es verwaltet Host Networking über eine deklarative API in Richtung Norden. Zum Zeitpunkt des Schreibens dieses Leitfadens die Netzwerk Manager Dämon ist der einzige Anbieter, der von unterstützt wird Nmstate.
In diesem Leitfaden betrachten wir einige der Beispielanwendungen der Nmstate Werkzeug. Für diesen Leitfaden werden wir dies verwenden Fedora Linux.
Imperative gegen deklarative Ansätze
Das Netzwerkmanagement kann zwei Ansätze verfolgen - Imperativ Und deklarativ. Im Imperativ Ansatz definieren Sie explizit den Netzwerkzustand einer Schnittstelle, indem Sie Befehle auf dem Terminal ausführen. Der Fokus liegt auf der 'Wie''.
Führen Sie den Befehl aus, um beispielsweise ein Netzwerk mit dem Imperativansatz zu fällen:
$ sudo ifconfig ENP0S3 unten
Andererseits die deklarativ Ansatz verwendet a Yaml Datei, um die Änderungen auf eine Konfiguration anzuwenden. Die meisten DevOps -Orchestrierungswerkzeuge wie z Kubernetes Verwenden Sie diesen Ansatz, um Pods -Anwendungen mit a zu bereitstellen Yaml Datei.
Dieser Ansatz liefert das, was allgemein als Infrastruktur als Code bezeichnet wird (Code (IAC) In DevOps -Kreisen. Dies verbessert die Automatisierung der Netzwerkkonfiguration am Host und bietet eine schnelle und zuverlässigere Möglichkeit, mehrere Änderungen an einer Netzwerkschnittstelle mit minimalen Fehlern vorzunehmen.
Lassen Sie uns nun die Gänge wechseln und sehen, wie Sie das verwenden können Nmstate Konfigurationstool zum Konfigurieren Ihrer Netzwerkschnittstellen unter Linux.
Schritt 1: Installieren Sie das NMState -Networking -Konfigurationstool
Wir werden den Ball ins Rollen bringen, indem wir die installieren Nmstate. Überprüfen Sie zunächst die Verfügbarkeit des Pakets von Fedora Repositorys wie folgt:
$ sudo dnf suche nmstate
Aus der Ausgabe können wir feststellen, dass der Netzwerkmanager in den offiziellen Repositories verfügbar ist.
Überprüfen Sie das NMState -PaketAls nächstes installieren Sie Nmstate folgendermaßen. Das funktioniert weiter Fedora 31 und spätere Versionen.
$ sudo dnf install nmstate
Der Befehl installiert die Nmstate Netzwerkmanager -API neben anderen Python -Abhängigkeiten.
Installieren Sie NMState in FedoraÜberprüfen Sie nach Abschluss der Installation die nmstate Das Paket ist wie folgt installiert.
$ rpm -qi nmstateÜberprüfen Sie das NMState -Paket
Aktivieren Sie für rhelbasierte Linux zuerst das COPR-Repository.
$ sudo dnf copr aktivieren nmstate/nmstate-stabil
Dann installieren Nmstate folgendermaßen.
$ sudo dnf install nmstate
Weitere Anweisungen zur Installation von NMState aus der Quelle finden Sie in der Quelle.
Nach der Installation können Sie die Version von überprüfen Nmstate wie folgt installiert.
$ nmstatectl Version 1.0.2
Verwenden von NMState -Konfigurationstool unter Linux
Mit Nmstate Lassen Sie uns installiert, und gehen Sie zu den gestrickten Grittien, wie Sie das Network Manager-API optimal nutzen können.
Führen Sie den folgenden Befehl aus, um die aktuelle Netzwerkkonfiguration Ihrer Netzwerkschnittstelle anzuzeigen. Hier ist die Konfiguration Ihrer ENP0S3 Schnittstelle.
$ nmstatectl show ENP0S3Zeigen Sie die Konfiguration der Netzwerkschnittstellenkonfiguration
Die Ausgabe ist in 4 verschiedene Abschnitte unterteilt:
- DNS-Reolver: Dieser Abschnitt enthält die Namenserver -Konfiguration für die bestimmte Schnittstelle.
- Routenströme: Dies sieht die Routing -Regeln vor.
- Routen: Dies schließt sowohl dynamische als auch statische Routen ein.
- Schnittstellen: Dieser Abschnitt gibt sowohl die IPv4- als auch die IPv6 -Einstellungen an.
Ändern der Netzwerkkonfiguration unter Linux
Du kannst den ... benutzen Nmstate Konfigurationstool zum Konfigurieren Ihrer Hosts im gewünschten Status mithilfe interaktiven oder dateibasierten Modi im gewünschten Status.
- Interaktiv: Dies bearbeitet eine Netzwerkschnittstelle mit der nmstatectl bearbeiten Befehl. Dieser Befehl öffnet einen Texteditor, der durch die Variable der Editorumgebungsvariable definiert ist. Sobald die Änderungen gespeichert sind, wendet NMState die neue Konfiguration sofort an, sofern Syntaxfehler festgestellt wurden.
- Dateibasiert: Im dateibasierten Modus wird die Schnittstellenkonfiguration mithilfe einer YAML- oder JSON-Datei mit der Datei angewendet nmStatectl beantragen Befehl.
Lassen Sie uns nun die Hände schmutzig machen und sehen Sie, wie Sie die Netzwerkkonfiguration mithilfe verwenden können Nmstate.
Unser Fedora System verfügt über zwei aktive Netzwerkschnittstellen mit der folgenden Konfiguration:
$ ip -br -4 a
Probenausgabe
LO Unbekannt 127.0.0.1/8 ENP0S3 UP 192.168.2.104/24 ENP0S8 UP 192.168.2.103/24
Beispiel für den interaktiven Konfigurationsmodus
Wir werden den interaktiven Modus verwenden, um die zu ändern MTU (Maximale Übertragungseinheit) des ENP0S3 Netzwerkschnittstelle. Standardmäßig ist dies auf 1500 wie gezeigt.
$ ifconfigÜberprüfen Sie das Netzwerk -MTU unter Linux
Wir werden dies an ändern 4000. Wir werden dies mit dem tun nmstatectl bearbeiten Befehl wie folgt.
$ sudo nmstatectl bearbeiten eNP0S3
Dies öffnet die Konfiguration in einem Texteditor. Für unseren Fall öffnet es ein Vim Editor. Als nächstes scrollen Sie den ganzen Weg nach unten und finden Sie die MTU Parameter. Wir werden den Wert auf ändern 4000, So wie wir eine Datei in Vim bearbeiten würden. Dann werden wir die Änderungen speichern.
Ändern Sie das Netzwerk -MTU unter LinuxWenn Sie die Datei speichern und beenden, sehen Sie eine durcheinandergebrachte Ausgabe am Terminal als Nmstate rettet die Änderungen. Es ist keine Intervention erforderlich, also sitzen Sie einfach still.
Lassen Sie uns nun bestätigen, dass die Änderung vorgenommen wurde.
$ ifconfig
Aus dem Terminalausgang können wir sehen, dass wir die MTU erfolgreich in die MTU geändert haben 4000 Aus der Standardeinstellung 1500 Wert.
Überprüfen Sie die Netzwerk -MTU unter LinuxBeispiel für den Dateibasierten Konfigurationsmodus
Lassen Sie uns nun die Konfiguration mit dem dateibasierten Modus ändern. In diesem Beispiel werden wir deaktivieren IPv6 für die ENP0S8 Netzwerkschnittstelle. Der erste Schritt besteht darin, eine YAML -Datei zu erstellen, in der der gewünschte Status der angegeben wird ENP0S8 Netzwerkschnittstelle.
$ sudo nmstatectl show ENP0S8> ENP0S8.YMLNetwork YAML -Datei erstellen
Als nächstes werden wir die bearbeiten Yaml Datei wie folgt.
$ sudo vim enp0s8.YML
Scrollen Sie zum IPv6 -Abschnitt nach unten. Um IPv6 zu deaktivieren, legen Sie den aktivierten Parameter auf False ein und löschen Sie die durchgeschlagenen Zeilen.
Deaktivieren Sie IPv6 unter LinuxSpeichern Sie die Konfiguration und wenden Sie den neuen Status mit der YAML -Datei wie folgt an.
$ sudo nmstatectl anwenden eNP0S8.YML
Führen Sie nun den angezeigten Befehl aus, um zu überprüfen, ob IPv6 deaktiviert wurde. Die angezeigte Ausgabe zeigt, dass das IPv6 für die ENP0S8 Die Netzwerkschnittstelle ist leer, was bedeutet, dass wir IPv6 auf der Schnittstelle erfolgreich deaktiviert haben.
$ ip -br aBestätigen Sie IPv6 unter Linux deaktiviert
Änderungen des Netzwerks vorübergehend anwenden
Eine andere wirklich praktische Funktionalität, die Nmstate Bietet die Möglichkeit, einen gewünschten Netzwerkzustand vorübergehend zu konfigurieren. Sobald Sie mit der Konfiguration zufrieden sind, können Sie fortfahren und die Änderungen dauerhaft vornehmen. Andernfalls werden die vorgenommenen Änderungen zu den ersten Einstellungen zurückgeführt, sobald die Zeitüberschreitung abgelaufen ist. Das Standard -Timeout beträgt 60 Sekunden.
Um dies zu demonstrieren, werden wir vorübergehend eine statische IP auf die festlegen ENP0S3 Schnittstelle und deaktivieren DHCP. Greifen Sie noch einmal mit einem Texteditor auf die Datei zu.
$ sudo vim enp0s3.YML
Scrollen Sie zum IPv4 Abschnitt. Geben Sie die statische IP an - in unserem Fall 192.168.2.150 und löschen Sie die durchgehenden Linien. Stellen Sie außerdem sicher, dass Sie die festlegen DHCP Parameter zu FALSCH.
Stellen Sie statische IP in Linux einSpeichern Sie die Datei und begehen Sie die Änderungen wie folgt vorübergehend.
$ sudo nmStatectl anwenden-no-commit-Timeout 20 ENP0S3.YML
Der --No-Commit
Die Option wendet die Änderungen für einen von der definierten Zeitraum vorübergehend an --Auszeit
Option, die in diesem Beispiel 20 Sekunden beträgt.
Um die zeitliche Anwendung der Änderungen zu überprüfen, werden wir die IP -Konfiguration in einem Zeitintervall von 20 Sekunden überprüfen.
$ ip -br a
Aus der Ausgabe können Sie feststellen, dass die IP -Konfiguration der Schnittstelle nach dem Zeitintervall von 20 Sekunden zu DHCP zurückgekehrt ist. Die IP -Adresse ging zurück zu 192.168.2.104 Aus dem früheren statisch konfigurierten IP, der war 192.168.2.150.
Überprüfen Sie die NetzwerkschnittstelleZugegeben, die Nmstate Tool ist ein bequemes Tool zum Konfigurieren Ihrer Netzwerkschnittstellen. Es ist ein deklaratives Tool, das den gewünschten Konfigurationsstatus der Schnittstelle eines Hosts mithilfe der NetworkManager -API anwendet.
Der Zustand wird leicht mit entweder die definiert interaktiv sich nähern oder die verwenden Dateibasiert Methode, die eine vorkonfigurierte Methode verwendet Yaml Datei. Dies verbessert die Automatisierung von Konfigurationsaufgaben und die Verringerung von Fehlern während der Konfiguration.
- « 7 Möglichkeiten zur Beschleunigung des Firefox -Browsers im Linux -Desktop
- Beste Skype -Alternativen für Linux Desktop »