Systemd/systemd-networkd: Unterschied zwischen den Versionen
Jewox (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Jewox (Diskussion | Beiträge) K Kategorie:Services |
||
Zeile 120: | Zeile 120: | ||
[[Kategorie:Systemverwaltung]] | [[Kategorie:Systemverwaltung]] | ||
[[Kategorie:Services]] |
Version vom 21. April 2019, 08:44 Uhr
systemd bietet die Möglichkeit, sowohl DHCP-basierende Netzwerke, als auch Netzwerke mit einer festen IP zu verwalten. Hierzu wird der Service systemd-networkd
nebst entsprechender Konfigurationsdateien verwendet.
Konfiguration
Die Konfiguration der Netzwerke wird in Dateien mit der Endung .network
im Verzeichnis /etc/systemd/network
vorgenommen. Es können dort beliebig viele Dateien angelegt werden, um beliebig viele Netzwerkgeräte zu konfigurieren. Drahtlosnetzwerkgeräte können derzeit noch nicht nur mit systemd konfiguriert werden.
Eine Konfigurationsdatei umfasst mindestens die Abschnitte [Match]
und [Network]
. Der erste Abschnitt beinhaltet Erkennungsmerkmale des zu konfigurierenden Netzwerkgerätes, wie zum Beispiel den Namen. Im zweiten Abschnitt werden die Eigenschaften wie IP-Adresse, das Gateway, etc. bestimmt.
Sollen mehrere IP-Adressen, Routen, oder Netzwerke für ein einzelnes Gerät konfiguriert werden, ist dies ebenfalls möglich.
Beispiele
Einfache Konfiguration mit der IP 10.10.0.10/24
, dem Gateway 10.10.0.1
und dem DNS-Server 10.10.0.3
für das Netzwerkgerät enp0s25
. Diese Werte werden in allen Beispielen genutzt, und müssen entsprechend an das eigene Umfeld angepasst werden.
/etc/systemd/network/lan-verbindung.network
[Match] Name=enp0s25 [Network] DNS=10.10.0.3 Address=10.10.0.10/24 Gateway=10.10.0.1
Wenn das Gerät nicht über den Namen ermittelt werden soll, können im Abschnitt [Match]
statt Name
zum Beispiel auch MACAdress
, Path
, oder Driver
genutzt werden. Es können Wildcards genutzt werden, so erkennt Name=en*
alle Ethernet-Netzwerkgeräte, und richtet sie anhand der Konfiguration ein.
Soll dasselbe Gerät stattdessen mittels DHCP konfiguriert werden, muss die Konfiguration wie folgt aussehen.
/etc/systemd/network/lan-verbindung.network
[Match] Name=enp0s25 [Network] DHCP=v6
Soll statt IPv6 IPv4 benutzt werden, muss DHCP=v4
eingetragen werden. Wenn beide Standards genutzt werden sollen, muss DHCP=both
verwendet werden.
Bei der Verwendung von mehreren Netzwerken auf einem Netzwerkgerät können mehrere [Address]
-Abschnitte benutzt werden.
/etc/systemd/network/lan-verbindung.network
[Match] Name=enp0s25 [Address] Address=10.10.0.10/24 [Address] Address=192.168.2.50/24 [Route] Gateway=10.10.0.1 Destination=10.10.0.0/24 [Route] Gateway=192.168.2.255 Destination=192.168.2.0/24
Damit werden 10.10.0.10
und 192.168.2.50
als IP-Adressen für enp0s25
verwendet. Durch die [Route]
-Abschnitte werden die entsprechenden Routen eingestellt. Die Gateways werden anhand der IP-Adresse nebst CIDR-Angabe (hier: /24
) automatisch ermittelt, und die entsprechende Route gewählt.
Nach der Konfiguration muss der Service aktiviert und gestartet werden.
systemctl enable systemd-networkd systemctl start systemd-networkd
Überprüfung
Über systemctl
kann der Zustand des Services geprüft werden.
systemctl status systemd-networkd
● systemd-networkd.service - Network Service Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled) Active: active (running) since Tue 2014-12-09 00:19:54 CET; 38min ago Docs: man:systemd-networkd.service(8) Main PID: 205 (systemd-network) Status: "Processing requests..." CGroup: /system.slice/systemd-networkd.service └─205 /usr/lib/systemd/systemd-networkd
Dies zeigt den gestarteten Service nebst entsprechender Informationen zum Service. Details hierzu siehe im systemd-Hauptartikel. Ein weiteres Programm zum Überprüfen des Netzwerkstatus ist networkctl
.
networkctl
IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 enp0s25 ether routable configured 3 enp0s26f7u4u3 ether off unmanaged 3 links listed.
Dies listet die vorhandenen Verbindungen auf, und zeigt unter SETUP
, ob das Gerät mittels systemd-networkd verwaltet wird, oder nicht. Im Beispiel lo
, das bekannte enp0s25
, sowie ein als enp0s26f7u4u3
erkanntes, unkonfiguriertes USB-Netzwerkgerät.
Über networkctl status LINK
bekommt man detaillierte Informationen zur Verbindung.
networkctl status enp0s25
● 2: enp0s25 Link File: /usr/lib/systemd/network/99-default.link Network File: /etc/systemd/network/lan.network Type: ether State: routable (configured) Path: pci-0000:00:19.0 Driver: e1000e Vendor: Intel Corporation Model: 82562V-2 10/100 Network Connection (Inspiron 530) HW Address: 00:00:00:00:00:00 MTU: 1500 Address: 10.10.0.10 fe80::221:9bff:fe13:c413 DNS: 10.10.0.3
Es werden die Link-Datei, und die Netzwerkdatei des Gerätes aufgelistet. Die Link-Datei bestimmt unter anderem den Namen des Gerätes, die Netzwerkdatei definiert die Konfiguration. Daneben werden auch noch der Status, der Hersteller, die MAC-Adresse (für das Wiki im Beispiel generalisiert), sowie alle verfügbaren IP-Adressen und DNS-Server aufgelistet.
Fehlerbehebung
Sollte aus irgendwelchen Gründen das Loopback-Interface (lo
bei der Auflistung durch ip a
) eine weitere IP-Adresse zugewiesen zeigen, und infolge dessen keine Netzwerkverbindung mehr zustande kommen, kann dies mittels Eingabe des folgenden Befehls korrigiert werden.
ip addr flush dev lo
Danach sollten „sicherheitshalber“ entweder systemd-networkd
, oder das gesamte System neu gestartet werden.