Рейтинг:1

Ubuntu 20.04 — именование сетевых карт и сопоставление MAC-адресов с Netplan

флаг cn

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

Я использую 20.04 (модифицированная версия, виртуальная машина GNS3 на ESXi) с 10 сетевыми адаптерами. Время от времени, если я вношу изменения в настройки или топологию, имена сетевых карт меняются, поэтому мне нужно, чтобы они были постоянными.

Основное приложение, которое я запускаю, ожидает старое соглашение об именах, в моем случае от Eth0 до Eth9. Ничего страшного.

Вот содержимое файла, который приложение использует в /etc/netplan:

сеть:
  версия: 2
  визуализатор: сетевой
  Ethernet:
    эт0:
      соответствовать:
        макадрес: 00:50:56:00:0a:01
      DHCP4: нет
      адреса:
        - 192.168.100.3/24
      шлюз4: 192.168.100.1
      серверы имен:
        адреса: [1.1.1.1, 8.8.8.8]
    эт1:
      соответствовать:
        макадрес: 00:50:56:00:0a:04
      DHCP4: да
    эт2:
      соответствовать:
        макадрес: 00:50:56:00:0b:01
      DHCP4: да
    эт3:
      соответствовать:
        макадрес: 00:50:56:00:0b:02
      DHCP4: да
    эт4:
      соответствовать:
        макадрес: 00:50:56:00:0b:03
      DHCP4: да
    эт5:
      соответствовать:
        макадрес: 00:50:56:00:0b:04
      DHCP4: да
    эт6:
      соответствовать:
        макадрес: 00:50:56:00:0c:01
      DHCP4: да
    эт7:
      соответствовать:
        макадрес: 00:50:56:00:0c:02
      DHCP4: да
    эт8:
      соответствовать:
        макадрес: 00:50:56:00:0c:03
      DHCP4: да
    эт9:
      соответствовать:
        макадрес: 00:50:56:00:0c:04
      DHCP4: да

Когда я запускаю netplan, применяется там кажется быть без проблем; но фактический вывод sudo netplan --debug generate позволяет мне думать иначе:

** (генерация: 1473): ОТЛАДКА: 14:22:26.352: Обработка входного файла /etc/netplan/01-netcfg.yaml..
** (генерация: 1473): ОТЛАДКА: 14:22:26.353: Обработка входного файла /etc/netplan/90_gns3vm_static_netcfg.yaml..
** (генерация: 1473): DEBUG: 14:22:26.353: запуск нового прохода обработки
** (generate:1473): DEBUG: 14:22:26.353: У нас есть несколько netdefs, пропустите их через последний раунд проверки
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth5: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth4: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth3: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth9: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth2: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth8: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth1: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth7: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth0: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (сгенерировать: 1473): DEBUG: 14:22:26.354: eth6: установка серверной части по умолчанию на 1
** (генерация: 1473): DEBUG: 14:22:26.354: Конфигурация действительна
** (создать: 1473): ОТЛАДКА: 14:22:26.355: Создание выходных файлов..
** (генерация: 1473): DEBUG: 14:22:26.355: openvswitch: определение eth0 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.355: NetworkManager: определение eth0 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.355: openvswitch: определение eth1 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.355: NetworkManager: определение eth1 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: openvswitch: определение eth2 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: NetworkManager: определение eth2 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: openvswitch: определение eth3 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: NetworkManager: определение eth3 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: openvswitch: определение eth4 не для нас (бэкэнд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: NetworkManager: определение eth4 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: openvswitch: определение eth5 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: NetworkManager: определение eth5 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: openvswitch: определение eth6 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.356: NetworkManager: определение eth6 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.357: openvswitch: определение eth7 не для нас (бэкэнд 1)
** (генерация: 1473): DEBUG: 14:22:26.357: NetworkManager: определение eth7 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.357: openvswitch: определение eth8 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.357: NetworkManager: определение eth8 не для нас (бэкенд 1)
** (генерация: 1473): DEBUG: 14:22:26.357: openvswitch: определение eth9 не для нас (бэкэнд 1)
** (генерация: 1473): DEBUG: 14:22:26.357: NetworkManager: определение eth9 не для нас (бэкенд 1)
(генерация: 1473): GLib-DEBUG: 14:22:26.357: posix_spawn избегается (запрошено закрытие fd) 
(генерация: 1473): GLib-DEBUG: 14:22:26.365: posix_spawn избегается (запрошено закрытие fd) 

Вывод dmesg | grep эт

[ 4.621720] e1000e 0000:03:00.0 eth0: (PCI Express:2.5GT/s:Width x1) 00:50:56:00:0a:01
[ 4.621723] e1000e 0000:03:00.0 eth0: сетевое подключение Intel(R) PRO/1000
[4.621865] e1000e 0000:03:00.0 eth0: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 4.733469] e1000e 0000:04:00.0 eth1: (PCI Express:2.5GT/s:Width x1) 00:50:56:00:0b:03
[ 4.733472] e1000e 0000:04:00.0 eth1: сетевое подключение Intel(R) PRO/1000
[4.733577] e1000e 0000:04:00.0 eth1: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 4.845864] e1000e 0000:05:00.0 eth2: (PCI Express:2.5GT/s:ширина x1) 00:50:56:00:0c:03
[ 4.845868] e1000e 0000:05:00.0 eth2: сетевое подключение Intel(R) PRO/1000
[4.845977] e1000e 0000:05:00.0 eth2: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 4.956955] e1000e 0000:0b:00.0 eth3: (PCI Express:2.5GT/s:Width x1) 00:50:56:00:0a:04
[ 4.956959] e1000e 0000:0b:00.0 eth3: сетевое подключение Intel(R) PRO/1000
[4.957087] e1000e 0000:0b:00.0 eth3: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 5.070404] e1000e 0000:0c:00.0 eth4: (PCI Express:2,5 ГТ/с:ширина x1) 00:50:56:00:0b:04
[ 5.070407] e1000e 0000:0c:00.0 eth4: сетевое подключение Intel(R) PRO/1000
[ 5.070531] e1000e 0000:0c:00.0 eth4: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 5.182248] e1000e 0000:0d:00.0 eth5: (PCI Express:2.5GT/s:Width x1) 00:50:56:00:0c:04
[ 5.182251] e1000e 0000:0d:00.0 eth5: сетевое подключение Intel(R) PRO/1000
[ 5.182374] e1000e 0000:0d:00.0 eth5: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 5.294284] e1000e 0000:13:00.0 eth6: (PCI Express:2.5GT/s:Width x1) 00:50:56:00:0b:01
[ 5.294287] e1000e 0000:13:00.0 eth6: сетевое подключение Intel(R) PRO/1000
[ 5.294410] e1000e 0000:13:00.0 eth6: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 5.406343] e1000e 0000:14:00.0 eth7: (PCI Express:2.5GT/s:ширина x1) 00:50:56:00:0c:01
[ 5.406346] e1000e 0000:14:00.0 eth7: сетевое подключение Intel(R) PRO/1000
[ 5.406471] e1000e 0000:14:00.0 eth7: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 5.518208] e1000e 0000:1b:00.0 eth8: (PCI Express:2.5GT/s:ширина x1) 00:50:56:00:0b:02
[ 5.518211] e1000e 0000:1b:00.0 eth8: сетевое подключение Intel(R) PRO/1000
[ 5.518335] e1000e 0000:1b:00.0 eth8: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 5.631213] e1000e 0000:1c:00.0 eth9: (PCI Express:2.5GT/s:ширина x1) 00:50:56:00:0c:02
[ 5.631216] e1000e 0000:1c:00.0 eth9: сетевое подключение Intel(R) PRO/1000
[ 5.631408] e1000e 0000:1c:00.0 eth9: MAC: 3, PHY: 8, номер PBA: 000000-000
[ 9.627269] e1000e 0000:1c:00.0 eth9: соединение с сетевой картой установлено, скорость 1000 Мбит/с, полный дуплекс, управление потоком: нет
[9.628754] IPv6: ADDRCONF(NETDEV_CHANGE): eth9: ссылка готова
[ 9.729352] e1000e 0000:1b:00.0 eth8: соединение с сетевой картой установлено, скорость 1000 Мбит/с, полный дуплекс, управление потоком: нет
[9.813525] IPv6: ADDRCONF(NETDEV_CHANGE): eth8: ссылка готова
[ 9.817031] e1000e 0000:14:00.0 eth7: соединение с сетевой картой установлено на скорости 1000 Мбит/с, полный дуплекс, управление потоком: нет
[ 9.913124] e1000e 0000:13:00.0 eth6: соединение с сетевой картой установлено, скорость 1000 Мбит/с, полный дуплекс, управление потоком: нет
[10.001200] IPv6: ADDRCONF(NETDEV_CHANGE): eth7: ссылка готова
[10.002240] IPv6: ADDRCONF(NETDEV_CHANGE): eth6: ссылка готова
[ 10.004976] e1000e 0000:0d:00.0 eth5: соединение с сетевой картой установлено, скорость 1000 Мбит/с, полный дуплекс, управление потоком: нет
[ 10.096982] e1000e 0000:0c:00.0 eth4: соединение с сетевой картой установлено на скорости 1000 Мбит/с, полный дуплекс, управление потоком: нет
[10.099025] IPv6: ADDRCONF(NETDEV_CHANGE): eth5: ссылка готова
[10.100038] IPv6: ADDRCONF(NETDEV_CHANGE): eth4: ссылка готова
[ 10.204745] e1000e 0000:0b:00.0 eth3: соединение с сетевой картой установлено, скорость 1000 Мбит/с, полный дуплекс, управление потоком: нет
[ 10.296669] e1000e 0000:05:00.0 eth2: соединение с сетевой картой установлено, скорость 1000 Мбит/с, полный дуплекс, управление потоком: нет
[ 10.416662] e1000e 0000:04:00.0 eth1: соединение с сетевой картой установлено, скорость 1000 Мбит/с, полный дуплекс, управление потоком: нет
[ 10.509219] e1000e 0000:03:00.0 eth0: соединение с сетевой картой установлено, скорость 1000 Мбит/с, полный дуплекс, управление потоком: нет
[10.511526] IPv6: ADDRCONF(NETDEV_CHANGE): eth3: ссылка готова
[10.512287] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: ссылка готова
[10.512964] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: ссылка готова
[10.513602] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: ссылка готова

Вывод ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
    инет 127.0.0.1/8 область хоста lo
       valid_lft навсегда
    inet6 :: 1/128 узел области видимости 
       valid_lft навсегда
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0a:01 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp3s0
    альтернативное имя ens160
    инет 192.168.100.3/24 brd 192.168.100.255 глобальный охват eth0
       valid_lft навсегда
    ссылка на область inet6 fe80::250:56ff:fe00:a01/64 
       valid_lft навсегда
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0b:03 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp4s0
    альтернативное имя ens161
    ссылка на область inet6 fe80::250:56ff:fe00:b03/64 
       valid_lft навсегда
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0c:03 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp5s0
    альтернативное имя ens162
    ссылка на область inet6 fe80::250:56ff:fe00:c03/64 
       valid_lft навсегда
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0a:04 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp11s0
    альтернативное имя ens192
    ссылка на область inet6 fe80::250:56ff:fe00:a04/64 
       valid_lft навсегда
6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0b:04 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp12s0
    альтернативное имя ens193
    ссылка на область inet6 fe80::250:56ff:fe00:b04/64 
       valid_lft навсегда
7: eth5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0c:04 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp13s0
    альтернативное имя ens194
    ссылка на область inet6 fe80::250:56ff:fe00:c04/64 
       valid_lft навсегда
8: eth6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0b:01 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp19s0
    альтернативное имя ens224
    ссылка на область inet6 fe80::250:56ff:fe00:b01/64 
       valid_lft навсегда
9: eth7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0c:01 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp20s0
    альтернативное имя ens225
    ссылка на область inet6 fe80::250:56ff:fe00:c01/64 
       valid_lft навсегда
10: eth8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0b:02 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp27s0
    альтернативное имя ens256
    ссылка на область inet6 fe80::250:56ff:fe00:b02/64 
       valid_lft навсегда
11: eth9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир 00:50:56:00:0c:02 брд ff:ff:ff:ff:ff:ff
    альтернативное имя enp28s0
    альтернативное имя ens257
    ссылка на область inet6 fe80::250:56ff:fe00:c02/64 
       valid_lft навсегда
12: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    ссылка/эфир 52:54:00:6f:81:c9 brd ff:ff:ff:ff:ff:ff
    инет 192.168.122.1/24 brd 192.168.122.255 глобальная область действия virbr0
       valid_lft навсегда
13: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 состояние DOWN группа по умолчанию qlen 1000
    ссылка/эфир 52:54:00:6f:81:c9 brd ff:ff:ff:ff:ff:ff
14: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    ссылка/эфир 02:42:02:d0:f1:69 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 глобальная область действия docker0
       valid_lft навсегда

Когда я начал пробовать что-то, я понял, что в /etc/network/interfaces (пусто) не было установлено ни network-manager, ни cloud-init, ни что-либо еще.

Любые идеи или решения будут оценены.

Рейтинг:0
флаг jp

Вы используете такой вариант, как net.ifnames=0 biosdevname=0 отключить предсказуемые имена сетевых интерфейсов?

В вашей сетевой план config, используемые вами идентификаторы не означают, что имена интерфейсов будут соответствовать этому идентификатору. От ссылка на сетевой план

Имена ключей под картами определений для каждого типа устройства (например, ethernet:) называются «ID».

Если есть match: rules, то поле ID — чисто непрозрачное имя который используется только для ссылок

Возможно, вам больше повезет с конфигурацией, которая использует Имя набора как это

сеть:
  версия: 2
  визуализатор: сетевой
  Ethernet:
    ник0:
      соответствовать:
        макадрес: 00:50:56:00:0a:01
      DHCP4: нет
      адреса:
        - 192.168.100.3/24
      шлюз4: 192.168.100.1
      серверы имен:
        адреса: [1.1.1.1, 8.8.8.8]
      имя набора: eth0
    ник1:
      соответствовать:
        макадрес: 00:50:56:00:0a:04
      DHCP4: да
      имя набора: eth1
...

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

Ответить или комментировать

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