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
また、udevデバッグ出力をアクティブにした後でも、ログに新しい名前wan
についての言及はありません。私は何を間違っていますか?
少なくとも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
はなくなります emit ID_NET_NAME
becauseshould_rename
false
を返します。
使っていますか systemd-networkd
?私は思います .link
ファイルは、(デフォルトのNetworkManagerまたはレガシーinitscriptsの代わりに)関係がある場合にのみ関連します。 (ただし、まだ詳しく調べていません。)
あなたが欲しいのは.rules
ファイル/etc/udev/rules.d
、 何かのようなもの
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="mac-address", NAME="wan"
(どこ mac-address
はもちろん、実際の16進数のMACアドレスです。
このファイルは順序付けする必要がありますbefore/usr/lib/udev/rules.d/80-net-setup-link.rules
、つまり pstream docs を提案/etc/udev/rules.d/70-my-net-names.rules
。
いくつかの悪い理由で、networkmanagerはnetworkd(誰がそれを想像できるでしょうか?)よりも優先されているようです。これは次のようにテストできます。
systemctl stop NetworkManager
ip addr
結果:/etc/systemd/network/*.linkルールが受け入れられます
NetworkManagerを起動してテストを繰り返すと、/ etc/systemd/network/*。linkは無視されます。これをMACAddressPolicy=random
ディレクティブでテストしました