Zum Inhalt

NetworkManager

Netzwerkkonfiguration-Tool-Suite

Im Jahr 2004 startete Red Hat das Projekt NetworkManager, dessen Ziel es ist, Linux-Benutzern die Erfüllung der Anforderungen der aktuellen Netzwerkverwaltung, insbesondere der Verwaltung drahtloser Netzwerke, zu erleichtern. Heute wird das Projekt von GNOME verwaltet. Die Homepage für NetworkManager finden Sie hier.

Offizielle Einleitung – NetworkManager ist eine Suite von Standardtools für die Linux-Netzwerkkonfiguration. Es unterstützt verschiedene Netzwerkeinstellungen vom Desktop über Server bis hin zu mobilen Geräten und ist perfekt in gängige Desktop-Umgebungen und Tools zur Serverkonfiguration integriert.

Die Suite umfasst hauptsächlich zwei Befehlszeilentools:

  • nmtui. Konfiguriert das Netzwerk in einer grafischen Oberfläche.
shell > dnf -y install NetworkManager NetworkManager-tui
shell > nmtui
NetworkManager TUI
Verbindung bearbeiten
Verbindung aktivieren
System-Hostname festlegen
Beenden
Ok
  • nmcli. Verwendet die Befehlszeile zum Konfigurieren des Netzwerks, entweder eine reine Befehlszeile oder interaktiv.
Shell > nmcli connection show
NAME    UUID                                  TYPE      DEVICE
ens160  25106d13-ba04-37a8-8eb9-64daa05168c9  ethernet  ens160

Für Rocky Linux 8.x haben wir in diesem Dokument die Konfiguration des Netzwerks vorgestellt. Sie können vim verwenden, um die Konfigurationsdatei der Netzwerkkarte im Verzeichnis /etc/sysconfig/network-script/ zu bearbeiten, oder Sie können nmcli/nmtui verwenden. Beide sind verwendbar.

Benennungsregeln für den Device-Manager udev

Wenn Sie bei RockyLinux 9.x in das Verzeichnis /etc/sysconfig/network-scripts/ gehen, wird ein Beschreibungstext readme-ifcfg-rh.txt angezeigt, der Sie auffordert, in das Verzeichnis /etc/NetworkManager/system-connections/ zu gehen.

Shell > cd /etc/NetworkManager/system-connections/  && ls
ens160.nmconnection

ens160 bezieht sich auf den Namen des Netzwerkadapters im System. Warum klingt der Name so seltsam? Dies liegt am Gerätemanager udev. Es unterstützt viele verschiedene Benennung-Schemata. Standardmäßig werden feste Namen entsprechend der Firmware-, Topologie- und Standortinformationen vergeben. Einige Vorteile:

  • Gerätenamen sind vollständig vorhersehbar.
  • Gerätenamen bleiben unverändert, auch wenn Sie Hardware hinzufügen oder entfernen, da keine erneute Aufzählung erfolgt.
  • Defekte Hardware kann problemlos ausgetauscht werden.

In RHEL 9 und den der Community-Version entsprechenden Betriebssystemen ist die konsistente Gerätebenennung standardmäßig aktiviert. Der udev Device-Manager generiert Gerätenamen gemäß dem folgenden Schema:

Schema Beschreibung Beispiel
1 Gerätenamen enthalten von der Firmware oder dem BIOS bereitgestellte Indexnummern für Onboard-Geräte. Wenn diese Information nicht verfügbar oder anwendbar ist, verwendet udev Schema 2. eno1
2 Die Gerätenamen enthalten die von der Firmware oder dem BIOS bereitgestellten Indexnummern der PCI Express (PCIe)-Hot-Plug-Steckplätze. Wenn diese Information nicht verfügbar oder anwendbar ist, verwendet udev Schema 3. ens1
3 Die Gerätebezeichnungen enthalten die physische Location des Anschlusses der Hardware. Wenn diese Information nicht verfügbar oder anwendbar ist, verwendet udev Schema 5. enp2s0
4 Gerätenamen enthalten die MAC-Adresse. Red Hat Enterprise Linux verwendet dieses Schema nicht standardmäßig, Administratoren können es aber optional nutzen. enx525400d5e0fb
5 Das traditionelle, unvorhersehbare Benennungsschema für Kernel. Wenn udev keines der anderen Schemata anwenden kann, verwendet der Geräte-Manager dieses Schema. eth0

udev Der Geräte-Manager benennt das Präfix der Netzwerkkarte basierend auf dem Schnittstellentyp:

  • en für Ethernet.
  • wl für Wireless-LAN (WLAN).
  • ww wireless wide Area Network (WWAN).
  • ib, InfiniBand–Netzwerk.
  • sl, Serial Line Internet-Protokoll (slip)

Dem Präfix einige Suffixe hinzufügen, beispielsweise:

  • o on-board_index_number
  • s hot_plug_slot_index_number [f] Funktion [d] device_id
  • x MAC_address
  • [P] Domänen-Nummer p Bus s Slot [f] Funktion [d] device_id
  • [P] Domänen-Nummer p Bus s Steckplatz [f] Funktion [u] USB-Anschluss [c] Konfiguration [i] Schnittstelle

Detailliertere Informationen erhalten Sie mit man 7 systemd.net-naming-scheme.

nmcli-Befehl (empfohlen)

Benutzer können das Netzwerk nicht nur in einem reinen Befehlszeilenmodus konfigurieren, sondern auch interaktive Kommandos zur Konfiguration des Netzwerks verwenden.

nmcli connection

Mit dem Befehl nmcli connection lassen sich anzeigen, löschen, hinzufügen, ändern, bearbeiten, nach oben, nach unten usw.

Informationen zur spezifischen Verwendung finden Sie unter nmcli connection add --help, nmcli connection edit --help, nmcli connection modify --help usw.

Um beispielsweise eine neue statische Ipv4-Verbindung mithilfe einer reinen Befehlszeile zu konfigurieren und automatisch zu starten, kann Folgendes verwendet werden:

Shell > nmcli  connection  add  type  ethernet  con-name   CONNECTION_NAME  ifname  NIC_DEVICE_NAME   \
ipv4.method  manual  ipv4.address "192.168.10.5/24"  ipv4.gateway "192.168.10.1"  ipv4.dns "8.8.8.8,114.114.114.114" \
ipv6.method  disabled  autoconnect yes

Wenn Sie DHCP zum Abrufen der IPv4-Adresse verwenden, kann diese wie folgt lauten:

Shell > nmcli  connection  add  type ethernet con-name CONNECTION_NAME  ifname  NIC_DEVICE_NAME \
ipv4.method  auto  ipv6.method  disabled  autoconnect  yes

Bei der oben beschriebenen Konfiguration wird die Verbindung nicht aktiviert. Sie müssen folgende Operation ausführen:

Shell > nmcli connection up  NIC_DEVICE_NAME

Rufen Sie die interaktive Schnittstelle über das Schlüsselwort edit auf Basis der bestehenden Verbindung auf und ändern Sie diese:

Shell > nmcli connection  edit  CONNECTION_NAME
nmcli > help

Sie können eine oder mehrere Eigenschaften der Verbindung auch direkt über die Befehlszeile mit dem Schlüsselwort modify ändern. Zum Beispiel:

Shell > nmcli connection modify CONNECTION_NAME autoconnect yes ipv6.method dhcp

Info

Operationen, die über nmcli oder nmtui ausgeführt werden, werden dauerhaft und nicht nur temporär gespeichert.

Linksaggregation

Einige nutzen mehrere Netzwerkkarten zur Link-Aggregation. In den Anfangstagen gab es bei der Verwendung der Bonding-Technologie sieben Arbeitsmodi (0–6) und der Bond-Modus unterstützte höchstens zwei Netzwerkkarten. Später wird die Teaming-Technologie schrittweise als Alternative verwendet. Es gibt fünf Arbeitsmodi und der Teammodus kann bis zu acht Netzwerkkarten verwenden. Einen Vergleichslink zwischen Bonding und Teaming finden Sie unter diesem Link.

Zum Beispiel der 0-Modus der Bonding:

Shell > nmcli  connection  add  type  bond  con-name  BOND_CONNECTION_NAME   ifname  BOND_NIC_DEVICE_NAME  mode 0
Shell > nmcli  connection  add  type  bond-slave   ifname NIC_DEVICE_NAME1   master  BOND_NIC_DEVICE_NAME
Shell > nmcli  connection  add  type  bond-slave   ifname NIC_DEVICE_NAME2   master  BOND_NIC_DEVICE_NAME

Konfiguration der Netzwerkkarte

Warnhinweis

Es wird nicht empfohlen, hier Änderungen mit vim oder anderen Editoren vorzunehmen.

Ausführlichere Informationen können Sie über man 5 NetworkManager.conf und man 5 nm-settings-nmcli anzeigen.

The content of the configuration file of the NetworkManager network card is an init-style key file. Zum Beispiel:

Shell > cat /etc/NetworkManager/system-connections/ens160.nmconnection
[connection]
id=ens160
uuid=5903ac99-e03f-46a8-8806-0a7a8424497e
type=ethernet
interface-name=ens160
timestamp=1670056998

[ethernet]
mac-address=00:0C:29:47:68:D0

[ipv4]
address1=192.168.100.4/24,192.168.100.1
dns=8.8.8.8;114.114.114.114;
method=manual

[ipv6]
addr-gen-mode=default
method=disabled

[proxy]
  • Leer-Zeilen uns Zeilen, die mit # beginnen, gelten als Kommentare.
  • Die Klammern [ und ] markieren den Abschnitt, in dem der Name deklariert werden soll, und unten sind die spezifischen Schlüssel-Wert-Paare aufgeführt. Jeder deklarierte Titel und sein Schlüssel-Wert-Paar bilden ein Syntaxsegment.
  • Jede Datei mit dem Suffix .nmconnection kann vom NetworkManager verwendet werden.

Verbindungs‐Titlenamen können diese allgemeinen Schlüssel-Wert-Paare enthalten:

Schlüssel Beschreibung
id Der Alias ​​​​von con-name, dessen Wert eine Zeichenkette ist.
uuid Universeller eindeutiger Bezeichner, dessen Wert eine Zeichenkette ist.
type Die Art der Verbindung, deren Werte beispielsweise Ethernet, Bluetooth, VPN, VLAN usw. sein können. Mit dem Befehl man nmcli können Sie alle unterstützten Typen anzeigen.
interface-name Der Name der Netzwerkschnittstelle, an die diese Verbindung gebunden ist, deren Wert eine Zeichenfolge ist.
timestamp Unix-Zeitstempel in Sekunden. Der Wert hier ist die Anzahl der Sekunden seit dem 1. Januar 1970.
autoconnect Gibt an, ob es beim Systemstart automatisch gestartet wird. Der Wert ist boolescher Typ.

Ethernet-Titelnamen können diese gängigen Schlüssel-Wert-Paare enthalten:

Schlüssel Beschreibung
mac-address Physische MAC-Adresse.
mtu Maximum Transmission Unit.
auto-negotiate Automatische Konfiguration der Übertragung. Der Wert ist boolescher Typ.
duplex Die möglichen Werte sind half (half-duplex), full (full-duplex)
speed Definiert die Übertragungsrate der Netzwerkkarte an. 100 bedeutet 100Mbit/s. Wenn auto-negotiate=false, müssen die Schlüssel speed und duplex gesetzt sein; wenn auto-negotiate=true, wird die ausgehandelte Geschwindigkeit verwendet und das Schreiben hier hat keine Auswirkung (dies gilt nur für die 802.3 BASE-T-Spezifikation); wenn er ungleich Null ist, muss der Schlüssel duplex einen Wert haben.

ipv4-Titelnamen können die folgenden gebräuchlichen Schlüsselwert-Paare enthalten:

Schlüssel Beschreibung
addresses Zugewiesene IP-Adressen
gateway Gateway (nächster Hop) für die Schnittstelle
dns Verwendete Domänennamenserver
method Die Methode, die per IP abgerufen werden soll. Der Wert ist vom String-Typ. Mögliche Werte: auto, disabled, link-local, manual, shared

Author: tianci li

Contributors: Steven Spencer