美文网首页
Centos 7 中网卡重命名及网乱序解决方案

Centos 7 中网卡重命名及网乱序解决方案

作者: 王伟杰 | 来源:发表于2016-11-10 10:16 被阅读4221次

    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 可提取出网卡名称相关的配置文件:

    1. /usr/lib/udev/rules.d/60-net.rules
    2. /usr/lib/udev/rules.d/71-biosdevname.rules
    3. /lib/udev/rules.d/75-net-description.rules
    4. /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.rules71-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=****
    

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

    测试结果

    biosdevname net.ifnames 网卡名称
    1 1 eth-conifg
    1 0 eth-config
    0 1 eth-config
    0 0 eth-config

    2. 网卡乱序测试

    测试用例

    1. 分别配置 6 个接口的配置文件的 DEVICEHWADDR
    2. 在 1 的条件下, 修改biosdevname=1net.ifnames=1。 重启 5 次 查看网卡名称是否与 ifcfg-* 配置的一样
    3. 在 1 的条件下, 修改biosdevname=0net.ifnames=0。 重启 5 次 查看网卡名称是否与 ifcfg-* 配置的一样

    测试结果

    biosdevname net.ifnames 网卡名称是否与 ifcfg-* 一样
    1 1
    0 0

    结论

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

    参考文档:

    1. udev 相关
    2. http://blog.sina.com.cn/s/blog_704836f40102w36n.html
    3. Linux – Biosdevname & net.ifnames
    4. redhat 7 网络设备命名(官方文档)

    相关文章

      网友评论

          本文标题:Centos 7 中网卡重命名及网乱序解决方案

          本文链接:https://www.haomeiwen.com/subject/xpatpttx.html