переименование сетевого интерфейса в Ubuntu 16.04 с ошибкой systemd

Я использую безглавой Ubuntu 16.04 LTS Server с двумя физическими сетевыми картами, которые называются enp5s0f0 и enp5s0f1.

Я хотел бы переименовать эти интерфейсы и следовать этому примеру. Поэтому я создал файл /lib/systemd/network/70-myinterface.link (исходный источник не работает) вроде этого (я установил правильный адрес mac):

[Match]
MACAddress=12:34:56:78:9a:bc

[Link]
Name=dmz0

и перезагрузил сервер. К сожалению, интерфейс не получил переименования, хотя udevadm показывает, что используется мой файл конфигурации:

$ udevadm info /sys/class/net/enp5s0f1
P: /devices/pci0000:00/0000:00:02.0/0000:01:00.0/0000:02:02.0/0000:05:00.1/net/enp5s0f1
E: DEVPATH=/devices/pci0000:00/0000:00:02.0/0000:01:00.0/0000:02:02.0/0000:05:00.1/net/enp5s0f1
E: ID_BUS=pci
E: ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper)
E: ID_MODEL_ID=0x1096
E: ID_NET_DRIVER=e1000e
E: ID_NET_LINK_FILE=/lib/systemd/network/70-myinterface.link  <-- my file
E: ID_NET_NAME_MAC=enx123456789abc
E: ID_NET_NAME_PATH=enp5s0f1
E: ID_OUI_FROM_DATABASE=Intel Corporation
E: ID_PATH=pci-0000:05:00.1
E: ID_PATH_TAG=pci-0000_05_00_1
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Intel Corporation
E: ID_VENDOR_ID=0x8086
E: IFINDEX=3
E: INTERFACE=enp5s0f1
E: SUBSYSTEM=net
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp5s0f1
E: TAGS=:systemd:
E: USEC_INITIALIZED=1900192

У вас есть идеи, почему переименование не сработало?

1
задан 6 June 2016 в 14:16

3 ответа

Все три пользовательских метода именования, объясненные systemd: Предсказуемые имена сетевого интерфейса, связаны с правилами udev. systemd .link & amp; Правила udev имеют приоритет папки. /etc переопределяет /run переопределяет /lib. Поэтому проверьте текущую настройку.
# links
ls -l /*/systemd/network/

# rule that read links
ls -l /*/udev/rules.d/80-net-setup-link.rules

# rule that check for /etc/.../80-net-setup-link.rules & net.ifnames
ls -l /*/udev/rules.d/73-usb-net-by-mac.rules
После того, как любое изменение в этих правилах udev (добавление / удаление файлов переопределения) будет эффективным, загрузочный RAM-диск должен быть обновлен:
sudo update-initramfs -u
По умолчанию это единственные файлы, которые вы можете найти
~$ ls -l /*/systemd/network/
/etc/systemd/network/:
total 0

/lib/systemd/network/:
total 12
-rw-r--r-- 1 root root 404 Jul 12 17:28 80-container-host0.network ##(virtual-interface)
-rw-r--r-- 1 root root 482 Jul 12 17:28 80-container-ve.network ##(virtual-interface)
-rw-r--r-- 1 root root  80 Jul 12 17:28 99-default.link


~$ ls -l /*/udev/rules.d/80-net-setup-link.rules
-rw-r--r-- 1 root root 292 Jul 12 17:28 /lib/udev/rules.d/80-net-setup-link.rules

~$ ls -l /*/udev/rules.d/73-usb-net-by-mac.rules
-rw-r--r-- 1 root root 551 Jul 12 16:37 /lib/udev/rules.d/73-usb-net-by-mac.rules
Я тестировал все из них в VBox new 16.04 install, как описано в ссылке ниже, все методы работают так, как ожидалось: Ubuntu 16.04 Сложные имена интерфейсов /etc/udev/rules.d/70-persistent-net-rules - это старые версии, замененные systemd .link (но они не созданы автоматически), я добавил его здесь, чтобы проверить его существование для конкретных проблем, но не для случая AnttiHaapala.
3
ответ дан 23 May 2018 в 10:20

Опция, которая не требует правил udev (альтернатива файлам systemd-networkd .link), которая работает с Ubuntu 16.04, а также во многих других версиях Linux:

Пример:

[ f1]

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

Протестировано на Ubuntu 16.04 с ядром 4.4.0-36-generic # 55-Ubuntu

Изменить: если вы ищете постоянное решение, которое выживает перезагрузка, см. Изменение сетевых интерфейсов имя Ubuntu 16.04

Источники: Изменение сетевых интерфейсов имя Ubuntu 16.04

http://kernelpanik.net/rename-a- linux-network-interface-without-udev /

Тестирование.

Примечание: поскольку метод @ antti-haapala работал раньше и внезапно остановился, вам может быть интересно узнать, что «как особый case, пустой файл (размер файла 0) или символическую ссылку с тем же именем, указывающим на / dev / null, полностью отключает файл конфигурации (он «замаскирован») ». http://kernelpanik.net/rename-a-linux-network-interface-without-udev/

3
ответ дан 23 May 2018 в 10:20

Вам нужно обновить свой initrd чем-то вроде update-initramfs -k all -c, поскольку udev применяет эти конфиги уже во время работы initrd.

Ubuntu 16.04 больше не имеет файла с 70-постоянными сетями.

2
ответ дан 23 May 2018 в 10:20
  • 1
    Это странно, это 16.04 системы. Ahh, но это обновленная система. Вы правы, что его нет в новой установке. – Elder Geek 3 September 2016 в 22:09

Другие вопросы по тегам:

Похожие вопросы: