Centos7以后版本网卡命名规则

  

<强>一、设备命名标准
参考:
官方文档第8章:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/ch-consistent_network_device_naming sec-Naming_Schemes_Hierarchy
部分信息参考博文:感谢!
Noway11: https://www.cnblogs.com/zyd112/p/8143464.html
王伟杰:https://www.jianshu.com/p/b66981dbb389

  

Centos7以前版本的Centost系统对网卡命令采用了传统的命令标准,如eth0, eth2,个人是理解eth标识了网卡的链路层封装类型,后面的数字就是网卡编号了,但这个编号可不是一成不变的,如果服务器增加或删除新硬件就可能会发生变化,为运维工作多少带来了一些麻烦,为了解决这个问题Centos7以后版本引入了新的网络设备命名规范:一致网络设备命名(一致的网络设备命名),Centos7以后支持biosdevname和net.ifnames两种命名规范。

  

<强> 1. net.ifnames命名规范为:设备类型+设备位置+端口号

  

设备类型:en代表以太网,王代表无线局域网(WLAN), ww代表无线广域网(无线广域网)。
设备位置:集成设备的设备索引编号,或扩展卡所在总线槽位编号
端口号:板载集成设备索引编号或扩展卡上的物理端口编号

  

<强>设备名称类型

           格式   说明               三、   板载设备索引号         ens33   热插拔插槽索引号            

<强>举例:

           名称   设备类型   说明               三、   板载网卡   板载1号网卡         enp0s2   pci网卡   PCI扩展卡的2号端口         ens33   pci网卡   热插拔插槽3号PCI-E插槽的3号端口         wlp3s0   PCI无线网卡   第3号PCI扩展卡的0号端口            

<强> 2. biosdevname命名规范

  

Centos系统需要安装biosdevname程序包才可以使用biosdevname命名规范,biosdevname程序读取BIOS信息中9的类型(系统插槽)和41型(板载设备扩展信息)两个字段信息来命名网卡。(要求SMBIOS的版本要高于2.6)

           设备   旧名称   新名称   例               板载内置网卡   乙(0123…)   em (1234…)   em1         PCI扩展卡网络接口   乙(0123…)   p p【槽位号】【端口号】   p3p4         子接口虚拟功能   乙(0123…)   p p【槽位号】【端口号】_【子接口号】   p3p4_1            

<强>二,系统默认的网卡命名规则

  

官方文档命名规则描如下:
默认情况下,systemd会使用以下策略,采用支持的命名方案为接口命名:

  

方案1:如果固件或BIOS信息适用且可用,则使用整合了为板载设备提供索引号的固件或BIOS的名称(例如:三、),否则请使用方案2。(针对的是板载集成网卡命名)

  

方案2:如果固件或BIOS信息适用且可用,则使用整合了为PCI快速热插拔插槽提供索引号的固件或BIOS名称(例如ens1),否则请使用方案3。(针对的是PCI-E扩展网卡针命名标准)

  

方案3:如果硬件连接器物理位置信息可用,则使用整合了该信息的名称(例如:enp2s0),否则请使用方案5 .

  

方案4:默认不使用整合接口MAC地址的名称(例如:enx78e7d1ea46da),但用户可选择使用此方案。(根据MAC地址命名网卡)

  

方案5:传统的不可预测的内核命名方案,在其他方法均失败后使用(例如:eth0)(以上命令信息都无法获取时则采用传统的命令规则)

  

这个策略(如上所述)是默认策略。如果该系统已启用biosdevname,则会使用该方案。注:启用biosdevname需要添加biosdevname=1作为命令行参数(戴尔系统除外),此时只要安装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文件中由设备指令给出的名称。

  

2./usr/lib/udev/rules.d/71 - biosdevname.rules中的规则让biosdevname根据其命名策略重命名该接口,即在上一步中没有重命名该接口,已安装biosdevname,且在引导命令行中将biosdevname=0作为内核命令给出。

Centos7以后版本网卡命名规则