Manpages

BEZEICHNUNG

systemd.link - Konfiguration von Netzwerkgeräten

ÜBERSICHT

Link.link

BESCHREIBUNG

Eine einfache, init-artige Textdatei, die die Konfiguration für passende Netzwerkgeräte kodiert. Sie wird von systemd-udev(8) und insbesondere dem eingebauten net_setup_link verwandt. Siehe systemd.syntax(5) für eine allgemeine Beschreibung der Syntax.

Die Link-Dateien werden aus den Dateien gelesen, die sich im Systemnetzwerkverzeichnis /lib/systemd/network, dem flüchtigen Laufzeitnetzwerkverzeichnis /run/systemd/network und dem lokalen Administrationsnetzwerkverzeichnis /etc/systemd/network befinden. Link-Dateien müssen die Endung .link haben, andere Endungen werden ignoriert. Allerdings ersetzen sich Dateien mit gleichen Namen gegenseitig. Dateien in /etc haben die höchste Priorität, Dateien in /run haben Vorrang vor Dateien mit dem gleichen Namen in /lib. Dies kann bei Bedarf zum Außerkraftsetzen einer vom System bereitgestellten Link-Datei durch eine lokale Datei verwandt werden. Als Spezialfall deaktiviert eine leere Datei (Dateigröße 0) oder ein Symlink auf /dev/null die Konfigurationsdatei insgesamt (sie ist »maskiert«).

Die Link-Datei enthält einen Abschnitt »[Match]«, der festlegt, ob eine gegebene Link-Datei auf ein gegebenes Gerät angewandt werden darf. Desweiteren enthält sie einen Abschnitt »[Link]«, der festlegt, wie ein Gerät konfiguriert werden soll. Die erste (in lexikalischer Reihenfolge) der auf ein gegebenes Gerät passenden Link-Dateien wird angewandt. Beachten Sie, dass eine Vorgabedatei 99-default.link durch das System ausgeliefert wird. Daher sollte jede von Benutzern bereitgestellte .link einen lexikalisch vorherigen Namen haben, um überhaupt betrachtet zu werden.

Siehe udevadm(8) für die Diagnose von Problemen mit .link-Dateien.

[MATCH]-ABSCHNITT-OPTIONEN

Eine Link-Datei wird als auf ein Gerät passend angesehen, falls alle im Abschnitt »[Match]« festgelegten Treffer erfüllt sind. Wenn eine Link-Datei keine gültigen Einstellungen im Abschnitt »[Match]« enthält, dann wird die Datei auf alle Geräte passen und systemd-udevd eine Warnung ausgeben. Tipp: Um die Warnung zu vermeiden und klarer darzustellen, dass auf alle Schnittstellen entsprochen werden sollen, fügen Sie Folgendes hinzu:

OriginalName=*

Die folgenden Schlüssel werden akzeptiert:

MACAddress=

Eine Leerraum-getrennte Liste von Hardware-Adressen. Verwendet vollständige Doppelpunkt-, Bindestrich- oder Punkt-begrenzte hexadezimale Notation. Lesen Sie das nachfolgende Beispiel. Diese Option kann mehr als einmal auftauchen, dann werden die Listen zusammengeführt. Falls der Option die leere Zeichenkette zugewiesen wird, wird die vorher definierte Liste der Hardware-Adressen zurückgesetzt.

Beispiel:

MACAddress=01:23:45:67:89:ab 00-11-22-33-44-55 AABB.CCDD.EEFF

PermanentMACAddress=

Eine Leerraum-getrennte Liste von dauerhaften Adressen der Hardware. Während MACAddress= auf die aktuelle MAC-Adresse des Gerätes passt, vergleicht dies die dauerhafte MAC-Adresse des Gerätes, die sich von der aktuellen unterscheiden kann. Verwendet vollständige Doppelpunkt-, Bindestrich- oder Punkt-begrenzte hexadezimale Notation. Diese Option kann mehr als einmal auftauchen, dann werden die Listen zusammengeführt. Falls der Option die leere Zeichenkette zugewiesen wird, wird die vorher definierte Liste der Hardware-Adressen zurückgesetzt.

Path=

Eine Leerraum-getrennte Liste von Shell-artigen Globs, die auf dauerhafte Pfade, wie sie von der Udev-Eigenschaft ID_PATH offengelegt wird, passen.

Driver=

Eine Leerraum-getrennte Liste von Shell-artigen Globs, die auf den derzeit an das Gerät gebundenen Treiber passen, wie dieser durch die Udev-Eigenschaft ID_NET_DRIVER des übergeordneten Gerätes offengelegt wird oder, falls die nicht gesetzt ist, durch den Treiber selbst, wie dies durch ethtool -i offengelegt wird. Wird der Liste »!« vorangestellt, so wird der Test invertiert.

Type=

Eine Leerraum-getrennte Liste von Shell-artigen Globs, die auf den Gerätetyp, wie er durch networkctl status offengelegt wird, passen. Wird der Liste »!« vorangestellt, so wird der Test invertiert.

Property=

Eine Leerraum-getrennte Liste von Udev-Eigenschaftsnamen mit ihren Werten nach einem Gleichheitszeichen (»=«). Falls mehrere Eigenschaften festgelegt sind, werden sie mit UND verbunden. Wird der Liste »!« vorangestellt, so wird der Test invertiert. Falls ein Wert Leerraum enthält, dann schließen Sie das gesamte Schlüssel-Wert-Paar bitte in englische Anführungszeichen ein. Falls ein Wert Anführungszeichen enthält, dann maskieren Sie bitte das Anführungszeichen mit »\«.

Beispiel: Falls eine .link-Datei

Property=ID_MODEL_ID=9999 "ID_VENDOR_FROM_DATABASE=Lieferantenname" "KEY=mit \"Anführungszeichen\""

enthält, dann passt eine .link-Datei nur, wenn eine Schnittstelle alle drei obigen Eigenschaften enthält.

OriginalName=

Eine Leerraum-getrennte Liste von Shell-artigen Globs, die auf den Gerätenamen, wie er durch die Udev-Eigenschaft »INTERFACE« offengelegt wird, passen. Dies kann nicht zum Vergleich mit Namen, die aus dem Anwendungsraum heraus bereits geändert wurden, verwandt werden. Kernel-zugewiesene Namen können sich bei Systemneustarts ändern, daher sollte beim Vergleich dieser Namen Vorsicht walten gelassen werden.

Host=

Passt auf den Rechnernamen oder die Maschinenkennung des Rechners. Siehe ConditionHost= in systemd.unit(5) für Details. Wird »!« vorangestellt, so wird das Ergebnis negiert. Wird eine leere Zeichenkette zugewiesen, dann wird der vorher zugewiesene Wert zurückgesetzt.

Virtualization=

Prüft, ob das System in einer virtualisierten Umgebung ausgeführt wird und testet optional, ob es eine bestimmte Implementierung ist. Siehe ConditionVirtualization= in systemd.unit(5) für Details. Das Ergebnis wird negiert, wenn ein Ausrufezeichen (»!«) vorangestellt wird. Falls eine leere Zeichenkette zugewiesen wird, dann wird der vorher zugewiesene Wert bereinigt.

KernelCommandLine=

Prüft, ob eine bestimmte Kernelbefehlzeilenoption gesetzt ist. Siehe ConditionKernelCommandLine= in systemd.unit(5) für Details. Das Ergebnis wird negiert, wenn ein Ausrufezeichen (»!«) vorangestellt wird. Falls eine leere Zeichenkette zugewiesen wird, dann wird der vorher zugewiesene Wert bereinigt.

KernelVersion=

Prüft, ob die Kernelversion (wie von uname -r gemeldet) auf einen bestimmten Ausdruck passt. Siehe ConditionKernelVersion= in systemd.unit(5) für Details. Das Ergebnis wird negiert, wenn ein Ausrufezeichen (»!«) vorangestellt wird. Falls eine leere Zeichenkette zugewiesen wird, dann wird der vorher zugewiesene Wert bereinigt.

Architecture=

Prüft, ob das System auf einer bestimmten Architektur läuft. Siehe ConditionArchitecture= in systemd.unit(5) für Details. Das Ergebnis wird negiert, wenn ein Ausrufezeichen (»!«) vorangestellt wird. Falls eine leere Zeichenkette zugewiesen wird, dann wird der vorher zugewiesene Wert bereinigt.

[LINK]-ABSCHNITT-OPTIONEN

Der Abschnitt [LINK] akzeptiert die folgenden Schlüssel:

Description=

Eine Beschreibung des Gerätes.

Alias=

Die Schnittstelleneigenschaft ifalias wird auf diesen Wert gesetzt.

MACAddressPolicy=

Die Richtlinie, gemäß der die MAC-Adresse gesetzt werden soll. Die verfügbaren Richtlinien sind:

persistent

Falls die Hardware eine dauerhafte MAC-Adresse hat, wie das die meiste Hardware haben sollte, und diese vom Kernel verwandt wird, dann passiert nichts. Andernfalls wird eine neue MAC-Adresse erstellt, für die garantiert wird, dass sie nach jedem Systemstart auf der angegebenen Maschine für das angegebene Gerät stets identisch, aber ansonsten zufällig ist. Diese Funktionalität basiert auf der Existenz der Eigenschaft ID_NET_NAME_* für den Link. Auf Hardware, auf der diese Eigenschaft nicht gesetzt ist, wird die Erstellung einer dauerhaften MAC-Adresse fehlschlagen.

random

Falls der Kernel eine zufällige MAC-Adresse verwendet, passiert nichts. Andernfalls wird bei jedem Auftauchen des Gerätes, typischerweise beim Systemstart, zufällig eine neue MAC-Adresse erstellt. Auf jeden Fall wird die zufällige Adresse die Bits »unicast« und »locally administered« gesetzt haben.

none

Behält die vom Kernel zugewiesene MAC-Adresse.

MACAddress=

Die zu verwendende MAC-Adresse, falls MACAddressPolicy= nicht festgelegt ist.

NamePolicy=

Eine sortierte, durch Leerzeichen getrennte Liste von Richtlinien, gemäß derer der Schnitstellenname gesetzt werden soll. NamePolicy= kann durch Angabe von net.ifnames=0 auf der Kernelbefehlszeile deaktiviert werden. Jeder dieser Richtlinien kann fehlschlagen und die erste erfolgreiche wird verwandt. Der Name wird nicht direkt gesetzt, sondern an Udev als Eigenschaft ID_NET_NAME exportiert, die standardmäßig von udev(7) zum Setzen von NAME verwandt wird. Die verfügbaren Richtlinien sind:

kernel

Falls der Kernel angibt, dass der von ihm für ein Gerät gesetzte Name vorhersagbar ist, dann erfolgt keine Umbenennung.

database

Der Name wird basierend auf den Einträgen in der Hardware-Datenbank von Udev mit dem Schlüssel ID_NET_NAME_FROM_DATABASE gesetzt.

onboard

Der Name wird basierend auf dem durch die Firmware für fest verbaute Geräte gelieferten Informationen, wie diese durch die Udev-Eigenschaft ID_NET_NAME_ONBOARD exportiert wird, gesetzt. Siehe systemd.net-naming-scheme(7).

slot

Der Name wird basierend auf dem durch die Firmware für hotplug-fähige Geräte gelieferten Informationen, wie diese durch die Udev-Eigenschaft ID_NET_NAME_SLOT exportiert wird, gesetzt. Siehe systemd.net-naming-scheme(7).

path

Der Name wird basierend auf dem physischen Ort des Gerätes, wie dieser durch die Udev-Eigenschaft ID_NET_NAME_PATH exportiert wird, gesetzt. Siehe systemd.net-naming-scheme(7).

mac

Der Name wird basierend auf der dauerhaften MAC-Adresse des Gerätes, wie diese durch die Udev-Eigenschaft ID_NET_NAME_MAC exportiert wird, gesetzt. Siehe systemd.net-naming-scheme(7).

keep

Falls das Gerät bereits im Anwendungsbereich einen Namen erhielt (als Teil der Erstellung des Gerätes oder einer Umbenennung), wird dieser beibehalten.

Name=

Den zu verwendenden Schnittstellennamen. Diese Option hat eine niedrigere Priorität als NamePolicy=. Damit also diese Einstellung wirksam wird, muss NamePolicy= entweder nicht gesetzt, leer, deaktiviert sein oder alle Richtlinien, die dies konfigurieren, müssen fehlschlagen. Schauen Sie sich auch das nachfolgende Beispiel mit »Name=dmz0« an.

Beachten Sie, dass es gefährlich ist, einen Namen anzugeben, den der Kernel für eine andere Schnittstelle verwendet (beispielsweise »eth0«), da die Namenszuweisung durch Udev mit der Zuweisung durch den Kernel in einen Wettlauf gelangen kann, und nur eine Schnittstelle den Namen verwenden darf. Abhängig von der Reihenfolge der Aktionen wird entweder Udev oder der Kernel gewinnen, wodurch der Name unvorhersagbar wird. Es wird empfohlen, ein anderes Präfix zu wählen, beispielsweise »internal0«/»external0« oder »lan0«/»lan1«/»lan3«.

AlternativeNamesPolicy=

Eine Leerzeichen-getrennte Liste von Richtlinien, gemäß derer der alternative Name der Schnittstelle gesetzt werden soll. Jede der Richtlinien kann fehlschlagen und alle erfolgreichen Richtlinien werden verwandt. Die verfügbaren Richtlinien sind »database«, »onboard«, »slot«, »path« and »mac«. Falls der Kernel keine alternativen Namen unterstützt, dann wird diese Einstellung ignoriert.

AlternativeName=

Der zu verwendende alternative Schnittstellenname. Diese Option kann mehrfach festgelegt werden. Falls der Option die leere Zeichenkette zugewiesen wird, wird die Liste zurückgesetzt und alle vorherigen Zuweisungen sind wirkungslos. Falls der Kernel keine alternativen Namen unterstützt, dann wird diese Einstellung ignoriert.

MTUBytes=

Die für das Gerät zu setzende maximale Übertragungseinheit in Byte. Die normalen Endungen K, M, G werden als Einheiten zur Basis 1024 verstanden.

BitsPerSecond=

Die für das Gerät zu setzende Geschwindigkeit, der Wert wird auf die nächsten Mbit/s abgerundet. Die normalen Endungen K, M, G werden als Einheiten zur Basis 1000 verstanden.

Duplex=

Der für das Gerät zu setzende Duplex-Modus. Die akzeptierten Werte sind half und full.

AutoNegotiation=

Akzeptiert einen logischen Wert. Falls auf »yes« gesetzt, wird die automatische Aushandlung von Übertragungsparametern aktiviert. Bei der automatischen Aushandlung entscheiden sich zwei verbundene Ethernet-Geräte über die Übertragungsparameter, wie Geschwindigkeit, Duplex-Modus und Flusssteuerung. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

Beachten Sie, dass die Geschwindigkeits- und Duplex-Einstellungen nur lesbar sind, wenn automatische Aushandlung aktiviert ist. Falls dies deaktiviert ist, sind die Geschwindigkeits- und Duplex-Einstellungen schreibbar, falls der Treiber mehrere Link-Modi unterstützt.

WakeOnLan=

Die für das Gerät zu setzende »Wake-on-LAN« (Aufwachen durch LAN-Aktivität) Richtlinie. Die unterstützten Werte sind:

phy

Wacht bei PHY-Aktivität auf.

unicast

Wacht bei Unicast-Meldungen auf.

multicast

Wacht bei Multicast-Meldungen auf.

broadcast

Wacht bei Broadcast-Meldungen auf.

arp

Wacht bei ARP auf.

magic

Wacht bei Empfang eines magischen Pakets auf.

secureon

Aktiviert Secureon(™)-Passwort für MagicPacket(™).

off

Wacht niemals auf.

Standardmäßig off.

Port=

Die Option »port« wird zur Auswahl des Geräte-Ports verwandt. Die unterstützten Werte sind:

tp

Eine Ethernet-Schnittstelle mit Twisted-Pair-Kabel als Medium.

aui

Attachment Unit Interface (AUI). Normalerweise in Hubs verwandt.

bnc

Eine Ethernetschnittstelle, die BNC-Stecker und koaxiales Kabel benutzt.

mii

Eine Ethernet-Schnittstelle, die Media Independent Interface (MII) benutzt.

fibre

Eine Ethernet-Schnittstelle, die Glasfaser als Medium benutzt.

Advertise=

Dies setzt die Ankündigungen der Geschwindigkeit und Duplexmodi für die automatische Aushandlung. Dies impliziert »AutoNegotiation=yes«. Die unterstützten Werte sind:

Tabelle 1. Unterstützte Ankündigungswerte
Standardmäßig ist dies nicht gesetzt, d.h. alle möglichen Modi werden angekündigt. Diese Option kann mehr als einmal angegeben werden, wodurch alle festgelegten Geschwindigkeiten und Modi angekündigt werden. Wird dieser Option eine leere Zeichenkette zugewiesen, dann wird die Liste zurückgesetzt und alle vorher gesetzten Zuweisungen haben keine Auswirkung.

ReceiveChecksumOffload=

Akzeptiert einen logischen Wert. Falls auf wahr gesetzt, wird die Abgabe der Prüfsummenprüfung von Ingress-Netzwerkpaketen an die Hardware aktiviert. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

TransmitChecksumOffload=

Akzeptiert einen logischen Wert. Falls auf wahr gesetzt, wird die Abgabe der Prüfsummenprüfung von Egress-Netzwerkpaketen an die Hardware aktiviert. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

TCPSegmentationOffload=

Akzeptiert einen logischen Wert. Falls auf wahr gesetzt, wird »TCP Segmentation Offload (TSO)« aktiviert. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

TCP6SegmentationOffload=

Akzeptiert einen logischen Wert. Falls auf wahr gesetzt, wird »TCP6 Segmentation Offload« (tx-tcp6-Segmentierung) aktiviert. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

GenericSegmentationOffload=

Akzeptiert einen logischen Wert. Falls auf wahr gesetzt, wird »Generic Segmentation Offload (GSO)« aktiviert. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

GenericReceiveOffload=

Akzeptiert einen logischen Wert. Falls auf wahr gesetzt, wird »Generic Receive Offload (GRO)« aktiviert. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

LargeReceiveOffload=

Akzeptiert einen logischen Wert. Falls auf wahr gesetzt, wird »Large Receive Offload (LRO)« aktiviert. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

RxChannels=

Setzt die Anzahl an Empfangskanälen (eine Zahl zwischen 1 und 4294967295).

TxChannels=

Setzt die Anzahl an Übertragungskanälen (eine Zahl zwischen 1 und 4294967295).

OtherChannels=

Setzt die Anzahl der anderen Kanäle (eine Zahl zwischen 1 und 4294967295).

CombinedChannels=

Setzt die Anzahl der kombiniert-gesetzten Kanäle (eine Zahl zwischen 1 und 4294967295).

RxBufferSize=

Akzeptiert eine Ganzzahl. Legt die maximale Anzahl an anhängenden Paketen in diesem NIC-Empfangspuffer fest. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

TxBufferSize=

Akzeptiert eine Ganzzahl. Legt die maximale Anzahl an anhängenden Paketen in diesem NIC-Sendepuffer fest. Falls nicht gesetzt, wird die Vorgabe des Kernels verwandt.

BEISPIELE

Beispiel 1. /lib/systemd/network/99-default.link

Die mit Systemd ausgelieferte Link-Datei 99-default.link definiert die Standardbenennungsrichtlinie für Links.

[Link]
NamePolicy=Pfad des eingebauten Slots in der Kernel-Datenbank
MACAddressPolicy=persistent

Beispiel 2. /etc/systemd/network/10-dmz.link

Dieses Beispiel weist den festen Namen »dmz0« der Schnittstelle mit der MAC-Adresse 00:a0:de:63:7a:e6 zu:

[Match]
MACAddress=00:a0:de:63:7a:e6

[Link]
Name=dmz0

NamePolicy= ist nicht gesetzt, daher wird Name= wirksam. Wir verwenden das »10-«-Präfix, um die Datei früh in die Liste einzusortieren. Beachten Sie, dass es vor »99-link« sein muss, d.h. sie muss ein numerisches Präfix haben, um überhaupt Wirkung zu zeigen.

Beispiel 3. Fehlersuche in NamePolicy=-Zuweisungen

$ sudo SYSTEMD_LOG_LEVEL=debug udevadm test-builtin net_setup_link /sys/class/net/hub0

Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/10-eth0.link
ID_NET_DRIVER=cdc_ether
Config file /etc/systemd/network/10-eth0.link applies to device hub0
link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
hub0: Device has name_assign_type=4
Using default interface naming scheme 'v240'.
hub0: Policies didn't yield a name, using specified Name=hub0.
ID_NET_LINK_FILE=/etc/systemd/network/10-eth0.link
ID_NET_NAME=hub0

In diesem Fall gewinnt die explizite Name=-Konfiguration.

sudo SYSTEMD_LOG_LEVEL=debug udevadm test-builtin net_setup_link /sys/class/net/enp0s31f6

Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/10-eth0.link
Created link configuration context.
ID_NET_DRIVER=e1000e
Config file /lib/systemd/network/99-default.link applies to device enp0s31f6
link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
enp0s31f6: Device has name_assign_type=4
Using default interface naming scheme 'v240'.
enp0s31f6: Policy *keep*: keeping existing userspace name
enp0s31f6: Device has addr_assign_type=0
enp0s31f6: MAC on the device already matches policy *persistent*
ID_NET_LINK_FILE=/lib/systemd/network/99-default.link

In diesem Fall wurde die Schnittstelle bereits umbenannt, so dass die als erste Option in 99-default.link festgelegte Richtlinie »keep« bedeutet, dass der bestehende Name erhalten wird. Falls keep entfernt würde oder falls es im Systemstart wäre, bevor die Umbenennung passierte, könnten wir stattdessen Folgendes erhalten:

enp0s31f6: Policy *path* yields "enp0s31f6".
enp0s31f6: Device has addr_assign_type=0
enp0s31f6: MAC on the device already matches policy *persistent*
ID_NET_LINK_FILE=/lib/systemd/network/99-default.link
ID_NET_NAME=enp0s31f6

Bitte beachten Sie, dass sich die Ausgabedetails ändern können.

Beispiel 4. /etc/systemd/network/10-internet.link

Dieses Beispiel weist den festen Namen »internet0« der Schnittstelle mit dem Gerätepfad »pci-0000:00:1a.0-*« zu:

[Match]
Path=pci-0000:00:1a.0-*

[Link]
Name=internet0

Beispiel 5. /etc/systemd/network/25-wireless.link

Es folgt ein sehr komplexes Beispiel, das die Verwendung einer großen Anzahl von [Match]- und [Link]-Einstellungen zeigt.

[Match]
MACAddress=12:34:56:78:9a:bc
Driver=brcmsmac
Path=pci-0000:02:00.0-*
Type=wlan
Virtualization=no
Host=mein_Laptop
Architecture=x86-64

[Link]
Name=wireless0
MTUBytes=1450
BitsPerSecond=10M
WakeOnLan=magic
MACAddress=cb:a9:87:65:43:21

SIEHE AUCH

systemd-udevd.service(8), udevadm(8), systemd.netdev(5), systemd.network(5)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian [AT] helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german [AT] lists.org>.