如何自定义 NIC 名称
使用 systemd 链接文件
你可以创建一个包含 Ignition 配置的 systemd 链接文件。
例如,要将 MAC 地址为 "12:34:56:78:9a:bc "的网卡命名为 "infra",可使用下图所示的 Butane 配置片段在"/etc/systemd/network/25-infra.link "中放置 systemd 链接文件:
示例:通过 systemd 链接文件自定义NIC
variant: fcos
version: 1.5.0
storage:
files:
- path: /etc/systemd/network/25-infra.link
mode: 0644
contents:
inline: |
[Match]
MACAddress=12:34:56:78:9a:bc
[Link]
Name=infra
使用 Udev 规则
同样,要通过 Ignition 配置将 MAC 地址为 "12:34:56:78:9a:bc "的网卡命名为 "infra",请使用下图所示的 Butane 配置片段在 /etc/udev/rules.d/80-ifname.rules
中创建 udev规则:
示例:通过 Udev 规则自定义 NIC
variant: fcos
version: 1.5.0
storage:
files:
- path: /etc/udev/rules.d/80-ifname.rules
mode: 0644
contents:
inline: |
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="12:34:56:78:9a:bc", ATTR{type}=="1", NAME="infra"
通过内核参数在 Initramfs 中联网
如果需要在 initramfs 中联网,内核参数 ifname=
将动态创建一条 udev 规则来更改网卡名称。
目前,与 initramfs 中网络配置的其他部分(如静态 IP、主机名等)不同,这些 udev 规则不会持久存在实际根目录中。如果需要将自定义名称应用到实际根目录,则必须创建链接文件或 udev 规则,如上所示。详见 这个讨论。
例如,要给 MAC 地址为 "12:34:56:78:9a:bc "的网卡命名为 "infra",需要提供一个 "ifname=infra:12:34:56:78:9a:bc "内核参数。就会在 initramfs 中创建一个类似的 udev 规则:
# cat /etc/udev/rules.d/80-ifname.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="12:34:56:78:9a:bc", ATTR{type}=="1", NAME="infra"
Want to help? Learn how to contribute to Fedora Docs ›