Udev: перейменування мого мережевого інтерфейсу


20

Щойно я встановив RHEL 6.3 на сервер Dell 1950. Цей сервер у вигляді двох портів GBit, Gb0 та Gb1.

Чомусь із незрозумілих причин udevвирішили назвати Gb0 eth1 та Gb1 eth0 . Це, безумовно, не дуже добре для мене і просто викликає розгубленість.

Тому я змінив конфігурацію в /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"

Я просто змінив поле "NAME" у файлі, щоб відобразити те, що я хочу. Я перезавантажив сервер, і він не працював.

У dmesgжурналі я можу прочитати наступне:

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

Будь-яка ідея про те, що тут не так? Чому така udevкомутація? У мене є ще один подібний сервер, де у мене немає цієї проблеми.


так що ж це за призначення зараз? ще Gb0 == eth1 & Gb1 == eth0?
umläute

раз перевірити, grep -R 'rename5' /etc/udev/rules.d/тому що в журналах, чому він відображає, rename5є якесь інше правило для того ж?
Рахул Патіль

Я зробив аналогічну річ для мережевих інтерфейсів, і вона показує так само в журналі (якщо ви дотримуєтесь логіки в ній, він просто присвоює помилкове ім'я оригінальному eth1, щоб він міг перейменувати оригінальний eth0 на eth1). Отже, згідно з журналом все повинно бути нормально. Ви впевнені, що імена ще не в порядку?
загримсан

Завдання все ще неправильне: Gb0 == eth1 & Gb1 == eth0. Такі зміни, як я внесла у файл, не застосовуються. У мене немає жодного сліду rename5 в /etc/udev/rules.d/. Що я розумію, це коли завантажуються ядра eth0 і eth1, але udev перемикає їх. eth0 => eth1 і eth1 => eth0
Гюго

Ви знайшли рішення? Я також борюся з цією проблемою. У звичайному завантаженні я закінчую p1p1 та p1p2. Але оскільки я підключив мережевий кабель на p1p2, на якомусь завантаженні (не все, що дивно), я закінчую p1p1 та перейменую3!?!? Удев перейменує eth1 на перейменування3 замість p1p2 з будь-якої причини. Це, звичайно, порушує конфігурацію мережевого вводу-
Huygens

Відповіді:


9

Хоча це досить пізно, я вирішив свою проблему, видаливши

KERNEL="eth*",

частина правила у /etc/udev/rules.d/70-persistent-net.rulesфайлі. Це працює, тому що, як тільки UDEV перейменував пристрій на "перейменувати *", ця частина зупинить збіг правил. Таким чином, його видалення дозволяє присвоїти правильне ім’я правильному пристрою незалежно від того, що UDEV його тим часом викликало.


Це вирішило це і для мене на ubuntu 14.04. Точно така ж поведінка, що і ОП (за винятком того, що перейменування було на pXpY).
ndemou

9

У моєму випадку проблема виникає з того, що mac-адреса для кожного інтерфейсу була встановлена ​​у трьох файлах:

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

Нам потрібна відповідність між файлом ifcfg та net.rules для mac-адреси.


1
/etc/sysconfigзнаходиться на redhat / centos linux. На Ubuntu ці файли знаходяться під/etc/network/if-up.d
nmgeek

6

Мені вдалося вирішити це шляхом простого видалення /etc/udev/rules.d/70-persistent-net.rulesта перезавантаження.


1

ви спробували створити бланк /etc/udev/rules.d/80-net-name-slot.rules?

оскільки Udev v197, udev реалізував передбачувані імена мережевого інтерфейсу, створивши порожній файл на цьому шляху та перезавантажившись, ви повинні мати імена інтерфейсу назад до того, якими вони були.

я відповів на подібне запитання на: Creating eth0 with consistent network device naming


1
Це виправлено два мої три мережеві пристрої. Замість порожнього файлу я створив посилання на / dev / null. Я очікую, що будь-який підхід спрацює.
MrMas

Схоже, це були зміни навколо v210, що файл видалено з systemd, якщо я читаю це правильно: github.com/systemd/systemd/commit/…
nhed

0

Це також може статися тому, що eth0, eth1, wlan0, wlan1 і т.д. є стандартними іменами ядра (у випадку непостійного іменування схеми). У документації udev сказано:

ІМ’Я

Ім'я, яке потрібно використовувати для мережевого інтерфейсу. Див. Systemd.link (5) щодо механізму вищого рівня для встановлення імені інтерфейсу. Назву вузла пристрою не можна змінити udev, можна створити лише додаткові посилання.

Тому ніколи не використовуйте назви eth *, wlan * тощо для правил udev.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.