1. udev 网卡规则加载顺序

1.1 udev 配置文件

路径

作用

/lib/udev/rules.d

包含 udev 默认配置文件(不要修改)

/etc/udev/rules.d/*.rules

包含 udev 自定义 配置文件

/dev/.udev/rules.d/*.rules

包含 udev 临时配置文件(不要修改)

1.2 udev 网卡规则文件及顺序

从 /lib/udev/rules.d 可提取出网卡名称相关的配置文件:

/usr/lib/udev/rules.d/60-net.rules

/usr/lib/udev/rules.d/71-biosdevname.rules

/lib/udev/rules.d/75-net-description.rules

/usr/lib/udev/rules.d/80-net-name-slot.rules

60-net.rules

使用/lib/udev/rename_device这个程序,去查询/etc/sysconfig/network-scripts/下所有以ifcfg-开头的文件

如果在ifcfg-xx中匹配到HWADDR=xx:xx:xx:xx:xx:xx参数的网卡接口

则选取DEVICE=yyyy中设置的名字作为网卡名称。

71-biosdevname.rules

如果系统中安装了biosdevname,且内核参数未指定biosdevname=0,且上一步没有重命名网卡,则按照biosdevname的命名规范,从BIOS中取相关信息来命名网卡。

主要是取SMBIOS中的type 9 (System Slot) 和 type 41 (OnboardDevices Extended Information)

不过要求SMBIOS的版本要高于2.6,且系统中要安装biosdevname程序。

75-net-description.rules

udev通过检查网卡信息,填写如下这些udev的属性值

ID_NET_NAME_ONBOARD

ID_NET_NAME_SLOT

ID_NET_NAME_PATH

ID_NET_NAME_MAC

80-net-name-slot.rules

如果在60-net.rules ,71-biosdevname.rules这两条规则中没有重命名网卡,且内核未指定net.ifnames=0参数

则udev依次尝试使用以下属性值来命名网卡,如果这些属性值都没有,则网卡不会被重命名。

ID_NET_NAME_ONBOARD

ID_NET_NAME_SLOT

ID_NET_NAME_PATH

2. 测试

2.1 测试环境

硬件:戴尔服务器

系统: Centos 7

千兆网卡:1,(4个接口)

万兆网卡:1(2个接口)

网卡 1 mac:00:0c:29:6e:8e:40

2.2 测试用例及结果

1 .网卡重命名测试

测试用例:修改网卡1 的配置文件,步骤为添加文件/etc/sysconfig/network-scripts/ifcfg-eth0

# filename: ifcfg-eth0

DEVICE="eth-config"

HWADDR=00:0c:29:6e:8e:40

TYPE="Ethernet"

ONBOOT="yes"

BOOTPROTO="static"

IPADDR=****

NETMASK=****

GATEWAY=****

在上面的条件下,分别使用不同只的 biosdevname和net.ifnames ,然后重启查看网卡名称

测试结果:

biosdevname

net.ifnames

网卡名称

1

1

eth-conifg

1

0

eth-config

0

1

eth-config

0

0

eth-config

2. 网卡乱序测试

测试用例:

分别配置 6 个接口的配置文件的 DEVICE 和 HWADDR

在 1 的条件下, 修改biosdevname=1 、net.ifnames=1。 重启 5 次 查看网卡名称是否与 ifcfg-* 配置的一样

在 1 的条件下, 修改biosdevname=0 、net.ifnames=0。 重启 5 次 查看网卡名称是否与 ifcfg-* 配置的一样

测试结果

biosdevname

net.ifnames

网卡名称是否与 ifcfg-* 一样

1

1

是

0

0

是

结论

在不修改 udev 规则的条件下,/etc/sysconfig/network-scripts/的 ifcfg-* 文件的优先最高。在ifcfg-*文件中将DEVICE 和 mac 绑定后重命名网卡名称和避免网卡乱序。

参考文档:

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐