以后版本网卡命名规则

 

一、设备命名标准 
参考: 
官方文档第8章:ch-consistent_network_device_naming NETWORK DEVICE NAMING),Centos7以后支持biosdevname和net.ifnames两种命名规范。 
1.net.ifnames命名规范为:设备类型+设备位置+端口号 
设备类型:en 代表以太网,wl 代表无线局域网(WLAN),ww 代表无线广域网(WWAN)。 
设备位置:集成设备的设备索引编号 ,或扩展卡所在总线槽位编号 
端口号:板载集成设备索引编号或扩展卡上的物理端口编号 
设备名称类型 
格式说明eno1板载设备索引号ens33热插拔插槽索引号举例: 
名称设备类型说明eno1板载网卡板载1号网卡enp0s2pci网卡PCI扩展卡的2号端口ens33pci网卡热插拔插槽3号PCI-E插槽的3号端口wlp3s0PCI无线网卡第3号PCI扩展卡的0号端口2.biosdevname命名规范 
Centos系统需要安装biosdevname程序包才可以使用biosdevname命名规范,biosdevname程序读取BIOS信息中的type 9(系统插槽)和 type 41(板载设备扩展信息)两个字段信息来命名网卡。(要求SMBIOS的版本要高于2.6) 
设备旧名称新名称例板载内置网卡eth[0123…]em[1234…]em1PCI扩展卡网络接口eth[0123…]p【槽位号】p【端口号】p3p4子接口虚拟功能eth[0123…]p【槽位号】p【端口号】_【子接口号】p3p4_1二、系统默认的网卡命名规则 
官方文档命名规则描如下: 
默认情况下,systemd 会使用以下策略,采用支持的命名方案为接口命名: 
方案 1:如果固件或 BIOS 信息适用且可用,则使用整合了为板载设备提供索引号的固件或 BIOS 的名称(例如:eno1),否则请使用方案 2。(针对的是板载集成网卡命名) 
方案 2:如果固件或 BIOS 信息适用且可用,则使用整合了为 PCI 快速热插拔插槽提供索引号的固件或 BIOS 名称(例如 ens1),否则请使用方案 3。(针对的是PCI-E扩展网卡针命名标准) 
方案 3:如果硬件连接器物理位置信息可用,则使用整合了该信息的名称(例如:enp2s0),否则请使用方案 5。 
方案 4:默认不使用整合接口 MAC 地址的名称(例如:enx78e7d1ea46da),但用户可选择使用此方案。(根据MAC地址命名网卡) 
方案 5:传统的不可预测的内核命名方案,在其他方法均失败后使用(例如: eth0)(以上命令信息都无法获取时则采用传统的命令规则) 
这个策略(如上所述)是默认策略。如果该系统已启用 biosdevname,则会使用该方案。注:启用 biosdevname 需要添加 biosdevname=1 作为命令行参数(Dell 系统除外),此时只要安装 biosdevname,就会默认使用该方案。如果用户已添加 udev 规则,该规则会更高内核设备名称,则会优先使用这些规则 
三、设备重命名策略 
关于设备重命名官方的文档做了如下阐述: 
1./usr/lib/udev/rules.d/60-net.rules 文件中的规则会让 udev 帮助工具 /lib/udev/rename_device 查看所有 /etc/sysconfig/network-scripts/ifcfg-suffix 文件。如果发现包含 HWADDR 条目的 ifcfg 文件与某个接口的 MAC 地址匹配,它会将该接口重命名为 ifcfg 文件中由 DEVICE 指令给出的名称。 
2./usr/lib/udev/rules.d/71-biosdevname.rules 中的规则让 biosdevname 根据其命名策略重命名该接口,即在上一步中没有重命名该接口、已安装 biosdevname、且在 boot 命令行中将 biosdevname=0 作为内核命令给出。 
3./lib/udev/rules.d/75-net-description.rules 中的规则让 udev 通过检查网络接口设备,填写内部 udev 设备属性值 ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。注:有些设备属性可能处于未定义状态。 
4./usr/lib/udev/rules.d/80-net-name-slot.rules 中的规则让 udev 重命名该接口,优先顺序如下:ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。并提供如下信息:没有在步骤 1 或 2 中重命名该接口,同时未给出内核参数 net.ifnames=0。如果一个参数未设定,则会按列表的顺序设定下一个。如果没有设定任何参数,则不会重命名该接口。 
从官方的阐述来看1,3,4都与系统systemd udev命名规则有关,2与biosdevname有关,个人理解四个文件的用途如下: 
1./usr/lib/udev/rules.d/60-net.rules (rename_device程序基于自定义配置文件命名) 
如果在目录/etc/sysconfig/network-scripts/中有以ifcfg-开头的文件,并且其中包含了指定网卡的MAC,则以ifcfg文件中的DEVICE字段给写的名称命名。 
2./usr/lib/udev/rules.d/71-biosdevname.rules(biosdevname基于BIOS信息自动命名) 
如果ifcfg开头的文件中找不到对应的配置,则看系统是否安装了biosdevname程序包,并且系统未设备参数biosdevname=0,则按biosdevname命名标准为网卡命名。 
3./lib/udev/rules.d/75-net-description.rules(systemd-udev基于systemd-udev基于网卡信息命名) 
如果1,2两条规则都没有命中则查看网卡信息,基于网卡信息指定的字段命名。 
4./usr/lib/udev/rules.d/80-net-name-slot.rules(systemd-udev基于systemd-udev基于BIOS信息命名) 
网卡信息都没有指定的字段,则按BIOS获取的板载槽位信息命名。 
总结:自定义配置的优先级、其次是biosdevname、最后是systemd-udev自动配置 
四、恢复网卡传统命名标准 
从以上命名策略与命名规则来看,响应网卡命名的应该就是受biosdevname、net.ifnames两个参数影响,官方也给出两个参数的默认值:iosdevname=0是系统默认值(dell服务器默认是1),net.ifnames=1是系统默认值 
如果想恢复以前的传统命名规范则只需要在grub文件中将两个参数设置为0即可,具体操作过程如下: 
1.编辑/etc/sysconfig/grub文件,在GRUB_CMDLINE_LINUX字段最后添加net.ifnames=0 biosdevname=0 
2.重新生成配置文件grub配置文件,执行如下命名 
grub2-mkconfig -o /boot/grub2/grub.cfg 
3.手动编辑/etc/sysconfig/network-scripts/目录下的ifcf-开头的文件,注意:HWADDR字段要与待命名的网卡MAC地址对应,或者UUID字段与网卡的UUID对应也可以。 
4、重启系统。

当需要将内容发布到公网时,通过专业的海外专线服务,可将网络数据内容,直接接入自制域骨干网中,为数据内容提供大量访问流量,保障内容能在覆盖范围更广的互联网内实现更有效、更稳定地传播。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值