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.


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.


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.


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.


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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.