имена сетевых интерфейсов меняются местами

Автор vladimirse, 21 февраля 2012, 15:31:38

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

vladimirse

Доброго времени суток, уважаемые!
Заметил такую вот штуку, если на машине несколько сетевых карт и одна из них получает адрес по dhcp, а другая имеет статический адрес, то после перезагрузки их имена меняются местами. Та, что была eth0 стала eth1 и наоборот. Проявляется на squeeze и wheezy.
Кто сталкивался подскажите как лечить.

ihammers

Цитата: vladimirse от 21 февраля 2012, 15:31:38
Доброго времени суток, уважаемые!
Заметил такую вот штуку, если на машине несколько сетевых карт и одна из них получает адрес по dhcp, а другая имеет статический адрес, то после перезагрузки их имена меняются местами. Та, что была eth0 стала eth1 и наоборот. Проявляется на squeeze и wheezy.
Кто сталкивался подскажите как лечить.
У меня всё нормально работает.  Проверяйте следующие вещи: udev & mac-адреса.
Debian GNU/Linux Bookworm, LXQt/OpenBox: AMD Ryzen 5 5600G / 64Gb RAM
_______________________________
Debian GNU/Linux Bookworm, без графики: AMD Phenon X4 / 16Gb RAM
_______________________________
Debian GNU/Linux Bookworm, LXQt/OpenBox: Acer Aspire One 722 AMD C60 / 8Gb RAM / ATI HD6290

vladimirse

Mac-адреса прописаны жестко в настройках интерфейсов.
Что смотреть в udev? Сам пакет стоит, остальные девайсы функционируют исправно. 

ihammers

Цитата: vladimirse от 22 февраля 2012, 09:48:57
Mac-адреса прописаны жестко в настройках интерфейсов.
Что смотреть в udev? Сам пакет стоит, остальные девайсы функционируют исправно. 
Смотреть как описаны интерфейсы.
less /etc/udev/rules.d/70-persistent-net.rules

PS: если что, выдавайте содержание файла.
Debian GNU/Linux Bookworm, LXQt/OpenBox: AMD Ryzen 5 5600G / 64Gb RAM
_______________________________
Debian GNU/Linux Bookworm, без графики: AMD Phenon X4 / 16Gb RAM
_______________________________
Debian GNU/Linux Bookworm, LXQt/OpenBox: Acer Aspire One 722 AMD C60 / 8Gb RAM / ATI HD6290

vladimirse


ihammers

Debian GNU/Linux Bookworm, LXQt/OpenBox: AMD Ryzen 5 5600G / 64Gb RAM
_______________________________
Debian GNU/Linux Bookworm, без графики: AMD Phenon X4 / 16Gb RAM
_______________________________
Debian GNU/Linux Bookworm, LXQt/OpenBox: Acer Aspire One 722 AMD C60 / 8Gb RAM / ATI HD6290

vladimirse

Цитата: ihammers от 28 февраля 2012, 16:27:56ls /etc/udev/rules.d/

Только файл 70-persistent-cd.rules
Как я понял имеющий отношение ко всякого рода оптическим приводам.

ihammers

Цитата: vladimirse от 29 февраля 2012, 11:11:05
Цитата: ihammers от 28 февраля 2012, 16:27:56ls /etc/udev/rules.d/

Только файл 70-persistent-cd.rules
Как я понял имеющий отношение ко всякого рода оптическим приводам.

Странно, ну да ладно. 

Создайте файла следующего содержания:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device r8169
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:22:21:89:ca", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 8139too
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:84:9e:07:ed", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"


И не забудьте исправить mac адреса.  Как вариант попробуйте его генерировать.
Debian GNU/Linux Bookworm, LXQt/OpenBox: AMD Ryzen 5 5600G / 64Gb RAM
_______________________________
Debian GNU/Linux Bookworm, без графики: AMD Phenon X4 / 16Gb RAM
_______________________________
Debian GNU/Linux Bookworm, LXQt/OpenBox: Acer Aspire One 722 AMD C60 / 8Gb RAM / ATI HD6290

vladimirse

Спасибо, большое! Буду тестить.
Позже отпишусь.
А где бы вообще почитать про udev, может подкините нормальную статейку?

Malaheenee

Все мы где-то, когда-то и в чем-то были новичками.

orlyanuch

Хорошая статья на русском:
UDEV: Как установить свои правила
И ещё есть небольшой репозиторий русскоязычных манов. Там man udevadm, udevinfo на русском.
Edimus, ut vivamus; nоn vivimus, ut edamus.

vladimir_ar

Цитировать
Открыть содержимое (спойлер)

Сетевые интерфейсы
Даже если сетевой интерфейс называется по имени, как правило, он не имеет связанной с ним ноды устройства. Невзирая на это, процесс установления правил практически идентичен.
Имеет смысл просто указать MAC адрес вашего интерфейса в правиле, так как он уникален. Тем не менее, убедитесь, что используете тот самый MAC адрес, что и в udevinfo, потому что, если вы не приведете адрес точно, то правило работать не будет.

# udevinfo -a -p /sys/class/net/eth0


looking at class device '/sys/class/net/eth0':
    KERNEL=="eth0"
    ATTR{address}=="00:52:8b:d5:04:48"
Вот мое правило:
KERNEL=="eth*", ATTR{address}=="00:52:8b:d5:04:48", NAME="lan"

Вам придется перезагрузить сетевой драйвер, чтобы это правило заработало. Можете либо выгрузить, и снова загрузить модуль, либо просто перезагрузить систему. Также придется перенастроить систему на использование "lan" вместо "eth0". Я имел определенные трудности, добиваясь этого (интерфейс не был переименован), пока я совершенно не отказался от ссылок на eth0. После этого, вы сможете использовать "lan" вместо "eth0" во всех вызовах к ifconfig и прочим утилитам.

[свернуть]
Если использовать это (или подобное решение), какой МАС указывать? Поскольку при инициализации интерфейсов я меняю МАС-адрес сетевой на нужный мне.
Почему спрашиваю - вчера был неприятно удивлен - загружался на домашнем компе с USB-винта для обновления системы и из софты кой-чего поставить. Для простоты подключался к нету через карточку с МАС-м, прописанным у провайдера (на компе работаю через другую по ряду причин с подменой МАС-а). На USB стоит третьий гном и работа через Network manager. В общем, перезагрузился обратно и получил плюху в виде измененного с eth1 на eth2 интерфейса. В файле
/etc/udev/rules.d/70-net_persistent_names.rules

получил еще одну запись с реальным МАС этой сетевой xx:xx:xx:xx:5d (была запись с подменным xx:xx:xx:xx:50). Стер лишнее, перегрузился - один фиг, подтягивает eth2. Повторил несколько раз - безрезультатно. Плюнул, исправил конфиги на  eth2, выключил комп и лег спать. Не передать мое офигение, когда утром интерфейс опять был eth1. Исправил все обратно.

Вот и спрашиваю. И еще непонятен момент - udev подтягивает в правила сетевые и с подмененным МАС-ом? Или он при перезагрузке (не выключении) может сохранятся (иначе каким образом у меня в правилах udev оказалась запись с подменным МАС - руками не прописывал, только стирал лишние строки  и менял имя интерфейса)?
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M

kobzar

Вобще как то мрачно..
а меняютка каждый раз посе перезагрузки ?:
то есть ошибка циклическая ?
Если поменять настройки для карточек местами ?
Ты дорого мой друг, заплатишь за ошибку,..
Когда оскал мой милый, ты приймешь за улыбку.

vladimir_ar

Нет, стояли и стоят стабильно. Именно после попытки работы в сети с USB-системы. Причем именно попытки - выхода в инет я так и не добился, хотя от провайдера адреса получил. Но уже ночть была и разбираться я не стал. А перезагрузка обратно в домашнюю систему дала такой фортель. Вот и думаю, как прибить гвоздями имена интерфейсов.

Я все же так понимаю, что МАС-и карт физические прописать нужно (а не мои подменные)?
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M

kobzar

Я думаю ето из за того что вы ка краз с флешки грузились лна могла банально в своем другом порядке поросить интерфейсы...
Ты дорого мой друг, заплатишь за ошибку,..
Когда оскал мой милый, ты приймешь за улыбку.