table of contents
- bookworm 4.18.1-1
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.25.0-1
SYSTEMD.NET-NAMING-SCHEME(7) | systemd.net-naming-scheme | SYSTEMD.NET-NAMING-SCHEME(7) |
BEZEICHNUNG¶
systemd.net-naming-scheme - Benennungsschema für Netzwerkgeräte
BESCHREIBUNG¶
Netzwerkschnittstellennamen und MAC-Adressen können auf Basis bestimmter gleichbleibender Schnittstellenattribute erstellt werden. Dies ist möglich, wenn es genug Informationen über das Gerät gibt, um diese Attribute zu erstellen und die Verwendung dieser Information konfiguriert wurde. Diese Seite beschreibt die Schnittstellenbenennung, d.h. welche möglichen Namen erstellt werden können. Diese Namen werden durch das in systemd-udevd.service(8) eingebaute net_id und als Udev-Eigenschaften (ID_NET_NAME_ONBOARD=, ID_NET_LABEL_ONBOARD=, ID_NET_NAME_PATH=, ID_NET_NAME_SLOT=) exportiert.
Namen und MAC-Adressen werden aus verschiedenen gleichbleibenden Metadatenattributen abgeleitet. Neuere Versionen von Udev berücksichtigen mehr dieser Attribute und verbessern (und damit ändern) die für die gleichen Geräte verwandten Namen und Adressen. Verschiedene Versionen dieser Erstellungsregeln werden »Benennungsschema« genannt. Das Standard-Benennungsschema wird zum Kompilierungszeitpunkt ausgewählt. Normalerweise wird dies die neuste implementierte Version sein, aber es ist auch möglich, dies auf eine ältere Version zur Erhaltung der Kompatibilität zu setzen. Dies könnte beispielsweise für Distributionen nützlich sein, die neuere Versionen von Systemd in stabilen Veröffentlichungen integrieren, ohne das Benennungschema zu ändern. Das Benennungschema kann auch mittels des Kernelbefehlszeilenschalters net.naming-scheme= außer Kraft gesetzt werden, siehe systemd-udevd.service(8). Verfügbare Benennungsschemas werden nachfolgend beschrieben.
Nachdem die Udev-Eigenschaften erstellt worden sind, können Geräte anhand dieser Eigenschaften und den geeigneten Udev-Regeln tatsächlich umbenannt werden. Siehe die Beschreibung von NamePolicy= und MACAddressPolicy= in systemd.link(5).
Beachten Sie, dass das Konzept der Netzwerkschnittstellenbenennung zwar primär im Kontext von systemd-udevd.service relevant ist, aber der Container-Verwalter systemd-nspawn(1) sie auch bei der Benennung von Schnittstellennamen in Betracht zieht, siehe unten.
RICHTLINIEN¶
Alle Namen beginnen mit einem Zwei-Zeichen-Präfix, das den Schnittstellentyp kennzeichnet.
Tabelle 1. Zwei-Zeichen-Präfix basierend
auf dem Typ der Schnittstelle
Präfix | Beschreibung |
en | Ethernet |
ib | InfiniBand |
sl | IP über serielle Leitung (Slip) |
wl | Schnurloses lokales Netzwerk (WLAN) |
ww | Schnurloses Weitverkehrsnetz (WWAN) |
Das eingebaute Udev net_id exportiert die folgenden Udev-Geräteeigenschaften:
ID_NET_NAME_ONBOARD=PräfixoNummer, ID_NET_NAME_ONBOARD=PräfixdNummer
Tabelle 2. Mainboard-Benennungsschema
Format | Beschreibung |
PräfixoNummer | PCI-Mainboard-Index |
PräfixdNummer | Devicetree-Alias-Index |
ID_NET_LABEL_ONBOARD=Präfix Kennzeichen
ID_NET_NAME_MAC=PräfixxAABBCCDDEEFF
ID_NET_NAME_SLOT=Präfix[PDomäne]sSlot[fFunktion][nPort_Name|dGer_Port], ID_NET_NAME_SLOT=PräfixvSlot, ID_NET_NAME_SLOT=PräfixxSlot, ID_NET_NAME_SLOT=Präfix[PDomäne]sSlot[fFunktion][nPort_Name|dGer_Port]bNummer, ID_NET_NAME_SLOT=Präfix[PDomäne]sSlot[fFunktion][nPort_Name|dGer_Port]uPort…[cKonfiguration][iSchnittstelle], ID_NET_NAME_SLOT=Präfix[PDomäne]sSlot[fFunktion][nPort_Name|dGer_Port]vSlot,ID_NET_NAME_SLOT=Präfix[PDomäne]sSlot[fFunktion][nPort_Name|dGer_Port]rSlot
Tabelle 3. Slot-Benennungsschema
Format | Beschreibung |
Präfix [PDomäne] sSlot [fFunktion] [nPort_Name | dGer_Port] | PCI-Slot-Nummer |
Präfix vSlot | VIO-Slot-Nummer (IBM PowerVM) |
Präfix XNummer | VIF Schnittstellennummer (Xen) |
… bNummer | Broadcom-Bus- (BCMA) Kernnummer |
… uPort… [cKonfiguration] [iSchnittstelle] | USB-Port-Nummerkette |
…vSlot | SR-VIO-Slot-Nummer |
… rSlot | SR-IOV-Slot-Nummer |
Die PCI-Domäne wird nur vorangestellt, wenn sie nicht 0 ist. Alle multifunktionalen PCI-Geräte werden die fFunktion-Nummer im Gerätenamen tragen, einschließlich der Funktion-0-Geräte. Für nicht-multifunktionale Geräte wird die Nummer unterdrückt, falls sie 0 ist. Der Port-Name Port_Name wird verwandt oder die Port-Nummer dGer_Port, falls der Name nicht bekannt ist.
Für BCMA-Geräte wird die Kernnummer unterdrückt, wenn diese 0 ist.
Für USB-Geräte wird die komplette Kette von Port-Nummern der Hubs zusammengesetzt. Falls der Name länger als die maximale Anzahl von 15 Zeichen ist, wird der Name nicht exportiert. Die Werte der normalen USB-Konfigurationsnummer 1 und Schnittstellennummer 0 werden unterdrückt.
Der Name von virtuellen SR-IOV-Geräten basiert auf dem Namen der übergeordneten Schnittstelle, gefolgt von v und der virtuellen Gerätenummer, wobei alle führenden Nullen entfernt werden. Die Busnummer wird ignoriert.
Der Darsteller von virtuellen SR-IOV-Geräten basiert auf dem Namen der physischen Geräte-Schnittstelle, gefolgt von r und der Anzahl der virtuellen Geräte, die mit dem jeweiligen Darsteller verbunden sind, wobei alle führenden Nullen entfernt werden. Der Name des physischen Ports und die Busnummer werden ignoriert.
In einigen Konfigurationen kann eine übergeordnete PCI-Bridge eines angegebenen Netzwerk-Controllers einem Steckplatz zugewiesen sein. In diesen Fällen wird diese Geräteeigenschaft nicht erstellt, um Benennungskonflikte zu vermeiden.
ID_NET_NAME_PATH=PräfixcBuskennung, ID_NET_NAME_PATH=PräfixaLieferantModelliInstanz, ID_NET_NAME_PATH=PräfixiAdressenPort_Name, ID_NET_NAME_PATH=PräfixuPort…, ID_NET_NAME_PATH=Präfix[PDomäne]pBussSlot[fFunktion][nphys_Port_Name|dGer_Port], ID_NET_NAME_PATH=Präfix[PDomäne]pBussSlot[fFunktion][nphys_Port_Name|dGer_Port]bNummer, ID_NET_NAME_PATH=Präfix[PDomäne]pBussSlot[fFunktion][nphys_Port_Name|dGer_Port]uPort…[cKonfig][iSchnittstelle]
Tabelle 4. Pfadbenennungsschema
Format | Beschreibung |
Präfix cBuskennung | CCW- oder gruppierte CCW-Gerätekennzeichner |
Präfix aHändler Modell iInstanz | ACPI-Pfadnamen für ARM64-Plattformgeräte |
Präfix iAdresse nPort-Name | Netdevsim (simulierte Netzwerkgeräte) Gerätenummer und Port-Name |
Präfix [PDomäne] pBus sSlot [fFunktion] [nphys_Port_Name | dGer_Port] | Geographischer PCI-Ort |
… bNummer | Broadcom-Bus- (BCMA) Kernnummer |
… uPort… [cKonfiguration] [iSchnittstelle] | USB-Port-Nummerkette |
CCW- und gruppierte CCW-Geräte gibt es in IBM-System-Z-Großrechnern. Alle einleitenden Nullen und Punkte werden unterdrückt.
Für PCI-, BCMA- und USB-Geräte werden die gleichen Regeln wie oben für Slot-Namen beschrieben verwandt.
GESCHICHTE¶
Das folgende »Benennungsschema« wurde definiert (dies kann zum Zeitpunkt des Systemstarts mittels des oben dargestellten Kernelbefehlszeilenschalters net.naming-scheme= ausgewählt werden):
v238
v239
Virtuelle SR-IOV Geräte werden basierend auf der übergeordneten Schnittstelle mit einer Endung »vPort« benannt, wobei Port die virtuelle Gerätenummer ist. Vorher wurden solche virtuellen Geräte benannt, als ob sie komplett unabhängig wären.
Das neunte und spätere virtuelle NPAR-Geräte folgen dem für die ersten acht NPAR-Partitionen verwandten Benennungsschema. Früher wurden solche Geräte nicht umbenannt und die Vorgabe des Kernels (»ethN«) wurde verwandt.
Es werden auch Namen für PCI-Geräte erstellt, bei denen der PCI-Netzwerk-Controller selbst keine zugeordnete Slot-Nummer hat, aber eines seiner übergeordneten Geräte hat eine. Früher wurden solche Geräte nicht umbenannt und die Vorgabe des Kernels wurde verwandt.
v240
Das ACPI-Indexfeld (in ID_NET_NAME_ONBOARD= verwandt) wird jetzt auch genutzt, falls sein Wert 0 ist.
Es wurde eine neue Benennungsrichtlinie NamePolicy=keep eingeführt. Mit dieser Richtline wird das Netzwerkgerät nicht erneut umbenannt, falls sein Name bereits im Anwendungsraum (user space) gesetzt wurde. Früher wurde diese Bennungsrichtlinie implizit angewandt und jetzt muss sie explizit erbeten werden. Effektiv bedeutet dies, dass Netzwerkgeräte entsprechend ihrer Konfiguration umbenannt werden, falls keep nicht als Benennungsrichtlinie in der .link-Datei festgelegt ist, auch wenn sie bereits umbenannt worden sind. Siehe systemd.link(5) für eine Beschreibung von NamePolicy=.
v241
Beachten Sie: Wenn der Anwendungsraum keine MAC-Adresse für ein Bridge-Gerät setzt, dann wird der Kernel anfänglich eine zufällige Adresse zuweisen und diese dann ändern, wenn das erste Gerät zu der Bridge enslaved wird. Mit dieser Änderung der Benennungsrichtlinie erhalten Bridges eine dauerhafte MAC-Adresse basierend auf dem Bridge-Namen anstatt des ersten Gerätes, das enslaved ist.
v243
Früher wurde der zweibuchstabige Schnittstellentyppräfix ID_NET_LABEL_ONBOARD= vorangestellt. Dies ist jetzt nicht mehr der Fall.
v245
v247
v249
Einige Firmware- und Hypervisor-Implementierungen berichten unrealistisch hohe Werte für den eingebauten Index. Um die Erstellung von gefälschten eingebauten Schnittstellennamen zu vermeiden, wurden Indexwerte größer als 16381 ¹⁴-1) ignoriert. Für S390-PCI-Geräte sind Indexwerte bis 65535 (2¹⁶-1) gültig. Um dies zu berücksichtigen, wurde diese Begrenzung auf 65535 erhöht.
Die Udev-Regel NAME= ersetzt »:«, »/« und »%« durch einen Unterstrich (»_«) und lehnt Zeichenketten ab, die rein numerisch sind.
v250
v251
v252
v253
v254
Die Endung »rSlot« wurde hinzugefügt, um virtuelle SR-IOV-Gerätedarsteller, die an einer einzigen physischen Geräteschnittstelle hängen, zu unterscheiden.
Beachten Sie, dass latest zur Kennzeichnung des neusten bekannten Schemas (für diese konkrete Version von Systemd) verwandt werden kann.
BEISPIELE¶
Beispiel 1. Verwendung Udevadms test-builtin zur Anzeige von Geräteeigenschaften
$ udevadm test-builtin net_id /sys/class/net/enp0s31f6 … Verwendung des Vorgabe-Schnittstellen-Benennungsschemas 'v243'. ID_NET_NAMING_SCHEME=v243 ID_NET_NAME_MAC=enx54ee75cb1dc0 ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd. ID_NET_NAME_PATH=enp0s31f6 …
Beispiel 2. PCI-Ethernet-Karte mit Firmware-Index »1«
ID_NET_NAME_ONBOARD=eno1 ID_NET_NAME_ONBOARD_LABEL=Ethernet Port 1
Beispiel 3. PCI-Ethernet-Karte in einem Slot für dynamisches Einstecken mit Firmware-Indexnummer
# /sys/devices/pci0000:00/0000:00:1c.3/0000:05:00.0/net/ens1 ID_NET_NAME_MAC=enx000000000466 ID_NET_NAME_PATH=enp5s0 ID_NET_NAME_SLOT=ens1
Beispiel 4. PCI-Ethernet-Multifunktionskarte mit 2 Ports
# /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/net/enp2s0f0 ID_NET_NAME_MAC=enx78e7d1ea46da ID_NET_NAME_PATH=enp2s0f0 # /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/net/enp2s0f1 ID_NET_NAME_MAC=enx78e7d1ea46dc ID_NET_NAME_PATH=enp2s0f1
Beispiel 5. PCI-WLAN-Karte
# /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlp3s0 ID_NET_NAME_MAC=wlx0024d7e31130 ID_NET_NAME_PATH=wlp3s0
Beispiel 6. PCI-IB-Host-Adapter mit 2 Ports
# /sys/devices/pci0000:00/0000:00:03.0/0000:15:00.0/net/ibp21s0f0 ID_NET_NAME_PATH=ibp21s0f0 # /sys/devices/pci0000:00/0000:00:03.0/0000:15:00.1/net/ibp21s0f1 ID_NET_NAME_PATH=ibp21s0f1
Beispiel 7. Eingebautes USB-3G-Modem
# /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.6/net/wwp0s29u1u4i6 ID_NET_NAME_MAC=wwx028037ec0200 ID_NET_NAME_PATH=wwp0s29u1u4i6
Beispiel 8. USB-Android-Telephon
# /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/net/enp0s29u1u2 ID_NET_NAME_MAC=enxd626b3450fb5 ID_NET_NAME_PATH=enp0s29u1u2
Beispiel 9. s390-gruppierte CCW-Schnittstelle
# /sys/devices/css0/0.0.0007/0.0.f5f0/group_device/net/encf5f0 ID_NET_NAME_MAC=enx026d3c00000a ID_NET_NAME_PATH=encf5f0
SIEHE AUCH¶
udev(7), udevadm(8), Vorhersagbare Netzwerkschnittstellennamen[1], systemd-nspawn(1)
ANMERKUNGEN¶
- 1.
- Vorhersagbare Netzwerkschnittstellennamen
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@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 die Mailingliste der Übersetzer.
systemd 254 |