我刚刚安装了 Fedora 21 Workstation 系统,它颠倒了之前的 CentOS 6 系统的eno1
顺序。eno2
lspci | grep Eth
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
00:19.0
的 MAC 地址以 结尾:4f
,而03:00.0
以 结尾:50
。
我的理解是,如果 PCI 地址较低,:4f
则会变成eno1
,但实际上它认为:50
是eno1
。
这是什么原因呢?我是否应该接受 Fedora 21 系统的顺序与 CentOS 6 相反?(我们部署了数十个这样的系统。)
答案1
对于主板上嵌入的 NIC,而不是 PCI/PCI-x/PCIe 插槽中的 NIC,“一致的”网络设备名称实际上是从系统 BIOS 提供的信息中获取的。
引用戴尔的话,帮助开发此功能的人:
系统 BIOS 通过 SMBIOS 类型 41 记录向操作系统指示板载网络设备的顺序。系统 BIOS 通过类型 9 记录向操作系统提供“系统插槽信息”。biosdevname 使用 SMBIOS 类型 41 为板载网络设备建议名称,并使用类型 9 记录为 PCI 附加适配器建议新名称。
换句话说,BIOS 决定哪个板载 NIC 是 NIC 1,哪个是 NIC 2。
因此,我怀疑您在安装 CentOS 6 和安装 Fedora 21 之间的某个时间点进行了系统 BIOS 更新。
另请注意,与 RHEL/CentOS 6 相比,RHEL/CentOS 7 和 Fedora 中名称本身的结构发生了变化。
在 EL6 中,嵌入式 NIC 以em
和数字开头,扩展卡上的 NIC 以 开头,p
后跟总线、插槽和功能。这是原始 biosdevname 功能。
在 Fedora 和 RHEL 7 中biosdevname 已被替换为原生 systemd 支持,并且设备命名方案已更改所有有线 NIC 都以 开头en
,板载 NIC 以 和o
数字结尾,而扩展卡上的 NIC 以p
、总线编号、s
、插槽编号以及可选的f
和功能编号结尾。
(但是,如果您从 EL6 升级到 EL7,旧式名称将保留。)
您将在我的系统中看到以下示例:
板载 NIC(在 Dell PowerEdge 中):
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 54:9f:35:17:f4:32 brd ff:ff:ff:ff:ff:ff
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 54:9f:35:17:f4:34 brd ff:ff:ff:ff:ff:ff
扩展卡上的 NIC(在 SuperMicro 产品中):
2: enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 0c:c4:7a:45:b8:d2 brd ff:ff:ff:ff:ff:ff
3: enp3s0f1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 0c:c4:7a:45:b8:d3 brd ff:ff:ff:ff:ff:ff