Ich möchte unter Fedora 22 eine von systemd-networkd (Version 219) verwaltete Netzwerkschnittstelle vom systemseitig zugewiesenen Namen enp2s0
in umbenennen wan
. Dazu habe ich die folgende Datei erstellt /etc/systemd/network/80-wan.link
:
[Match]
MACAddress=mac-address
[Link]
Name=wan
Das hat jedoch keine Auswirkungen auf das System. Nach dem Neustart ist der Name immer noch enp2s0
. Ich sehe damit udevadm
, dass udev die Datei zur Konfiguration übernommen hat, aber den angegebenen Namen ignoriert hat:
~> 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
Außerdem wird der neue Name wan
in keinem Protokoll erwähnt, auch nicht nach der Aktivierung der udev-Debugausgabe. Was mache ich falsch?
Antwort1
Zumindest bei Debian Stretch scheint es so, als müssten Sie die Dateien update-initramfs -u && reboot
einfügen , damit die vorhandenen Schnittstellen wirksam werden.*.link
/etc/systemd/network/
Es scheint, als würden die Netzwerkschnittstellen sehr früh während des Bootvorgangs innerhalb des initramfs umbenannt, bevor die *.link
Dateien /etc/systemd/network
verfügbar sind... und sobald die Schnittstelle einmal umbenannt wurde ( /sys/class/net/*/name_assign_type=4
), dann dieudev-builtin-net_setup_link
wird nicht längeremittierenID_NET_NAME
Weil should_rename
kehrt zurückfalse
.
Antwort2
Verwenden Sie systemd-networkd
? Ich denke, die .link
Dateien sind nur relevant, wenn Sie dies tun (anstelle des Standard-NetworkManagers oder älterer Initscripts). (Ich gebe allerdings zu, dass ich mich noch nicht eingehend damit befasst habe.)
Ich denke, was Sie wollen, ist eine .rules
Datei in /etc/udev/rules.d
, so etwas wie
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="mac-address", NAME="wan"
(wo mac-address
natürlich Ihre tatsächliche Hex-MAC-Adresse ist).
Diese Datei muss bestellt werdenVor /usr/lib/udev/rules.d/80-net-setup-link.rules
, also dieUpstream-Dokumentevorschlagen /etc/udev/rules.d/70-my-net-names.rules
.
Antwort3
Aus irgendwelchen Gründen scheint networkmanager Vorrang vor networkd zu haben (wer hätte das gedacht?). Sie können das wie folgt testen:
systemctl stop NetworkManager
- Trennen Sie die Netzwerkschnittstelle
ip addr
Ergebnis: Die Regeln für /etc/systemd/network/*.link werden eingehalten
Wenn Sie NetworkManager starten und den Test wiederholen, wird /etc/systemd/network/*.link nicht mehr berücksichtigt. Ich habe dies mit der MACAddressPolicy=random
Direktive getestet