Fedora 22 で、systemd-networkd (バージョン 219) によって管理されるネットワーク インターフェイスの名前を、システム割り当て名から に変更したいと考えていますenp2s0
。wan
そのために、次のファイルを作成しました/etc/systemd/network/80-wan.link
。
[Match]
MACAddress=mac-address
[Link]
Name=wan
ただし、システムには影響しません。再起動後も名前は のままです。udevは設定用のファイルを取得したが、指定された名前は無視したenp2s0
ことがわかります。udevadm
~> 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
また、udev デバッグ出力を有効にした後でも、どのログにも新しい名前は記載されませんwan
。何が間違っているのでしょうか?
答え1
少なくとも Debian Stretch では、既存のインターフェースを有効にするには、ファイルupdate-initramfs -u && reboot
を読み込む必要があるようです。*.link
/etc/systemd/network/
*.link
ネットワークインターフェースは、initramfs内のファイルが利用可能になる前に、起動時に非常に早い段階で名前が変更されるようです/etc/systemd/network
...そしてインターフェースが一度名前変更されると(/sys/class/net/*/name_assign_type=4
)、udev-builtin-net_setup_link
もう放出するID_NET_NAME
なぜなら should_rename
戻り値false
。
答え2
を使用していますかsystemd-networkd
? 使用している場合にのみ、これらのファイルが関係すると思います.link
(デフォルトの NetworkManager または従来の initscripts ではなく)。 (ただし、まだ詳しく調べていないことは認めます。)
必要なのは、次のような.rules
ファイルだと思います。/etc/udev/rules.d
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="mac-address", NAME="wan"
(mac-address
もちろん、実際の 16 進 MAC アドレスはどこにありますか)。
このファイルは注文が必要です前に /usr/lib/udev/rules.d/80-net-setup-link.rules
、だからアップストリームドキュメント提案する/etc/udev/rules.d/70-my-net-names.rules
。
答え3
何らかの悪い理由により、networkmanager が networkd よりも優先されるようです (誰がそんなことを想像できたでしょうか?)。次のようにしてこれをテストできます。
systemctl stop NetworkManager
- ネットワークインターフェースを外す
ip addr
結果: /etc/systemd/network/*.link ルールが尊重される
NetworkManagerを起動してテストを繰り返すと、/etc/systemd/network/*.linkは無視されます。私はこれを次のMACAddressPolicy=random
ディレクティブでテストしました。