LINUX.ORG.RU

Нумерация eth*


0

1

Доброго дня господа.
От чего зависит номер интерфейса, который выдаёт система сетевому подключению?
Вот у меня поднялся eth6.
От того он выпадает из автоподнятия, которое определено в /etc/network/interfaces.
Хотелось бы такого избежать.
Вообще нашел правило для удева
/etc/udev/rules.d/70-persistent-net.rules

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d4:3d:7e:29:24:74", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Но тут, вроде как, ничего не указывает на поведение, что я описал выше. Буду благодарен адекватно ответившим.

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

Попробуйте поискать:

grep eth /etc/udev/ -R
grep eth /lib/udev/ -R

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

Первое дало то что и рассмотрел выше.

Второе: /lib/udev/rules.d/75-persistent-net-generator.rules, в котором описаны общие правила и завязки на вендоров (хотя скорее просто проверка), с чего отсылка на /lib/udev/write_net_rules.
Вот тут интересней.
Если я правильно понял, там всё пляшет от $INTERFACE_NAME, и от того уже что-то решает.
А эту переменную сообщает ему непонятно что.
Я в замешательстве.

Spirit_of_Stallman ★★★ ()

Т.е. для PCI device 0x10ec:0x8168 у тебя выпадает eth6 вместо eth0?

Ну вообще попробуй очистить этот 70-persistent-net.rules, и рестартнуть юдев, он сам должен добавить туда правильные строки для имеющихся сетевух.

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

Т.е. для PCI device 0x10ec:0x8168 у тебя выпадает eth6 вместо eth0?

yeap

Ну вообще попробуй очистить этот 70-persistent-net.rules, и рестартнуть юдев, он сам должен добавить туда правильные строки для имеющихся сетевух.

Вы оказались правы, действие дало верный результат.
Только вот теперь вопрос: это «бродячая» флешка, и коллизия возникла просто от того что в этом правиле был указан (выходит) просто не верный мак (при том что сетевуха одна и та же).
Вы, часом, не в курсе, можно ли как-то организовать автоматическую перегенерацию правил, поверх старых, методом самого удева? Что бы не городить костыль, что будет мне просто чистить правила.

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

Побаловался с разными машинами - теперь в место ругни, удев просто дописывает правила на новые сетевухи, резервируя уже логично и по очереди.
Почему он не делал это до того - колдунство сплошное.
Но вопрос чистки актуален таки, ибо правила записывает статичным резервированием, и если я пройдусь по 6ти машинам - снова выпаду в 6ю сетевуху (хоть теперь и будет понятно от чего, но всё же).

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

Сделайте 70-persistent-net.rules ссылкой на файл, который находится на tmpfs.

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

Зерно меня радует, но я несколько теряюсь в механие.
Я делаю симлинк - и на время работы системы оно нормально отрабатывает.
После ребута я получу битый симлинк, что будет указывать в никуда (и в силу того что файл 70-persistent-net.rules таки будет, удев его или не тронет, или перезапишет снова обычным файлом).
Или я не прав?

Spirit_of_Stallman ★★★ ()

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

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

В 6м дэбиане системд будет через лет 10, где-то.
Я покопал - у людей есть та же проблема, и она, как уже мы выяснили, связана с методом статической линковки уникальной сетевой карты к адресу eth*.
Посему - только удаление правил. Тоска печаль.

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

Попробуйте или подправьте сценарий init в initrd, что бы перед pivot_root у вас на /new-root/tmp монтировалась tmpfs. В случае, конечно, если вы создали ссылку '/etc/udev/rules.d70-persistent-net.rules -> /tmp/70-persistent-net.rules'

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

вот из-за таких вот решений линукс так и останется системой для задротов (за исключением арчика и убунточки)

BambarbiyaKirgudu ()

хммм... если ты клонишь к тому, что у тебя каждый раз eth возростает по номеру..
в этом файле, который ты указал, должно быть всё отражено ( на старом ноуте так было)

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

Вообще-то сильно странно. Если мак карты не менялся, номер должен был выдаться тот же. Очищать обычно нужно только тогда, когда остались правила от старых карт и добавились новые(чтобы не было, к примеру, eth5, eth6 при отсутствии eth0-eth4).

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

у меня было более интересно. при старте ядра он не мог считать настоящий мак и присваивал рандомный и была туева хуча интерфейсов :)

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

Поставьте себе Network Manager и радуйтесь гуевому управлению интерфейсами. А в остальном проблема в разработчиках udev (systemd), неплохо бы было, что бы у ТС стояла версия udev (systemd) поновее. Я на своей системе обновился до 197 и ни каких проблем не заметил, нумерация интерфейсов не поползла вверх, имена интерфейсов остались старыми, т.е. формат имён.

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

Тут както проскакивает информация которая в корне неверна, но в ней есть некий отсыл к дьяволу^WПоттерингу[и его поделиям]. Изза этого «корректность» информации както уходит на второй план.

Ради восстановления этой мелкой несправедливости взываю тебя погуглить на тему того, когда(в каком релизе) удев был поглощен систедм и какая версия удева в ТС.

После этого мы все в этой теме ждем признания «я дуракбольше не буду писать непроверенных фактов, ибо в такой момент выгляжу еще хуже чем моя аватарка»

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

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

Spirit_of_Stallman ★★★ ()
Ответ на: комментарий от shell-script

Нет, карты именно что менялись, потому всё логично (правила на слинковку mac<->eth есть), но меня ни разу не устраивает такое поведение. Посему хочу что бы правила эти были динамичными, а не статичными. Или чистились как-то сами, а не я этим занимался любым из костылей.

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

вот из-за таких вот решений линукс так и останется системой для задротов (за исключением арчика и убунточки)

просто ОС предполагает, что ты сетевухи не меняешь. У меня например оно встроенное в мамку. Могу тебе сказать, что из-за смены сетевухи/MAC, может и интернет отвалится (замечено на билайне в ДС2), и линукс тут не при чём.

И да, ещё придумали NetworkManager, если постоянно меняешь конфиг сети. И оно далеко не только в бубунточке и арчике, но и например в слаке.

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

Нет, карты именно что менялись, потому всё логично (правила на слинковку mac<->eth есть), но меня ни разу не устраивает такое поведение. Посему хочу что бы правила эти были динамичными, а не статичными

проблема в том, что на ethX завязаны другие правила. И будет очень уныло их переписывать, если у ядра левая пятка зачесалась, и ему захотелось присвоить для твоей eth0 что-то другое. А это может случится на любой перезагрузке. Потому ethX привязывают к MAC, и переименовывают их udev'ом во время загрузки.

На самом деле, если у тебя одна карта, это можно и отключить, но я не помню - как. Погугли. Тогда у тебя будет всегда eth0, т.к. он один единственный.

Если не один, расскажи, как их различать? Через libastral что-ли?

drBatty ★★ ()
# cat /etc/path_to_inst
#
#       Caution! This file contains critical kernel state
#
"/iscsi" 0 "iscsi"
"/fcoe" 0 "fcoe"
"/agpgart" 0 "agpgart"
"/xsvc@0,0" 0 "xsvc"
"/options" 0 "options"
"/pseudo" 0 "pseudo"
"/scsi_vhci" 0 "scsi_vhci"
"/pci@0,0" 0 "pci"
"/pci@0,0/isa@1" 0 "isa"
"/pci@0,0/isa@1/pit_beep" 0 "pit_beep"
"/pci@0,0/isa@1/i8042@1,60" 0 "i8042"
"/pci@0,0/isa@1/i8042@1,60/keyboard@0" 0 "kb8042"
"/pci@0,0/isa@1/i8042@1,60/mouse@1" 0 "mouse8042"
"/pci@0,0/isa@1/lp@1,378" 0 "ecpp"
"/pci@0,0/pci8086,2829@d" 0 "ahci"
"/pci@0,0/pci8086,2829@d/disk@0,0" 0 "sd"
"/pci@0,0/pci8086,2829@d/cdrom@1,0" 1 "sd"
"/pci@0,0/display@2" 0 "vgatext"
"/pci@0,0/pci106b,3f@6" 0 "ohci"
"/pci@0,0/pci106b,3f@6/input@1" 0 "hid"
"/pci@0,0/pci8086,1e@3" 0 "e1000g"
"/pci@0,0/pci8086,0@5" 0 "audio810"
"/fw" 0 "acpinex"
"/fw/cpu@0" 0 "cpudrv"
"/fw/sb@0" 1 "acpinex"
anonymous ()
Ответ на: комментарий от drBatty

Потому ethX привязывают к MAC, и переименовывают их udev'ом во время загрузки.

У меня нет необходимости статичного учёта сетевых устройств (в рамках постоянной жизни системы). Я могу допустить такое в рамках сессии, но при перезапуске системы готов принять трату ресурсов на то, что бы все сетевые переопределялись, как в первый раз, а старые правила затирались.

Если не один, расскажи, как их различать? Через libastral что-ли?

Мы, видимо, недопонимаем друг друга.
Мне монопинусоально только на страрые привязки. Пусть каждый раз делает всё, как в первые, пусть пишет себе те правила, но при перезагрузке - затирание старых конфигов.
И суть ясна - мне достаточно просто rm'ать правила, что бы он переписывал всё по новой.
Но это костыль. Я хотел бы просто сообщить удэву о таком желании, может он умеет такое. Ненавижу костыли городить.

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

Но это костыль. Я хотел бы просто сообщить удэву о таком желании, может он умеет такое. Ненавижу костыли городить.

дык это не баг, а фича. Раньше её не было. Наверняка можно как-то отключить, лично мне это тупо не нужно, и даже вредно.

У меня нет необходимости статичного учёта сетевых устройств (в рамках постоянной жизни системы). Я могу допустить такое в рамках сессии, но при перезапуске системы готов принять трату ресурсов на то, что бы все сетевые переопределялись, как в первый раз, а старые правила затирались.

ты не понимаешь - в ядре есть гонки, из-за них eth0 может определятся иногда как eth1, а иногда как eth0. Потому-то их и переименовывают как надо. Если у тебя eth1 - локалка, а eth0 - Сеть, то ты представляешь, что случится, если они перепутаются?

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

дык это не баг, а фича. Раньше её не было. Наверняка можно как-то отключить, лично мне это тупо не нужно, и даже вредно.

Это ясно, что просто так редко что-то бывает.

ты не понимаешь - в ядре есть гонки, из-за них eth0 может определятся иногда как eth1, а иногда как eth0. Потому-то их и переименовывают как надо. Если у тебя eth1 - локалка, а eth0 - Сеть, то ты представляешь, что случится, если они перепутаются?

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

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

От того мы несколько под разными углами смотрим

составители дистра учли три юзкейса:

  1. у тебя много карточек
  2. у тебя одна карточка
  3. у тебя много карточек, но ты втыкаешь по одной

Очевидно, что 3½ юзера №3 в меньшинстве, и должны страдать. Ибо их интересы конфликтуют с №2 и №1.

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

у тебя много карточек, но ты втыкаешь по одной

Или ты делаешь дистриб, что выполняет специфические задачи, для своей компании, что работает с флешечки и может менять оборудование (т.е. тупо переезд флешки), на котором разворачивается :)
Но я уже понял что обязан страдать. Зато не забываю что еще живой.

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

Но я уже понял что обязан страдать. Зато не забываю что еще живой.

дык погугли. Я видел такую настройку, только убей - не помню, где она порылась. Да у тебя и не слака.

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

дык погугли

Не обижайте. Это первое что я сделал, и на дэбианах много кто в это упёрся, и так ничего и не решил.
Но может поиграюсь с write_net_rules.
Так или иначе - спасибо.

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

rm 70-persistent-net.rules touch 70-persistent-net.rules chattr +i 70-persistent-net.rules

Вдруг поможет?

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

Вдруг поможет?

Я думал оно будет ругаться и не работать.
А оно не ругается и работает.
То что нужно, спасибо.

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