Udev: meine Netzwerkschnittstelle umbenennen


20

Ich habe gerade RHEL 6.3 auf einem Dell 1950-Server installiert . Dieser Server als zwei GBit-Ports, Gb0 und Gb1.

Aus irgendeinem undurchsichtigen Grund haben Sie sich udeventschieden, Gb0 eth1 und Gb1 zu benennen eth0 . Dies ist definitiv kein guter Fund für mich und gibt nur Verwirrung.

Also habe ich die Konfiguration geändert in /etc/udev/rules.d/70-persistent-net.rules:

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:c0",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:be",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Ich habe gerade das "NAME" -Feld in der Datei geändert, um zu reflektieren, was ich will. Ich habe den Server neu gestartet und es hat nicht funktioniert.

Im dmesgLogbuch kann ich folgendes lesen:

udev: renamed network interface eth1 to rename5
udev: renamed network interface eth0 to eth1
udev: renamed network interface rename5 to eth0

Irgendeine Idee, was hier falsch ist? Warum wird so udevgewechselt? Ich habe einen anderen ähnlichen Server, auf dem ich dieses Problem nicht habe.


Was ist nun die Aufgabe? noch Gb0 == eth1 & Gb1 == eth0?
umläute

einmal überprüfen, grep -R 'rename5' /etc/udev/rules.d/weil in Protokollen, warum es zeigt, rename5ist eine andere Regel für das gleiche?
Rahul Patil

Ich habe Ähnliches für Netzwerkschnittstellen getan und es wird im Protokoll genauso angezeigt (wenn Sie der darin enthaltenen Logik folgen, wird dem ursprünglichen eth1 nur ein falscher Name zugewiesen, sodass das ursprüngliche eth0 in eth1 umbenannt werden kann). Also laut Log sollte alles in Ordnung sein. Sind Sie sicher, dass die Namen noch nicht in Ordnung sind?
Zagrimsan

Die Zuordnung ist immer noch falsch: Gb0 == eth1 & Gb1 == eth0. Die Änderungen, die ich in der Datei vorgenommen habe, werden nicht übernommen. Ich habe keine Spur von Rename5 in /etc/udev/rules.d/. Was ich verstehe ist, wenn der Kernel boot eth0 und eth1 booten, aber udev sie wechseln. eth0 => eth1 und eth1 => eth0
Hugo

Hast du eine Lösung gefunden? Ich habe auch mit diesem Problem zu kämpfen. Beim normalen Booten habe ich p1p1 und p1p2. Aber da ich bei p1p2 ein Netzwerkkabel eingesteckt habe, lande ich bei einem Bootvorgang (nicht bei allen, was komisch ist) bei p1p1 und benenne3 um!?!? Udev benennt eth1 aus irgendeinem Grund in rename3 statt p1p2 um. Dies bricht natürlich die Netzwerk-I / F-Konfiguration und Firewall X- (Nicht, dass ich auf Ubuntu bin
Huygens

Antworten:


9

Obwohl dies ziemlich spät ist, habe ich mein Problem behoben, indem ich das entferne

KERNEL="eth*",

Teil der Regel in der /etc/udev/rules.d/70-persistent-net.rulesDatei. Dies funktioniert, da nach dem Umbenennen des Geräts durch UDEV in "Rename *" dieser Teil den Regelabgleich beendet. Wenn Sie es entfernen, kann dem richtigen Gerät der richtige Name zugewiesen werden, unabhängig davon, wie UDEV es in der Zwischenzeit genannt hat.


Dies löste es für mich auch am Ubuntu 14.04. Genau das gleiche Verhalten wie beim OP (nur dass die Umbenennung auf pXpY erfolgte).
Ndemou

9

In meinem Fall rührt das Problem von der Tatsache her, dass die Mac-Adresse für jede Schnittstelle in drei Dateien festgelegt wurde:

/etc/udev/rules.d/70-persistent-net.rules
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1

Wir benötigen Konsistenz zwischen der ifcfg-Datei und net.rules für die Mac-Adresse.


1
/etc/sysconfigist auf RedHat / Centos Linux. Unter Ubuntu wären diese Dateien unter/etc/network/if-up.d
nmgeek

6

Dies konnte ich durch einfaches Löschen /etc/udev/rules.d/70-persistent-net.rulesund Neustarten beheben .


1

Haben Sie versucht, einen Rohling zu erstellen /etc/udev/rules.d/80-net-name-slot.rules?

seit udev v197 hat udev vorhersehbare netzwerkschnittstellennamen implementiert. indem sie eine leere datei in diesem pfad erstellen und dann neu starten, sollten sie ihre schnittstellennamen wieder so haben, wie sie waren.

Ich beantwortete eine ähnliche Frage bei: Creating eth0 with consistent network device naming


1
Dies reparierte zwei meiner drei Netzwerkgeräte. Anstelle einer leeren Datei habe ich einen Link zu / dev / null erstellt. Ich erwarte, dass jeder Ansatz funktionieren würde.
MrMas

Sieht aus wie das war Änderungen um v210 , dass Datei von systemd entfernt worden ist , wenn ich das richtig gerade lese: github.com/systemd/systemd/commit/...
nhed

0

Es kann auch vorkommen, dass eth0, eth1, wlan0, wlan1 usw. Standardkernelnamen sind (im Fall einer nicht persistenten Schemanennung). In der udev-Dokumentation heißt es:

NAME

Der Name, der für eine Netzwerkschnittstelle verwendet werden soll. Weitere Informationen zum Festlegen des Schnittstellennamens finden Sie in systemd.link (5). Der Name eines Geräteknotens kann von udev nicht geändert werden, es können nur zusätzliche Symlinks erstellt werden.

Verwenden Sie daher niemals eth * -, wlan * - usw. -Namen für udev-Regeln.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.