cambiar el nombre de la interfaz de red con systemd

cambiar el nombre de la interfaz de red con systemd

Quiero cambiar el nombre en Fedora 22 de una interfaz de red administrada por systemd-networkd (versión 219) del nombre asignado por el sistema enp2s0a wan. Para eso creé el siguiente archivo /etc/systemd/network/80-wan.link:

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

Sin embargo, eso no tiene ningún efecto sobre el sistema. Después de reiniciar, el nombre sigue siendo enp2s0. Veo udevadmque udev tomó el archivo para configurarlo pero ignoró el nombre proporcionado:

~> 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

Además, no se menciona el nuevo nombre wanen ningún registro, incluso después de activar la salida de depuración de udev. ¿Que estoy haciendo mal?

Respuesta1

Al menos en Debian Stretch, parece que es necesario que update-initramfs -u && rebootlos *.linkarchivos /etc/systemd/network/surtan efecto en las interfaces existentes.

Parece que las interfaces de red cambian de nombre muy temprano durante el arranque desde initramfs, antes de que los *.linkarchivos /etc/systemd/networkestén disponibles... y una vez que se cambia el nombre de la interfaz una vez ( /sys/class/net/*/name_assign_type=4), entonces eludev-builtin-net_setup_linkya noemitirID_NET_NAME porque should_renamedevolucionesfalse.

Respuesta2

Estas usando systemd-networkd? Creo que los .linkarchivos solo son relevantes si usted lo es (en lugar del NetworkManager predeterminado o los scripts de inicio heredados). (Aunque admito que todavía no lo he investigado en profundidad).

Creo que lo que quieres es un .rulesarchivo en /etc/udev/rules.d, algo así como

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

(¿Dónde mac-addressestá su dirección MAC hexadecimal real, por supuesto?).

Este archivo necesita ser ordenadoantes /usr/lib/udev/rules.d/80-net-setup-link.rules, entonces eldocumentos ascendentessugerir /etc/udev/rules.d/70-my-net-names.rules.

Respuesta3

Por algunas malas razones, parece que networkmanager tiene prioridad sobre networkd (¿quién podría imaginar eso?). Puedes probar esto de la siguiente manera:

  • systemctl stop NetworkManager
  • desconecte la interfaz de red
  • ip addr

Resultado: se respetan las reglas /etc/systemd/network/*.link

Si inicia NetworkManager y repite la prueba, /etc/systemd/network/*.link ya no se respeta. Probé esto con la MACAddressPolicy=randomdirectiva.

información relacionada