LINUX.ORG.RU

кто и зачем переименовывает сетевой интерфейс

 , ,


1

1

Приветствую,

На Fedora 18 вижу следующее в логах dmesg'a:

[    5.241882] systemd-udevd[273]: renamed network interface eth0 to p2p1
[    8.527104] e1000: p2p1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

Судя по всему это делает /usr/lib/udev/rules.d/60-net.rules:

ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result"

Вопрос — с какой целью это делается (что плохого в имени ethX) и как это правильно отключить?

★★

Привет из криокамеры?

Обсосали же до косточек

dvrts ★★★
()

Как уже сказали, делает это system.d, отключать крайне не рекомендуется, лучше привыкнуть к такому положению дел.

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

Как уже сказали, делает это system.d

А чего-й-то в centos 6 такая ересь: p2p1? Там ведь upstart! То есть никаких systemd. А в ubuntu 14.04 ваще em1, em2? Только в ubuntu мне оно и пофиг - там по дхцп. Мне все лень было заниматься вопросом, а тут на тему наткнулся. Неужели это хорошо - везде по-своему интерфейсы переименовывать?!

andrew667 ★★★★★
()

ух ты! вот оказывается как это происходит!

а это однако прикольно придумали!

у меня вот так в dmesg-логах:

$ dmesg | grep -Fi 'renamed'
[    9.901818] r8169 0000:02:00.0 enp2s0: renamed from eth0
[    9.910245] systemd-udevd[226]: renamed network interface eth0 to enp2s0
[    9.926097] iwlwifi 0000:01:00.0 wlp1s0: renamed from wlan0
[    9.942098] systemd-udevd[227]: renamed network interface wlan0 to wlp1s0

очередной раз можно убедиться что в современных линуксах — всё стало как-то более логично..

(то есть сначало появляется какой-то непонятноназванный интерфейс, а потом systemd-udevd — даёт ему нормальное человеческое имя)

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

нет. когда сарказм, то обычно я пишу «сарказм» :-) ..

если тебе не нравится «wlp1s0» — то мне кажется ты просто бука! :-/

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

Ты че-то напутал. На кой черт переименовывать норм имя в ересь?

$ dmesg | grep -Fi 'renamed'
[    2.368705] systemd-udevd[118]: renamed network interface eth1 to em1
[    2.392624] systemd-udevd[117]: renamed network interface eth0 to em2
Но wlan в убунте почему-то не трогают - wlan0, wlan1,...

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

сам ты ерись! я уже насмотрелся на эти eth0 — десяток лет..

мне вот теперь охото свежатинки! :)

какого-то развития, скажем так...

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

Хм, поставлю я этот зустемде в свою генточку и посмотрю останется ли там eth0. Таки интересно.

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

А в чем логика, что в разных дистрибутивах по-разному переименовали? Где-то p2p1, где-то enp2s0, где-то em1. А до этого скажем так, в основном, eth везде.

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

Так, просто интересно. Уловил знакомое дурашливо-буддистское состояние -))

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

А в чем логика, что в разных дистрибутивах по-разному переименовали? Где-то p2p1, где-то enp2s0, где-то em1. А до этого скажем так, в основном, eth везде.

для меня самая большая радость — даже не в том что теперь имена сетевых-интерфейсов остаются постоянными после смены сетевой карточки...

...а в том что раньше я встречал множество скриптов в которых были жёстко прописаны константы как «eth0» .. а теперь я надеюсь таких скриптов больше не осталось.. наконец-то :) :-D

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

Касательно centos я посмотрю еще пару моментов. На старых установках 6-й версии 100% eth (на всех моих серваках так). А вот немного позже бук запиливал с centos, так там p2p1. Может еще и от иксов зависит, хз. Серваки без гуёв, а на буке второгном.

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

лучше привыкнуть к такому положению дел

О вай! Дожили. «Если это неизбежно, расслабся и получай удовольствие.»

Это кто там всё это время про Mac и Win шутки про зонд отпускал? ;)

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

мне вот теперь охото свежатинки! :)

напиши патч к systemd который будет давать интерфейсам имена поней, чего уж там мелочиться :)

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

systemd. не, надо это отключать!

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

напиши патч к systemd который будет давать интерфейсам имена поней, чего уж там мелочиться :)

да, идея чертовски хорошая. но я же не сусадмин-какой-нибудь-там.. у меня на ноутбуке есть только лишь WiFi и Ethernet , а поней много — и не хочется кого-то из них обижать..

особенно Флаттершай — она стеснительная и держит всю обиду в себе..

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

напиши патч к systemd который будет давать интерфейсам имена поней, чего уж там мелочиться :)

мне видется, что переименованием занимается udev, его патчить и надо

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

А ты рандомно выбирай имя и назначай при каждой загрузке, ни одна поня не останется в обиде

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

лишь WiFi и Ethernet

Дак и чем тогда вас скрипты с прописанным eth0 не устраивали то? Для ноута с одной сетевой дыркой само то.

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

Дак и чем тогда вас скрипты с прописанным eth0 не устраивали то? Для ноута с одной сетевой дыркой само то.

ну вот-такая-вот аллергия на решения которые работают заведомо лишь «для большенства случаев».

а сейчас всё-ещё-есть похожая проблема в сегменте скриптов для «ppp0» (который к слову сказать может быть и «ppp1» и «ppp2» и т д, но в обычно скриптах пишут почему-то «ppp0»).. хотя ведь есть возможность узнать настоящее имя интерфейса через событие /etc/ppp/ip-up.d/ .. :)

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

p2p1 вроде как Consistent Network Device Naming, когда имя сетёвки определяется по её физическому положению — встроенная (em) или в pci-слоте номер X.

А persistent, во всяком случае исходно, означало, что сетёвка именуется ethX, но с учётом всех ранее сущетвовавших в системе (по MAC-адресу) и новая не занимает имя старой, даже если старой больше нет в системе. Имя сетёвки не зависит от того, в какой слот она вставлена. И до udev с его правилами была утилита nameif с файлом /etc/mactab, а потом ifrename c /etc/iftab.

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

/etc/ppp/ip-up.d/

Ну-ну :-) Такой каталог есть в debian/ubuntu. В самом ppp нет никакого ip-up.d/, только /etc/ppp/ip-up, который в Дебиане вызывает run-parts на каталог ip-up.d/, а в RedHat'ах /etc/sysconfig/network-scripts/ifcfg-X, а потом /etc/ppp/ip-up.local. Так что не так просто навелосипедить универсальный скрипт, особенно если писать для себя, для своего дистрибутива и вобще не смотреть, что делается в других.

А что до замены ethX на em1 или p2p1, дак, ИМХО, скриптов, работающих во всех случаях станет ещё меньше и нужно будет grep'ать не только eth0, но и em[1-9] и p[1-9]p[1-9]. Потому что, тот, кто пишет скрипт для себя, так и будет писать. Ну был у него на ноуте eth0, стал em1, какая ему разница?

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

Возможно, что я и не прав, но, если верить вот этому: http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id...

то predictable, это ″eno0″ для встроенной сетёвки и ″enp1s0″ для PCI, а для usb ещё страшнее.

По мне, слово «предсказуемый» в названии такой схемы именования звучит как издёвка. Если со встроенными сетёвками обычно все понятно и у нормальных серверов они подписаны, какая первая, какая вторая, то откуда я узнаю в какой слот вставлена PCI-сетёвка? ЕМНИП, были сервера, в которые втыкаешь разные райзеры и в одно и то же отверстие сзади корпуса может смотреть PCI или PCI-e сетёвка, а корпус на замочке.

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

Ну-ну :-) Такой каталог есть в debian/ubuntu. В самом ppp нет никакого ip-up.d/, только /etc/ppp/ip-up, который в Дебиане вызывает run-parts на каталог ip-up.d/, а в RedHat'ах /etc/sysconfig/network-scripts/ifcfg-X, а потом /etc/ppp/ip-up.local. ...

вот ты молодец кое-в-чём! ты правильно заметил что бывает разные дистрибутивы (то есть — обобщая — разный софт).

другими словами ты намекаешь мне на мысль — в любом случае получится что "скрипт работает лишь для большенства случаев".

да, верно. выходит что так.. но тогда у нас (как создателей скриптов) возикает выбор:

* "скрипт работает лишь для большенства случаев, в зависимости от сложившийся ситуации (например ситуации с именами pppX\ethX).. но почти на любом дистрибутиве"

или

* "скрипт работает лишь для большенства случаев, в зависимости от дистрибутива.. но почти не зависимо от ситуации (например ситуации с именами pppX\ethX)"

то есть вопрос в том — каким фактором мы будем ограничивать глючность своих скриптов?

(мне кажется что хороший инженер — должен трезво понимать в чём заключается недостаток его товрений. а не считать свои творения супер-мега-классными!:))

и здесь я склонен накакать (~_^) на универсальность относительно разнообразных операционных систем (различной степени древности и эксклюзивно-маргенальности) — но при этом делать скрипты более стойкими к именно разнообразным пользовательским ситуациям! а следовательно разумеется нужно использовать /etc/ppp/ip-up.d/ , а не «ppp0».

да.. я конечно диваннй теоретик, но мнение своё — имею (и написал его :)).. темболее как диванные-войска не дремлят :-) ..

А что до замены ethX на em1 или p2p1, дак, ИМХО, скриптов, работающих во всех случаях станет ещё меньше и нужно будет grep'ать не только eth0, но и em[1-9] и p[1-9]p[1-9]. Потому что, тот, кто пишет скрипт для себя, так и будет писать....

о боже! только не это! на-ночь-глядя ты мне рассказал это — теперь же страшный сон приснится!! :-)

самый большой негатив в этих всех «скриптов для себя» — в том что любители их писать — обычно имеют свой интернет-блог и там выкладывают это на всобщее обозрение.. а попадая в интернет — бывает что это размножается... пппффф... коошшмааар, короче :-)..

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

крайне не рекомендуется

крайне не рекомендуется пороть чушь

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

а попадая в интернет — бывает что это размножается

Во, во. Интернет с блогами придумали плохие инженеры, в нём размножается всякое :-)

Большинство скриптов-велосипедов пришется совсем не инженерами, а продвинутыми пользователями. И, может, даже лучше, что они пишутся под какой-то один дистрибутив. Скрипт, хотя бы, небольшого размера и его можно как-то прочитать. А как только в подобный велосипед начнут пихать всякие разные костылики для работы на нескольких дистрибутивах, кода станет много, понять его вобще будет сложно. Да и скрипт на несколько тысяч строк всех распугает из этого блога :-)

Когда я лисопедил скрипты для своего сервера-маршрутизатора, мне было проще сделать переименование интерфейса, чтобы к провайдеру было ethI, в локальную сеть ethL, а вместо ppp0 — VPN. И во всех скриптах жёстко прописывать эти имена, чем вводить всякие разные переменные. Потому что всё равно одним движением руки не сделать, чтобы локальный интерфейс стал как-то по другому именоваться. Есть правила iptables, есть маршруты и ″ip rule″, есть шейпер трафика, есть dhcp-сервер.

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

Вай! Не думал что такой невинный казалось бы вопрос вызовет столь бурную полемику.

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

отключать крайне не рекомендуется

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

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от andrew667
ifconfig -a
eth0      Link encap:Ethernet  

lo        Link encap:Локальная петля (Loopback)  
          

den@haruhi:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.1 LTS
Release:	14.04
Codename:	trusty

УМВР

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

Почему не net.ifnames=0? Файлик могут переименовать (однажды так уже было), частью какого-либо API он не является.

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

Почему не net.ifnames=0?

Привычка, только недавно узнал об этой опции. После установки сделал systemctl enable kdm cups NetworkManager smbd nmbd и добавил init=/usr/lib/systemd/systemd в граб.

Файлик могут переименовать

Кто его переименует в /etc/ ? Злобный хакер? :D Стоит себе уже примерно год-два.

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

мне эти «новые имена» понравились сразу как только анонсировали это переименование в гламурных журналах!

в то время я ещё не знал что это будет сделано именно через systemd-udevd — но идея мне уже тогда понравилась :)

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.