如何自定义NIC名称

使用SYSTEM D链接文件

您可以创建一个系统 链接文件 使用Ignition配置。

例如,使用MAC地址命名NIC 12:34:56:78:9a:bc 若要“下一步”,请将一个系统链接文件放在 /etc/systemd/network/25-infra.link 使用 Butane 如下所示的配置代码片段:

示例:通过系统链接文件自定义网卡
variant: fcos
version: 1.4.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地址命名NIC 12:34:56:78:9a:bc 为了“下一步”,创建一个 UDEV规则 在… /etc/udev/rules.d/80-ifname.rules 使用 Butane 如下所示的配置代码片段:

示例:通过Udev规则自定义NIC
variant: fcos
version: 1.4.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"'

通过内核参数实现Initramf中的联网

如果需要在initramf中联网,则内核参数 ifname= 将动态创建udev规则以更改NIC的名称。

目前,与initramf中的网络配置的其他部分(例如静态IP、主机名等)不同,这些udev规则不会持久保存到真正的根目录中。如果需要将自定义名称应用于实际根目录,则必须创建链接文件或udev规则,如上所示。看见 这一期 了解更多详细信息。

例如,为NIC提供MAC地址 12:34:56:78:9a:bc 名为“infra”,提供 ifname=infra:12:34:56:78:9a:bc 内核参数。Udev规则将在initramf中创建,如下所示:

# 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"