LINUX.ORG.RU
ФорумTalks

Попрощаемся с eth*

 , ,


1

1

Сегодня обновился udev до версии 200. С этой версии из systemd/udev удалён функционал переименования ядерных интерфейсов eth в eth же. По факту это означает, что привязать сетевухи по макам и оставить их имена eth* более невозможно. Как результат придётся отвыкать от привычных имён.

В качестве причины называется:

«The biggest of all however is that the userspace components trying to assign the interface name raced against the kernel assigning new names from the same „ethX“ namespace, a race condition with all kinds of weird effects, among them that assignment of names sometimes failed. As a result support for this has been removed from systemd/udev a while back.»

http://wiki.gentoo.org/wiki/Udev/upgrade

За 6 лет достаточно активно использовал переименования интерфейсов, никаких «weird effects» не видел ни разу. И никаких проблем с назначением кастомных имён тоже не было.

Вывод: я понимаю, прогресс, все дела. Но перечитывать тонну скриптов и ковыряться с двумя десятками серверов ради этого... Кажется, здесь есть дисбаланс, господа. Будьте готовы.

★★

Ответ на: комментарий от cipher

А так же «безысходность» и черно-белый логотип генты.

Нарисуй, будь поцоном!

tazhate ★★★★★
()
Ответ на: комментарий от drBatty

как ваш новый удав узнает, что новая карта теперь должна называться как «четвёртая слева вчера сгоревшая»?

по номеру PCI/whatever-слота в который она воткнута. А вот если сгорел слот, тогда увы

Pinkbyte ★★★★★
()
Ответ на: комментарий от drBatty

У кого-то проблемы с гонками?

У ядра и udev (любой версии, которая сама может переименовывать интерфейсы).

Пусть решают.

Поттеринг решил. И совершенно правильно решил, без прикручивания костылей сбоку.

В том смысле, что я например видел, решаются они сами, искароппки, привязкой к MAC'у.

Если привязку к MAC'ам оставить со стандартными именами (ethN), то как раз не решается.

Deleted
()
Ответ на: комментарий от drBatty

об том и речь что читать инструкции надо целиком.

ЗЫ в случае с етцами тебе тоже никто не гарантирует что етц1 останется етц 1 после замены сетевухи, да что уж там тебе даже между перезагрузками этого не гарантируют. а толк в том что теперь поведение при именовании интерфейсов строго предсказуемо, что и требуется от компьютеров.

Thero ★★★★★
()
Ответ на: комментарий от record

всё верно в удеве прогресс в умах человечества видимо нет, для них всё разжевали по пунктам с примерами так они прочитать не могут всё друг у друга переспрашивают слухи.

Thero ★★★★★
()
Ответ на: комментарий от record

они увеличились (в крайнем случае их количество осталось тем же) если чо

qnikst ★★★★★
()
Ответ на: комментарий от Deleted

У кого-то проблемы с гонками?

У ядра и udev (любой версии, которая сама может переименовывать интерфейсы).

а у меня почему такой проблемы нет? Ядро какое-то особенное или udev? Всё вроде ванильное.

Поттеринг решил. И совершенно правильно решил, без прикручивания костылей сбоку.

решил проблему, которую сам же и создал?

Если привязку к MAC'ам оставить со стандартными именами (ethN), то как раз не решается.

блжад - ПОЧЕМУ? Почему в старом удеве, без всяких ленартоподелий УМВР?

drBatty ★★
()
Ответ на: комментарий от Thero

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

это ложь или жуткое недоговаривание, мне снова дать ссылку на блог Диего?

qnikst ★★★★★
()
Ответ на: комментарий от drBatty

блжад - ПОЧЕМУ? Почему в старом удеве, без всяких ленартоподелий УМВР?

потому, что УMВР вот если бы было УВ(всех)ВР, разговор бы был другим.

qnikst ★★★★★
()
Ответ на: комментарий от Thero

в случае с етцами тебе тоже никто не гарантирует что етц1 останется етц 1 после замены сетевухи

после замены - да, не останется конечно. Если к MACу привязано.

да что уж там тебе даже между перезагрузками этого не гарантируют.

ты бредишь? или у тебя MAC сам меняется??

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

оно и было до ваших экс(пе|к)риментов предсказуемое.

drBatty ★★
()
Ответ на: комментарий от drBatty

ты бредишь? или у тебя MAC сам меняется??

ядерный драйвер, например, сменился. Например интелы свои дрова на 2 разных разделили.

qnikst ★★★★★
()
Ответ на: комментарий от qnikst

потому, что УMВР вот если бы было УВ(всех)ВР, разговор бы был другим.

вот мне и интересно - у кого не работает, и ПОЧЕМУ? У меня есть гонки, интерфейсы хз как нумеруются, и udev их нумерует правильно. В чём проблема?

drBatty ★★
()
Ответ на: комментарий от qnikst

ядерный драйвер, например, сменился. Например интелы свои дрова на 2 разных разделили.

и при чём тут MAC? Я думал, он в железке забит, а не в драйвере. И да, что за чипы такие, сетевые, да ещё и от intel? С двумя драйверами. WTF?

drBatty ★★
()
Ответ на: комментарий от drBatty

всем насрать, что там у тебя, твой пример, как и мой, как и его - абсолютно не показателен. я тебе в прошлом аналогичном разговоре приводил ссылки на тех пользователей ЛОРа у кого были проблемы, и предлагал с ними пообщаться. У меня тоже все работает со старым лейаутом, но это не значит, что ты или я или мейнтейнеры молодцы, это значит что наше оборудование или use-case не попадают в проблемную часть, все.

qnikst ★★★★★
()
Ответ на: комментарий от drBatty

В старой схеме были ненаркоманские на мой взгляд имена интерфейсов, в новой схеме тоже есть положительные моменты, но я переходить не спешу...

Upd. К слову - обновился на udev-200, поставил net.ifnames=0 в загрузчике и переименовал файл правил, как рекомендовалось в pkg_postinst - полет нормальный.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от drBatty

блжад - ПОЧЕМУ?

http://en.wikipedia.org/wiki/Race_condition

Kernel       | udev
---------------------------------------
создаёт eth0 |
             | ловит eth0 и согласно статической привязке
             | MAC-адреса к имени решат переименовать его в eth1
создаёт eth1 |
             | пытается переименовать eth0 в eth1 и обламывается
Так понятно?

решил проблему, которую сам же и создал?

См. выше. Проблему создали задолго до него. Он её просто нашёл и исправил.

блжад - ПОЧЕМУ? Почему в старом удеве, без всяких ленартоподелий УМВР?

Race condition - это одина из очень злых проблем, которая проявляется не у всех и не всегда.

Deleted
()
Ответ на: комментарий от qnikst
# PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:1c.4/0000:03:00.0 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:60:6e:d7:5e:45", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

здесь одна сетевуха. Вечером ещё одну поставлю наверное.

drBatty ★★
()
Ответ на: комментарий от Deleted

пытается переименовать eth0 в eth1 и обламывается Так понятно?

оно в eth2 переименовывает. Лог позже покажу

eth0 → eth2

eth1 → eth0

eth2 → eth1

drBatty ★★
()
Ответ на: комментарий от tazhate

Ой, оляля, можно подумать, что в других диструбутивх не грядет тоже самое.

Встань по знамёна святого Марка!

Manhunt ★★★★★
()
Ответ на: комментарий от drBatty

как я понимаю может во-первых смениться DRIVERS. Хотя тут wildcard впрочем, как и у меня + KERNEL может начать выдавать не eth, а ath и т.п. такое часто с wifi бывает. Соответсвенно когда говорят про нестабильность при чаще имеют ввиду смену ядра. Впрочем, если интересно можешь посмотреть обсуждение текста новости для udev-200 гентового, там обсуждались случаи когда persistent-names оказывался нифига не persistent. Я честно в такой ситуации ни разу не был (хотя наверное вру у меня при одной из смены дров менялось имя вайфая), но это особенности того, что у меня простое оборудование.

qnikst ★★★★★
()
Ответ на: комментарий от drBatty

это если они сразу появились, я даже не знаю как тебе предложить поискать рейсы, например найти 2 usb сетевухи и поперезагружаться меняя порты куда они подключены/длину провода:)

qnikst ★★★★★
()
Ответ на: комментарий от Deleted
Kernel       | udev
---------------------------------------
создаёт eth0 |
             | ловит eth0 и согласно статической привязке
             | MAC-адреса к имени решат переименовать его в eth1
создаёт eth1 |
             | пытается переименовать eth0 в eth1 и обламывается
             | переименовывает eth1 в ethN
             | переименовывает eth0 в eth1
templarrr ★★★★★
()
Ответ на: комментарий от Manhunt

Встань по знамёна святого Марка!

У меня святая корова!

tazhate ★★★★★
()
Ответ на: комментарий от templarrr

google://udev+network+race+condution

тебе будут ссылки на баг-треккеры разных дистров, объясни им, что они все не правы.

вот очень красивые логи и обсуждение https://bugzilla.redhat.com/show_bug.cgi?id=782145 drBatty тоже загляни.

qnikst ★★★★★
()
Последнее исправление: qnikst (всего исправлений: 1)
Ответ на: комментарий от qnikst

в очень большом числе конфигураций, ни predictable ни custom имена сетевых устройств не нужны, в эту категорию сразу попадают десктопы и ноуты. Для серверов или устройств со сложной структурой сети удобны custom names.

Вы буквально говорите мои слова. Говоря, что использовать кастомные имена использовать можно и нужно, я имел в виду, что, если задавать имена вручную, то кастомные, а не eth*.

в треде тема systemd поднималась только drBatty, но она не релеватна проблеме.

Это не первый тред на эту тему, и, боюсь, не последний. Кровавый баттхёрт арчеводов уже отбушевал.

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 1)
Calculating dependencies... done!
[ebuild R ] sys-fs/udev-200
.....
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

с чего бугурт?

TheAnonymous ★★★★★
()
Ответ на: комментарий от Axon

Вы буквально говорите мои слова. Говоря, что использовать кастомные имена использовать можно и нужно, я имел в виду, что, если задавать имена вручную, то кастомные, а не eth*.

а я говорю, что в большинсве случаев кастомные не нужны и eth/wlan/br/tun/tap решают все проблемы. Не входят в большиство - серверы и роутеры, там все зависит от конкретной ситуации. Это одно и тоже?

qnikst ★★★★★
()

В funtoo до сих пор последний гвум за номером 177.
В стабильной ветке так вообще 160.

HTaeD ★★★★
()
Ответ на: комментарий от tazhate

Это нужно далеко не везде. Но оно неотключаемо

И если у меня будет 2 одинаковых сетевые карты, тоже будет гонка ведь

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от drBatty

оно в eth2 переименовывает.

== работает неправильно. Ведь нам нужно, чтобы именно этот интерфейс (по MAC-адресу) назывался eth1. Он не должен ни при каких обстоятельствах становиться eth2, eth15 или каким-то другим ethN, так как это может поломать некую логику дальше по цепочке. Например dhcp-сервер может запустится не на том интерфейсе (пример высосан из пальца, но думаю смысл ясен).

Deleted
()

тебе что, инновации не нравятся?

ananas ★★★★★
()

это лечится вроде
есть eudev, есть другие системы инициализации

smilessss ★★★★★
()

зачем ты на сервера накатываешь такие апдейты? а если сервер АЭС обслуживает, а тут у него раз и линк отвалился? бедные гетеросексуальные инженеры без порно долго не протянут.

x0r ★★★★★
()
Ответ на: комментарий от qnikst

а я говорю, что в большинсве случаев кастомные не нужны и eth/wlan/br/tun/tap решают все проблемы.

Без всякой привязки к макам, да.

Axon ★★★★★
()

Если захочешь - вернешь обратно. Я, правда, уже неделю не обновлялся, но у меня с этим проблем нет. Да, eudev.

Короче, нытик-тред.

Kroz ★★★★★
()
Ответ на: комментарий от dismal_faun

Не знал. Жизни в ней многовато, на картинке не к месту.

Axon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.