web-dev-qa-db-fra.com

Renommer l'interface réseau avec SystemD

Je souhaite renommer sur Fedora 22 une interface réseau gérée par SystemD-Networkd (version 219) du nom attribué au système enp2s0 dans wan. Pour cela, j'ai créé le fichier suivant /etc/systemd/network/80-wan.link:

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

Cependant, cela n'a aucun effet sur le système. Après avoir redémarré le nom est toujours enp2s0. Je vois avec udevadm _ udev a pris le fichier pour la configuration mais ignora le nom fourni:

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

En outre, il n'y a pas de mention du nouveau nom wan dans les journaux même après activation de la sortie de débogage UDev. Qu'est ce que je fais mal?

9
Igor Bukanov

Utilises-tu systemd-networkd? Je pense que le .link Les fichiers ne sont pertinents que si vous êtes (au lieu de la défaillance du réseau de réseaux ou du héritage InitsCrips). (J'admets que je n'ai pas encore regardé profondément, cependant.)

Je pense que ce que vous voulez est un .rules Fichier dans /etc/udev/rules.d, quelque chose comme

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

(où mac-address est votre adresse mac hexagonale réelle, bien sûr).

Ce fichier doit être commandé avant /usr/lib/udev/rules.d/80-net-setup-link.rules, donc les Documents en amont suggérer /etc/udev/rules.d/70-my-net-names.rules.

3
mattdm

Pour de mauvaises raisons, il semble que NetworkManager ait la priorité sur NetworkD (qui pourrait imaginer cela?). Vous pouvez tester cela comme suit:

  • systemctl stop NetworkManager
  • débranchez l'interface réseau
  • ip addr

Résultat: /etc/systemd/network/*.Link Les règles sont honorées

Si vous démarrez NetworkManager et répétez le test /etc/systemd/network/*.Link n'est plus honoré. J'ai testé cela avec le MACAddressPolicy=random directive

2
Anthony Hunt