LINUX.ORG.RU
решено ФорумAdmin

Названия сетевых интерфейсов в centos 7

 , ,


0

1

Привет.

Я всё время думал, что для того, чтобы в седьмом centos использовать старые названия интерфейсов (eth*), нужно загрузить ядро с параметром net.ifnames=0.

Сегодня сетапил виртуалку кикстартом и указал в нём network --device=eth0. После установки системы интерфейс назывался eth0, но откуда берётся это значение? В /etc/udev/rules.d пусто. Ядро запущено без net.ifnames. При следующем обновлении ядра он не переименует мне интерфейс?

А что мешает в загрузчике виртуалки прописать по дефолту флаг? GRUB это точно умеет.

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

Да ничего не мешает. Мне просто интересно, почему он загрузился с именем eth0 и где этот параметр хранится.

generator ★★★
() автор топика

откуда берётся это значение?

Ты не способен найти в каталоге /etc файлы со стокой eth0?

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

То есть по-твоему он берёт имя интерфейса из ifcfg-*? А если два сетевых адаптера, а в ifcfg мак не прописан, то имена eth* будут назначаться практически рандомно?

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

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

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

Ок. Значит, там дистроспецифичная генераторная магия.

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

Да, точно. Как минимум в федоре в /lib/udev/rules.d есть специальное правило, которое выполняет переименование интерфейсов согласно легаси-конфигурации из /etc/sysconfig, если таковая присутствует.

Мы столкнулись с этим, когда systemd In Action #4 писали.

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

То есть systemd в любом случае будет смотреть в /etc/sysconfig? А зачем тогда воообще параметр net.ifnames? Что-то не пойму никак..

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

Это два разных механизма.

systemd (точнее, его штатное/комплектное udev-правило переименования) смотрит только в /etc/systemd/network, /lib/systemd/network и в параметр ядра net.ifnames.

В то же время есть ещё и редхатоспецифичное udev-правило переименования, которое смотрит в /etc/sysconfig. При этом оно имеет приоритет над правилом из systemd: если у тебя в /etc/sysconfig уже настроены какие-то интерфейсы, для них правило переименования из systemd вообще не будет выполняться (соответственно, вышеуказанные настройки будут игнорироваться).

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

в виртуалках нормальные имена — ethX

CentOS 7 в виде гостей вмвари 5 имеют имена интерфейсов eno16780032, eno33559296 и т.д. Это ненормально?

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

нормальные имена
ethX

а как определить, какой разъём это на сетевухе из этого нормального имени

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

Кажется, понял. Спасибо.

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

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

Не знаю как в CentOS, но в генте под виртуалкой - да. Я даже первый раз удивился и специально полез в /lib/udev/rules.d чтобы найти правило, которое явно отключает переименование сетевых интерфейсов в этом случае.

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