it-swarm.com.de

vorhersehbare Netzwerkschnittstellennamen in systemd

Die neueste Version von Ubuntu und Debian (Stretch) bringt ein neues Namensschema für die Netzwerkschnittstelle.

Wenn ich jetzt von einem System aktualisiere, das alte Stilnamen wie "eth0" verwendet, möchte ich vor dem Booten wissen = wie der neue Name sein wird.

Wie kann ich das machen? Gibt es einen magischen Aufruf von "systemd", mit dem ich/etc/network/interface vor dem Booten bearbeiten kann (und anschließend die Netzwerkverbindung verliere)?

15

Es stehen zwei verschiedene Schemata zur Verfügung: biosdevname vs vorhersagbarer Name der Netzwerkschnittstelle.

biosdevname

Biosdevname scheint die Standardeinstellung in Ubuntu zu sein. Es wird durch die Installation des Pakets biosdevname aktiviert.

Der Biosdevname einer Schnittstelle kann gefunden werden mit:

biosdevname -i eth0

Vorhersagbare Netzwerkschnittstellennamen

Ich glaube, dies ist die Standardeinstellung in Debian Stretch, muss aber beim Upgrade von früheren Versionen explizit aktiviert werden.

Der vorhersehbare Name für eth0 kann gefunden werden mit:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'
7
GnP

Das neue Schema heißt anscheinend "vorhersehbare Netzwerkschnittstellennamen", aber ich finde nicht viel Dokumentation darüber, wie der Name tatsächlich vorhergesagt werden kann. Alles, was ich darüber gefunden habe zeigt im Grunde genommen auf diesen Quellcode Kommentar (der selbst auf den ersten Link verweist). Aus dem Kommentar geht überhaupt nicht hervor, wie man weiß, welches Adressierungsschema udev für den Namen des Netzwerkgeräts verwenden wird.

Gemäß dem ersten Link können Sie ihn deaktivieren und die traditionellen Namen verwenden, indem Sie net.ifnames=0 In der Kernel-Befehlszeile in Grub hinzufügen. Laut dieser Kommentar ist es möglicherweise erforderlich, wenn Sie eine VLAN - getaggte Schnittstelle erstellen möchten, da die hinzugefügte Erweiterung den Namen der Schnittstelle zu lang macht.

Andernfalls ist es möglicherweise besser, die Frage erneut zu stellen, um zu erklären, was Sie mit dem Namen tun möchten (z. B. die Schnittstelle über ansible oder ähnliches konfigurieren).

2
DerfK

Ich bin nicht sicher, ob dies bei aktualisierten Versionen immer noch der Fall ist, aber auf meinen alten Systemen konnte ich eine leere Datei unter /etc/udev/rules.d/80-net-name-slot.rules Erstellen und die "vorhersehbare" Namensfunktion deaktivieren. Sie können auch Ihre eigene Regel erstellen und die Schnittstellen anhand der Mac-Adresse oder der PCI/USB-Verbindungen selbst benennen.

2
user143311

Diese Dokumentation könnte ein bisschen helfen. Siehe den Abschnitt unter "Was genau hat sich in Version 197 geändert?". Ja, mir ist klar, dass dies von etwas begrenztem Wert ist, aber es könnte Ihnen einen Weg für weitere Forschung geben.

0
Charles Burge