网络接口重命名的步骤(for centos7):
1、在/usr/lib/udev/rules.d/60-net.rules中的rule会指示 /lib/udev/rename_device去调查/etc/sysconfig/network-scripts/ifcfg-suffix 文件。如果发现一个ifcfg-suffix文件带有和一个接口的MAC地址相匹配的HWADDR选项,就会将该端口直接重命名为ifcfg-suffix文件中的DEVICE选项的值。
2、在/usr/lib/udev/rules.d/71-biosdevname.rules文件中的rule会指示biosdevname 按照biosdevname的命名策略去对网络接口进行重命名。使用biosdevname进行重命名的前提是biodevname被安装,同时内核启动参数中不包含 biosdevname=0 启动参数。
3、在/lib/udev/rules.d/75-net-description.rules文件中的rule指示udev通过检查完了过接口填充内部udev设备属性值ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH, ID_NET_NAME_MAC 。
4、在/usr/lib/udev/rules.d/80-net-name-slot.rules文件中的rule会指示udev给端口重命名, 仅限于第一步和第二步未被重命名的端口且不存在net.ifnames=0内核启动参数, 按照下面的优先级顺序进行重命名: ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH. 如果优先级高的未命名就转向优先级list中的下一个,如果上面没有一个被重命名,则保持原来的名字不变。
网络接口重命名的步骤(for centos8) :
1、在/usr/lib/udev/rules.d/60-net.rules中的rule会指示 /lib/udev/rename_device去调查/etc/sysconfig/network-scripts/ifcfg-suffix 文件。如果发现一个ifcfg-suffix文件带有和一个接口的MAC地址相匹配的HWADDR选项,就会将该端口直接重命名为ifcfg-suffix文件中的DEVICE选项的值。
2、在/usr/lib/udev/rules.d/71-biosdevname.rules文件中的rule会指示biosdevname 按照biosdevname的命名策略去对网络接口进行重命名。使用biosdevname进行重命名的前提是biodevname被安装,同时内核启动参数中不包含 biosdevname=0 启动参数。
3、在/lib/udev/rules.d/75-net-description.rules文件中的rule指示udev通过检查完了过接口填充内部udev设备属性值ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH, ID_NET_NAME_MAC 。
4、/usr/lib/udev/rules.d/80-net-setup-link.rules文件中的udev 会应用存储在/usr/lib/systemd/network/99-default.link文件中的policy:
如果内核使用一致端口命名方式,udev不可以重命名网络端口。如果内核不使用一致端口命名方式,udev 重命名为udev硬件数据库里提供的名字。如果数据库不可用,返回上面描述的方式命名。 可选的,可以将mac参数添加到NamePolicy用于基于网卡的MAC地址对网路端口进行重命名。
5、/usr/lib/udev/rules.d/80-net-setup-link.rules文件定义了基于下面的命名顺序给网络端口重命名:
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
注意: 网络端口一致性命名还受到systemd版本的细微影响,我们可以通过net.naming-scheme=[v238/v239/.../v251] 内核启动参数选择对应systemd版本的命名方法。
一致性网络端口命名规则默认层级介绍即默认biosdevname=0, net.ifnames=1时如何给网卡命名:
Scheme 1: 根据Firmware或者 BIOS提供的板载设备的 index numbers命名(如: eno1),否则转向scheme 2.
Scheme 2: 根据Firmware或者BIOS提供的PCIe热插拔槽位的index numbers命名 (如: ens1),否则转向scheme 3.
Scheme 3: 根据硬件连接器(如:riser卡)的物理位置命名(如: enp2s0),,否则转向scheme 5.
Scheme 4: 根据网络端口的MAC地址命名(如: enx78e7d1ea46da),默认不可用,如果用户选择这种方式也是可以用的。
Scheme 5: 传统不可预测内核命名机制被使用,当所有其他命名方式失败的时候 (如: eth0).