Jump to content
Калькуляторы

Именование интерфейсов в centos7 (теория)

Коллеги, никак не могу полностью представить картину как оно работает.

Знаю про изменение параметров GRUB но и знаю и вижу по опыту что переименовать интерфейсы можно не залезая в GRUB а просто поправив файлы в /etc/sysconfig/network-scripts 

Правда последний способ работает нормально только если указан HWADDR

Сейчас ситуация такая:

Есть некий БОЕВОЙ сервер. На нем 4 интерфейса, все они с указанным HWADDR, поименованы вручную, и попарно объединены в да бриджа.

Встала задача переделать бриджи в bonding, как я понимаю для bonding интерфейсов нужно убирать HWADDR (по крайней мере если не убирать у меня почему-то не взлетело). А если убирать - то сразу присвоенные имена слетают, несмотря на прописанные UUID.

Хочется навести порядок в голове и понять как оно работает, причем в комплексе, включая network-manager. Какие настройки приоритетнее, кто кого перекрывает и какая логика у каждого из них. Пытался гуглить но в инете только рецепты для конкретных случаев,  общего описания всей кухни нигде не нашел. Прошу помощи.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

@Bat 

Чем не устраивает - поздно говорить. Сервер боевой, интерфейсы переименованы... Хотя, наверное по-одному можно их вернуть в первозданный вид. Что нужно сделать ? Просто убрать DEVICE= ? или NAME - Тоже ?

Я могу быть уверен что они потом остануться неизменными ? Про тоже network-manager тоже непонято. Хочется сначала разобраться досканально, а потом уже делать.

Share this post


Link to post
Share on other sites

В порядке эксперимента удалил файл ifcfg-eno1, перезапустил сервер

Интерфейс стал называться eth1, файл ifcfg-eth1 не создался.

Как мне вернуться к именования по-умолчанию ?

 

Кстати, залез в /etc/default/grub

а там: net.ifnames=0 biosdevname=0

хотя я это не настраивал. Возможно панель VMMANAGER своевольничает...

В любом случае остается вопрос: Как сделать теперь bonding из интерфейсов

Share this post


Link to post
Share on other sites

 

17 часов назад, grifin.ru сказал:

файл ifcfg-eth1 не создался.

Сам файл не создается. Его ручками делать надо.

 

 

17 часов назад, grifin.ru сказал:

Кстати, залез в /etc/default/grub

а там: net.ifnames=0 biosdevname=0

 

Это как раз возврат к традиционному именованию. Потому у вас и eth1.

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

Также не понятно какая карта к какому интерфейсу относится, только методом тыка.

Для этого были созданы схемы наименования через biosdevice, по номерам PCI-слотов.

Там несколько схем в порядке приоритета. Почитать можно тут:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/ch-consistent_network_device_naming

 

Share this post


Link to post
Share on other sites
1 hour ago, Bat said:

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

Всю жизнь не менялись (привязка по железячному маку), а теперь вдруг начнут?

 

1 hour ago, Bat said:

Для этого были созданы схемы наименования через biosdevice, по номерам PCI-слотов.

Дебильнейшая идея, и имена получаются неудобоваримые в результате.

Share this post


Link to post
Share on other sites
21 минуту назад, rm_ сказал:

Всю жизнь не менялись (привязка по железячному маку), а теперь вдруг начнут?

Это в случае, если он указан в HWADDR. Ну вот у человека не получается использовать эту опцию, когда он создает бонд-интерфейсы. Может особенность какая или баг.

 

21 минуту назад, rm_ сказал:

Дебильнейшая идея, и имена получаются неудобоваримые в результате.

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

Вот тут подробней:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-understanding_the_predictable_network_interface_device_names

 

Вот например интерфейс:

enp5s0f1

находим по lspci:

05:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)

 

Это чем-то напоминает наименования интерфейсов на той же cisco

Share this post


Link to post
Share on other sites
53 minutes ago, zhenya` said:

Удевом можно привязать имена..

... через рулезы.

 

Ну вот стоит сервер с тремя картами. Тут, вдруг, вылетает материнка, покупается новая, с другой шиной и сетевухами. Приехали, полезли менять названия интрефейсов во всех конфигах.:)

Техника меняется, конфиги и скрипты работают годами и годами.

Share this post


Link to post
Share on other sites
Just now, grifin.ru said:

@vop 

И как вы предлагаете решить эту проблему ?

Никак. Кто-то пользуется ip-адресами, а кто-то дает своим серверам имена и пользуется доменами. :)

 

Ой, сорри, тут про интерфейсы. Кто-то пользуется "географическими" именованиями интерфейсов, а кто-то - логическими. Каждый выбирает то, что ему удобнее. За 24-го работы с серверами больше склоняешься к логическим ethX. При смене железа мне проще поправить в одном месте привязку в dev rules.

Share this post


Link to post
Share on other sites
7 minutes ago, vop said:

 

Ну вот стоит сервер с тремя картами. Тут, вдруг, вылетает материнка, покупается новая, с другой шиной и сетевухами. Приехали, полезли менять названия интрефейсов во всех конфигах.:)

По старым порядкам, мак-адреса для привязки ethX хранятся ровно в одном месте.

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

Share this post


Link to post
Share on other sites
23 часа назад, grifin.ru сказал:

Кстати, залез в /etc/default/grub

а там: net.ifnames=0 biosdevname=0

попробовал убрать 

net.ifnames=0 biosdevname=0

Вместо eth1 cnfk eno1

удалил конфиг файл еще для одного интерфейса - появился eth1

может такое быть что biosdevname присваивает онбордным контролерам имена eno1 и eth1 ?

Share this post


Link to post
Share on other sites

Продолжаем расследование:

Возможно причины невозможности запустить бондинг совсем не в мак адресах.

[root@vds3 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (broadcast)
MII Status: down
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
[root@vds3 ~]# 

Бондинг не видит слейвов, как я понимаю. С чем это может быть связано ?

Вот файл слейва:

MASTER=bond0
SLAVE=YES
DEVICE=eno1
HWADDR=00:25:90:4F:A9:41
METRIC=120
NAME=eno1
ONBOOT=yes
TYPE=Ethernet

 

Share this post


Link to post
Share on other sites
4 часа назад, rm_ сказал:

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

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

 

@grifin.ru ,  а настройки  самого бонд-интерфейса?

И сами slave-интерфейсы подняты?

ip link что говорит?

Share this post


Link to post
Share on other sites

 eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether 00:25:90:4f:a9:41 brd ff:ff:ff:ff:ff:ff

 eno3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether 00:25:90:4f:a9:43 brd ff:ff:ff:ff:ff:ff

bond0: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc noqueue master vmbr0 state DOWN mode DEFAULT qlen 1000
    link/ether de:26:cb:2c:89:b8 brd ff:ff:ff:ff:ff:ff

NM_CONTROLLED=no
USERCTL=no
BRIDGE=vmbr0
BOOTPROTO=none
NAME=bond0
DEVICE=bond0
ONBOOT=yes
TYPE=Bond
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100"  #i set mode to active-backup
IPV6INIT=no

 

Share this post


Link to post
Share on other sites

В общем забил на Bonding, сделал Teaming, все взлетело.

Новый вопрос появился:

 

Share this post


Link to post
Share on other sites
18 часов назад, Bat сказал:

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

Но нету никакой гарантии, в каком порядке новая версия пронумерует устройства, присутствующие в биосе.

В той-же 4-портовой сетевухе один драйвер может слева направо, другой справа налево.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now