
我剛剛安裝了 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
對於嵌入在主機板上而非 PCI/PCI-x/PCIe 插槽中的網路卡,「一致」的網路設備名稱實際上是從系統 BIOS 提供的資訊中取得的。
引用戴爾的話,誰幫助開發了此功能:
系統 BIOS 透過 SMBIOS 類型 41 記錄向作業系統指示板載網路設備的順序。系統 BIOS 透過類型 9 記錄向作業系統提供「系統插槽資訊」。 biosdevname 使用 SMBIOS 類型 41 為板載網路設備建議名稱,並使用類型 9 記錄為 PCI 附加適配器建議新名稱。
換句話說,BIOS 決定哪個板載網卡是網卡 1,哪個是網卡 2。
因此,我懷疑您在安裝 CentOS 6 和安裝 Fedora 21 之間的某個時刻進行了系統 BIOS 更新。
另請注意,與 RHEL/CentOS 6 相比,RHEL/CentOS 7 和 Fedora 中名稱本身的結構已變更。
在EL6中,嵌入式 NIC 以em
和 數字開頭,擴充卡上的 NIC 以 開頭,p
隨後是總線、插槽和功能。這是最初的biosdevname 功能。
在 Fedora 和 RHEL 7 中biosdevname 已替換為原生系統支援,且設備命名方案有改變了。所有有線 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
擴充卡上的網路卡(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