Wie aktiviere ich "Vorhersagbare Netzwerkschnittstellennamen"?

12

Ich habe beschlossen, herauszufinden, welchen Namen mein Ethernet-Gerät haben wird, aber im Gegensatz zu anderen Distributionen scheint Debian diese Änderung nicht aktiviert zu haben (oder hält sie zurück?).

  • Behalten Sie vorerst das alte Namensschema für persistente Netzwerkschnittstellen bei und aktivieren Sie das neue über net.ifnames = 1 in der Kernel-Befehlszeile.

Das Problem ist, dass ich die Grub-Kernel-Zeilen bearbeiten muss, und das scheint ein Overkill für etwas zu sein, das durch Ändern einer Datei deaktiviert werden kann . Gibt es eine andere Art und Weise?

Braiam
quelle
Vielleicht möchten Sie diesen Link überprüfen: science.uva.nl/research/air/wiki/LogicalInterfaceNames Möglicherweise finden Sie eine Problemumgehung wie nameif und Aktualisieren der Startdatei ... @Braiam
user1527227
@ user1527227 das ist genau das, was ich nicht tun möchte.
Braiam
Auf Jesse sollten Sie nur eine Zeile in / etc / default / grub ändern müssen. Bei Atembeschwerden gibt es wirklich keine Möglichkeit, diese AFAIK zu aktivieren. Ich mag das neue Benennungsschema sehr, deshalb richte ich meine eigenen udev-Regeln auf meinen Wheze-Servern ein.
GnP

Antworten:

11

Version 220-7 unter Debian hat den Patch, der dieses Opt-In ermöglichte, gelöscht:

* Switch to net.ifnames persistent network interfaces (on new
  installations/for new hardware), and deprecate the old
  75-persistent-net-generator.rules.

Dies ergab sich aus einem Vorschlag in der Debian-Entwicklerliste . Systeme, die die alte Benennung verwendeten, werden erst umbenannt, wenn der Benutzer migriert. Lesen Sie README.Debian für die Migrationsanleitung.

Der neue Name kann vorhergesagt werden mit:

sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_

wo eth0ist der aktuelle Name des Geräts.

Braiam
quelle
5

Ich nehme an, du redest von Sid oder Jessie. Für Wheezy möchten Sie vielleicht den Backport von v204 ausprobieren .

Möglicherweise spielen hier einige Missverständnisse eine Rolle: Wie aus den udev-Regeln hier (für v208 derzeit in sid) hervorgeht, sind die udev-Entwickler explizit die Kernel-Cmdline als Standardmethode zum Aktivieren dieser Funktionalität ausgewählt.
Ich sehe nichts von Natur aus „overkill“ mit der ausgewählten Schnittstelle für sie mit und man einfach GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"in /etc/default/grub. Gibt es bestimmte Nebenwirkungen, über die Sie sich Sorgen machen?

Die Tatsache, dass die von Ihnen erwähnte Antwort darauf hindeutet, eine Datei zu entfernen, um sie zu deaktivieren, ist ein Hack (zumindest in Debians Fall), der auf lange Sicht nicht funktioniert, da diese Regeln in Debian gespeichert sind /lib/udev/rules.d , dh: sie würden in überschrieben ein Upgrade (außerdem macht es Sinn, die Funktionalität zu deaktivieren, indem die Datei, die sie beschreibt, effektiv entfernt wird, aber die Aktivierung unterscheidet sich grundlegend, daher halte ich dies für einen unfairen Vergleich).

OTOH, wenn Sie einen konkreten Grund dafür haben, die Kernel-Cmdline nicht zu verwenden, können Sie einen Fehler gegen das Debian-Paket melden und den Betreuer veranlassen, diese Regeln zu verschieben /etc/udev/. Dann könnten Sie theoretisch zwischen den aktuellen "beständigen" und den neuen "vorhersagbaren" Regeln wechseln.

Aber nur zu net.if_namesIhrer Information: Wenn Sie sich die Quellen für Version 209 ansehen , scheint sich die Prüfung insgesamt zu lösen, sodass Ihre Frage möglicherweise in naher Zukunft erneut beantwortet werden muss.

Leo Antunes
quelle
1
msgstr "wählte explizit die Kernel - Befehlszeile als Standardmethode, um diese Funktionalität zu aktivieren." Eigentlich ist es ein Debian-Patch, der dies tut , nicht udev devs. Sie enthielten nur eine Methode, um das Abmelden beim Booten zu ermöglichen, Debian änderte dies in Abmelden, und das Aktivieren sollte einfach sein, da es standardmäßig aktiviert ist.
Braiam
@Braiam: Netter Fang! Aber ich denke, das Hauptargument bleibt, dass es eine Entscheidung von udev war, den Kernel cmdline als Schnittstelle zu verwenden, ob zum Aktivieren oder Deaktivieren.
Leo Antunes
Ich habe die Kernel-Befehlszeile bearbeitet, um den net.ifname=1Parameter einzuschließen, aber diese Funktion war unter Linux Mint nicht aktiviert. Welche Linux-Distributionen unterstützen dieses Feature?
Sherrellbc
0

Unter Debian / Ubuntu, beginnend mit udev 220, können Sie die neuen Namen aktivieren, indem Sie diese Datei umbenennen:

sudo mv -T /etc/udev/rules.d/70-persistent-net.rules{,.old}

Wie von vorgeschlagen /usr/share/doc/udev/README.Debian.gz, gefolgt von

sudo update-initramfs -u

Starten Sie dann neu (oder rmmod + insmod des Moduls, das Ihre Netzwerkkarte ansteuert).

Tobu
quelle
-1

Ubuntu 15.10 verwendet biosdevnamenicht vorhersehbare Netzwerkschnittstellennamen. Auch wenn du es entfernst (apt-get remove biosdevname) und grub editierst (GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1" ) und die persistenten Regeln , erhalten Sie keine prädikatiblen Netzwerkschnittstellen.

Der Hauptgrund scheint die Abwärtskompatibilität zu sein. Ich habe es gerade mit 2 mobilen Breitband-USB-Geräten getestet und der Name der Netzwerkschnittstelle wird bei jedem Start inkonsistent angegeben (z. B. die erste Schnittstelle usb0, die zweite usb1 und umgekehrt). Der Hauptgrund scheint die Abwärtskompatibilität zu sein.

Auf dem Launchpad sind einige Fehler aufgetreten (z. B. diese ). Die kurze Antwort lautet jedoch, dass Sie nach einer anderen Distribution suchen sollten, wenn Sie nach vorhersehbaren Namen für die Netzwerkschnittstelle suchen.

Anthony Hunt
quelle
Ich habs! Ich werde die Antwort tatsächlich aktualisieren, sobald ich denke, dass ich sie habe.
Anthony Hunt
@roalma Ich habe die Antwort aktualisiert! Entschuldigung für den zuvor "kommentarähnlichen" Beitrag.
Anthony Hunt
Debian unterstützt diese Funktionalität standardmäßig seit Version 220-7, als der Patch, der das Verhalten hervorrief, gelöscht wurde. Jetzt würden neu installierte Systeme standardmäßig die vorhersehbaren Namen verwenden.
Braiam