Udev: zmiana nazwy mojego interfejsu sieciowego

20

Właśnie zainstalowałem RHEL 6.3 na serwerze Dell 1950. Ten serwer jako dwa porty GBit, Gb0 i Gb1.

Z jakiegoś niejasnego powodu udevwybrałeś nazwy Gb0 eth1 i Gb1 eth0 . To zdecydowanie nie jest dla mnie dobre znalezisko i po prostu wprowadza zamieszanie.

Więc zmodyfikowałem konfigurację w /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"

Właśnie zmieniłem pole „NAME” w pliku, aby odzwierciedlić to, czego chcę. Uruchomiłem ponownie serwer i to nie działało.

W dmesgdzienniku mogę przeczytać następujące informacje:

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

Masz pomysł na to, co jest tutaj nie tak? Dlaczego tak się udevzmienia? Mam inny podobny serwer, na którym nie mam tego problemu.

Hugo
źródło
więc jakie jest teraz zadanie? nadal Gb0 == eth1 & Gb1 == eth0?
umläute
raz sprawdzić, grep -R 'rename5' /etc/udev/rules.d/ponieważ w logach, dlaczego to pokazuje, czy rename5jest jakaś inna reguła dla tego samego?
Rahul Patil,
Zrobiłem podobnie dla interfejsów sieciowych i pokazuje to tak samo w logu (jeśli zastosujesz się do logiki, po prostu przypisuje fałszywą nazwę oryginalnemu eth1, aby mógł zmienić nazwę oryginalnego eth0 na eth1). Według dziennika wszystko powinno być w porządku. Czy jesteś pewien, że nazwy nie są jeszcze w porządku?
zagrimsan
Przypisanie jest nadal niepoprawne: Gb0 == eth1 & Gb1 == eth0. To tak, jakby zmiany, które wprowadziłem w pliku, nie zostały zastosowane. Nie mam śladu zmiany nazwy5 w /etc/udev/rules.d/. Rozumiem, kiedy rozruch jądra eth0 i eth1 są bootowane, ale udev je przełącza. eth0 => eth1 i eth1 => eth0
Hugo
Znalazłeś rozwiązanie? Walczę też z tym problemem. Podczas normalnego rozruchu kończę na p1p1 i p1p2. Ale ponieważ podłączyłem kabel sieciowy do p1p2, przy niektórych rozruchach (nie wszystkie, co jest dziwne), kończę na p1p1 i zmieniam nazwę3!?!? Udev zmienia nazwę eth1, aby zmienić nazwę3 zamiast p1p2 z jakiegokolwiek powodu. To oczywiście psuje konfigurację sieciową i / f i zaporę X- (Nie że jestem na Ubuntu
Huygens

Odpowiedzi:

9

Chociaż jest już późno, naprawiłem problem, usuwając plik

KERNEL="eth*",

część reguły w /etc/udev/rules.d/70-persistent-net.rulespliku. Działa to, ponieważ gdy UDEV zmieni nazwę urządzenia na „zmień nazwę *”, ta część zatrzyma dopasowanie reguły. Tak więc usunięcie go pozwala przypisać prawidłową nazwę do właściwego urządzenia, niezależnie od tego, co w międzyczasie nazwało to UDEV.

Ancaglon
źródło
To rozwiązało dla mnie także na Ubuntu 14.04. Dokładnie takie samo zachowanie jak OP (z tą różnicą, że zmieniono nazwę na pXpY).
ndemou
9

W moim przypadku problem wynika z faktu, że adres mac dla każdego interfejsu został ustawiony w trzech plikach:

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

Potrzebujemy spójności między plikiem ifcfg i net.rules dla adresu mac.

Hugo
źródło
1
/etc/sysconfigjest na linuxie redhat / centos. Na Ubuntu pliki te byłyby poniżej/etc/network/if-up.d
nmgeek
6

Udało mi się to rozwiązać, po prostu usuwając /etc/udev/rules.d/70-persistent-net.rulesi uruchamiając ponownie.

Clayton Dukes
źródło
1

próbowałeś stworzyć puste miejsce /etc/udev/rules.d/80-net-name-slot.rules?

od czasu Udev v197 udev zaimplementował przewidywalne nazwy interfejsów sieciowych, tworząc pusty plik w tej ścieżce, a następnie ponownie uruchamiając komputer, powinieneś mieć nazwy interfejsów z powrotem takie, jakie były.

Odpowiedziałem na podobne pytanie na: Creating eth0 with consistent network device naming

cesar
źródło
1
To naprawiło dwa z moich trzech urządzeń sieciowych. Zamiast pustego pliku utworzyłem link do / dev / null. Spodziewam się, że którekolwiek z tych podejść zadziała.
MrMas
Wygląda na to, że były to zmiany wokół wersji 210, że plik został usunięty z systemd, jeśli poprawnie go czytam
nhed
0

Może się również zdarzyć, ponieważ eth0, eth1, wlan0, wlan1 itp. Są standardowymi nazwami jądra (w przypadku nietrwałego nazewnictwa schematu). W dokumentacji udev napisano:

NAZWA

Nazwa używana dla interfejsu sieciowego. Zobacz systemd.link (5), aby dowiedzieć się więcej na temat mechanizmu ustawiania nazwy interfejsu. Udev nie może zmienić nazwy węzła urządzenia, można tworzyć tylko dodatkowe dowiązania symboliczne.

Dlatego nigdy nie używaj nazw eth *, wlan * itp. Dla reguł udev.

cy8g3n
źródło