|
| 1 | +--- |
| 2 | +title: NetworkManager |
| 3 | +author: tianci li |
| 4 | +contributors: Steven Spencer |
| 5 | +tags: |
| 6 | + - NetworkManager |
| 7 | + - RL9 |
| 8 | +--- |
| 9 | + |
| 10 | +## Netzwerkkonfiguration-Tool-Suite |
| 11 | + |
| 12 | +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](https://networkmanager.dev/). |
| 13 | + |
| 14 | +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. |
| 15 | + |
| 16 | +Die Suite umfasst hauptsächlich zwei Befehlszeilentools: |
| 17 | + |
| 18 | +- `nmtui`. Konfiguriert das Netzwerk in einer grafischen Oberfläche. |
| 19 | + |
| 20 | +```bash |
| 21 | +shell > dnf -y install NetworkManager NetworkManager-tui |
| 22 | +shell > nmtui |
| 23 | +``` |
| 24 | + |
| 25 | +| NetworkManager TUI | | |
| 26 | +| ------------------------- | -- | |
| 27 | +| Verbindung bearbeiten | | |
| 28 | +| Verbindung aktivieren | | |
| 29 | +| System-Hostname festlegen | | |
| 30 | +| Beenden | | |
| 31 | +| | Ok | |
| 32 | + |
| 33 | +- `nmcli`. Verwendet die Befehlszeile zum Konfigurieren des Netzwerks, entweder eine reine Befehlszeile oder interaktiv. |
| 34 | + |
| 35 | +```bash |
| 36 | +Shell > nmcli connection show |
| 37 | +NAME UUID TYPE DEVICE |
| 38 | +ens160 25106d13-ba04-37a8-8eb9-64daa05168c9 ethernet ens160 |
| 39 | +``` |
| 40 | + |
| 41 | +Für Rocky Linux 8.x haben wir [in diesem Dokument](./nmtui.md) 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. |
| 42 | + |
| 43 | +## Benennungsregeln für den Device-Manager `udev` |
| 44 | + |
| 45 | +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. |
| 46 | + |
| 47 | +```bash |
| 48 | +Shell > cd /etc/NetworkManager/system-connections/ && ls |
| 49 | +ens160.nmconnection |
| 50 | +``` |
| 51 | + |
| 52 | +`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: |
| 53 | + |
| 54 | +- Gerätenamen sind vollständig vorhersehbar. |
| 55 | +- Gerätenamen bleiben unverändert, auch wenn Sie Hardware hinzufügen oder entfernen, da keine erneute Aufzählung erfolgt. |
| 56 | +- Defekte Hardware kann problemlos ausgetauscht werden. |
| 57 | + |
| 58 | +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: |
| 59 | + |
| 60 | +| Schema | Beschreibung | Beispiel | |
| 61 | +| ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | |
| 62 | +| 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 | |
| 63 | +| 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 | |
| 64 | +| 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 | |
| 65 | +| 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 | |
| 66 | +| 5 | Das traditionelle, unvorhersehbare Benennungsschema für Kernel. Wenn `udev` keines der anderen Schemata anwenden kann, verwendet der Geräte-Manager dieses Schema. | eth0 | |
| 67 | + |
| 68 | +`udev` Der Geräte-Manager benennt das Präfix der Netzwerkkarte basierend auf dem Schnittstellentyp: |
| 69 | + |
| 70 | +- **en** für Ethernet. |
| 71 | +- **wl** für Wireless-LAN (WLAN). |
| 72 | +- **ww** wireless wide Area Network (WWAN). |
| 73 | +- **ib**, InfiniBand–Netzwerk. |
| 74 | +- **sl**, Serial Line Internet-Protokoll (slip) |
| 75 | + |
| 76 | +Dem Präfix einige Suffixe hinzufügen, beispielsweise: |
| 77 | + |
| 78 | +- **o** on-board_index_number |
| 79 | +- **s** hot_plug_slot_index_number **[f]** Funktion **[d]** device_id |
| 80 | +- **x** MAC_address |
| 81 | +- **[P]** Domänen-Nummer **p** Bus **s** Slot **[f]** Funktion **[d]** device_id |
| 82 | +- **[P]** Domänen-Nummer **p** Bus **s** Steckplatz **[f]** Funktion **[u]** USB-Anschluss **[c]** Konfiguration **[i]** Schnittstelle |
| 83 | + |
| 84 | +Detailliertere Informationen erhalten Sie mit `man 7 systemd.net-naming-scheme`. |
| 85 | + |
| 86 | +## `nmcli`-Befehl (empfohlen) |
| 87 | + |
| 88 | +Benutzer können das Netzwerk nicht nur in einem reinen Befehlszeilenmodus konfigurieren, sondern auch interaktive Kommandos zur Konfiguration des Netzwerks verwenden. |
| 89 | + |
| 90 | +### `nmcli connection` |
| 91 | + |
| 92 | +Mit dem Befehl `nmcli connection` lassen sich anzeigen, löschen, hinzufügen, ändern, bearbeiten, nach oben, nach unten usw. |
| 93 | + |
| 94 | +Informationen zur spezifischen Verwendung finden Sie unter `nmcli connection add --help`, `nmcli connection edit --help`, `nmcli connection modify --help` usw. |
| 95 | + |
| 96 | +Um beispielsweise eine neue statische Ipv4-Verbindung mithilfe einer reinen Befehlszeile zu konfigurieren und automatisch zu starten, kann Folgendes verwendet werden: |
| 97 | + |
| 98 | +```bash |
| 99 | +Shell > nmcli connection add type ethernet con-name CONNECTION_NAME ifname NIC_DEVICE_NAME \ |
| 100 | +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" \ |
| 101 | +ipv6.method disabled autoconnect yes |
| 102 | +``` |
| 103 | + |
| 104 | +Wenn Sie DHCP zum Abrufen der IPv4-Adresse verwenden, kann diese wie folgt lauten: |
| 105 | + |
| 106 | +```bash |
| 107 | +Shell > nmcli connection add type ethernet con-name CONNECTION_NAME ifname NIC_DEVICE_NAME \ |
| 108 | +ipv4.method auto ipv6.method disabled autoconnect yes |
| 109 | +``` |
| 110 | + |
| 111 | +Bei der oben beschriebenen Konfiguration wird die Verbindung nicht aktiviert. Sie müssen folgende Operation ausführen: |
| 112 | + |
| 113 | +```bash |
| 114 | +Shell > nmcli connection up NIC_DEVICE_NAME |
| 115 | +``` |
| 116 | + |
| 117 | +Rufen Sie die interaktive Schnittstelle über das Schlüsselwort `edit` auf Basis der bestehenden Verbindung auf und ändern Sie diese: |
| 118 | + |
| 119 | +```bash |
| 120 | +Shell > nmcli connection edit CONNECTION_NAME |
| 121 | +nmcli > help |
| 122 | +``` |
| 123 | + |
| 124 | +Sie können eine oder mehrere Eigenschaften der Verbindung auch direkt über die Befehlszeile mit dem Schlüsselwort `modify` ändern. Zum Beispiel: |
| 125 | + |
| 126 | +```bash |
| 127 | +Shell > nmcli connection modify CONNECTION_NAME autoconnect yes ipv6.method dhcp |
| 128 | +``` |
| 129 | + |
| 130 | +!!! info "Info" |
| 131 | + |
| 132 | + Operationen, die über `nmcli` oder `nmtui` ausgeführt werden, werden dauerhaft und nicht nur temporär gespeichert. |
| 133 | + |
| 134 | +#### Linksaggregation |
| 135 | + |
| 136 | +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](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-comparison_of_network_teaming_to_bonding). |
| 137 | + |
| 138 | +Zum Beispiel der 0-Modus der Bonding: |
| 139 | + |
| 140 | +```bash |
| 141 | +Shell > nmcli connection add type bond con-name BOND_CONNECTION_NAME ifname BOND_NIC_DEVICE_NAME mode 0 |
| 142 | +Shell > nmcli connection add type bond-slave ifname NIC_DEVICE_NAME1 master BOND_NIC_DEVICE_NAME |
| 143 | +Shell > nmcli connection add type bond-slave ifname NIC_DEVICE_NAME2 master BOND_NIC_DEVICE_NAME |
| 144 | +``` |
| 145 | + |
| 146 | +## Konfiguration der Netzwerkkarte |
| 147 | + |
| 148 | +!!! warning "Warnhinweis" |
| 149 | + |
| 150 | + Es wird nicht empfohlen, hier Änderungen mit `vim` oder anderen Editoren vorzunehmen. |
| 151 | + |
| 152 | +Ausführlichere Informationen können Sie über `man 5 NetworkManager.conf` und `man 5 nm-settings-nmcli` anzeigen. |
| 153 | + |
| 154 | +The content of the configuration file of the NetworkManager network card is an init-style key file. Zum Beispiel: |
| 155 | + |
| 156 | +```bash |
| 157 | +Shell > cat /etc/NetworkManager/system-connections/ens160.nmconnection |
| 158 | +[connection] |
| 159 | +id=ens160 |
| 160 | +uuid=5903ac99-e03f-46a8-8806-0a7a8424497e |
| 161 | +type=ethernet |
| 162 | +interface-name=ens160 |
| 163 | +timestamp=1670056998 |
| 164 | + |
| 165 | +[ethernet] |
| 166 | +mac-address=00:0C:29:47:68:D0 |
| 167 | + |
| 168 | +[ipv4] |
| 169 | +address1=192.168.100.4/24,192.168.100.1 |
| 170 | +dns=8.8.8.8;114.114.114.114; |
| 171 | +method=manual |
| 172 | + |
| 173 | +[ipv6] |
| 174 | +addr-gen-mode=default |
| 175 | +method=disabled |
| 176 | + |
| 177 | +[proxy] |
| 178 | +``` |
| 179 | + |
| 180 | +- Leer-Zeilen uns Zeilen, die mit # beginnen, gelten als Kommentare. |
| 181 | +- 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. |
| 182 | +- Jede Datei mit dem Suffix `.nmconnection` kann vom **NetworkManager** verwendet werden. |
| 183 | + |
| 184 | +**Verbindungs**‐Titlenamen können diese allgemeinen Schlüssel-Wert-Paare enthalten: |
| 185 | + |
| 186 | +| Schlüssel | Beschreibung | |
| 187 | +| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 188 | +| id | Der Alias von `con-name`, dessen Wert eine Zeichenkette ist. | |
| 189 | +| uuid | Universeller eindeutiger Bezeichner, dessen Wert eine Zeichenkette ist. | |
| 190 | +| 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. | |
| 191 | +| interface-name | Der Name der Netzwerkschnittstelle, an die diese Verbindung gebunden ist, deren Wert eine Zeichenfolge ist. | |
| 192 | +| timestamp | Unix-Zeitstempel in Sekunden. Der Wert hier ist die Anzahl der Sekunden seit dem 1. Januar 1970. | |
| 193 | +| autoconnect | Gibt an, ob es beim Systemstart automatisch gestartet wird. Der Wert ist boolescher Typ. | |
| 194 | + |
| 195 | +**Ethernet**-Titelnamen können diese gängigen Schlüssel-Wert-Paare enthalten: |
| 196 | + |
| 197 | +| Schlüssel | Beschreibung | |
| 198 | +| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 199 | +| mac-address | Physische MAC-Adresse. | |
| 200 | +| mtu | Maximum Transmission Unit. | |
| 201 | +| auto-negotiate | Automatische Konfiguration der Übertragung. Der Wert ist boolescher Typ. | |
| 202 | +| duplex | Die möglichen Werte sind `half` (half-duplex), `full` (full-duplex) | |
| 203 | +| 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. | |
| 204 | + |
| 205 | +**ipv4**-Titelnamen können die folgenden gebräuchlichen Schlüsselwert-Paare enthalten: |
| 206 | + |
| 207 | +| Schlüssel | Beschreibung | |
| 208 | +| --------- | -------------------------------------------------------------------------------------------------------------------------------------- | |
| 209 | +| addresses | Zugewiesene IP-Adressen | |
| 210 | +| gateway | Gateway (nächster Hop) für die Schnittstelle | |
| 211 | +| dns | Verwendete Domänennamenserver | |
| 212 | +| method | Die Methode, die per IP abgerufen werden soll. Der Wert ist vom String-Typ. Mögliche Werte: auto, disabled, link-local, manual, shared | |
0 commit comments