6

Я хочу переименовать в Fedora 22 сетевой интерфейс, управляемый systemd-networkd (версия 219) из системного имени enp2s0 в wan . Для этого я создал следующий файл /etc/systemd/network/80-wan.link:

[Match]
MACAddress=mac-address
[Link]
Name=wan

Однако это никак не влияет на систему. После перезагрузки имя все еще enp2s0 . Я вижу с помощью udevadm что udev поднял файл для настройки, но проигнорировал предоставленное имя:

~> udevadm info /sys/class/net/enp2s0 
P: /devices/pci0000:00/0000:00:1c.1/0000:02:00.0/net/enp2s0
E: DEVPATH=/devices/pci0000:00/0000:00:1c.1/0000:02:00.0/net/enp2s0
E: ID_BUS=pci
E: ID_MM_CANDIDATE=1
E: ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
E: ID_MODEL_ID=0x8168
E: ID_NET_DRIVER=r8169
E: ID_NET_LINK_FILE=/etc/systemd/network/80-wan.link
E: ID_NET_NAME_MAC=enxMacAddress
E: ID_NET_NAME_PATH=enp2s0
E: ID_OUI_FROM_DATABASE=Shuttle Inc.
E: ID_PATH=pci-0000:02:00.0
E: ID_PATH_TAG=pci-0000_02_00_0
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Co., Ltd.
E: ID_VENDOR_ID=0x10ec
E: IFINDEX=2
E: INTERFACE=enp2s0
E: SUBSYSTEM=net
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp2s0
E: TAGS=:systemd:
E: USEC_INITIALIZED=24183

Также нет упоминания о новом имени wan в каких-либо журналах даже после активации вывода отладочной информации udev. Что я делаю не так?

3 ответа3

6

По крайней мере, в растяжке Debian кажется, что вам нужно update-initramfs -u && reboot для файлов *.link в /etc/systemd/network/ чтобы они действовали для существующих интерфейсов.

Кажется, что сетевые интерфейсы переименовываются очень рано во время загрузки из initramfs, до того, как файлы *.link в /etc/systemd/network станут доступны ... и после того, как интерфейс был переименован один раз (/sys/class/net/*/name_assign_type=4), тогда udev-builtin-net_setup_link больше не будет ID_NET_NAME так как should_rename возвращает false.

3

Вы используете systemd-networkd? Я думаю, что файлы .link имеют отношение только к вам (вместо стандартного NetworkManager или устаревших скриптов). (Признаюсь, я еще не углубился в это.)

Я думаю , что вы хотите это .rules файл в /etc/udev/rules.d что - то вроде

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="mac-address", NAME="wan"

(где mac-address - это ваш фактический шестнадцатеричный MAC-адрес, конечно).

Этот файл необходимо заказать до /usr/lib/udev/rules.d/80-net-setup-link.rules , поэтому в документации по исходным версиям предлагается /etc/udev/rules.d/70-my-net-names.rules

2

По некоторым плохим причинам кажется, что сетевой менеджер имеет приоритет над сетевым (кто бы мог это представить?). Вы можете проверить это следующим образом:

  • systemctl stop NetworkManager
  • отключите сетевой интерфейс
  • ip addr

Результат: /etc/systemd/network/*.link правила соблюдаются

Если вы запустите NetworkManager и повторите тест, /etc/systemd/network/*.link больше не будет выполняться. Я проверял это с помощью директивы MACAddressPolicy=random

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .