Linux網卡命名


Linux 網卡命名

網卡編號

最近注意起了linux中網卡的命名有點意思,所以搜集了一下資料,記錄一下也供同樣困惑的朋友參考。說到網卡那么網絡設備肯定是首屈一指的,如下面的兩台交換機千兆和萬兆的,其命名也是非常的清楚明了,GE代表GigabitEthernet,XGE代表Ten-GigabitEthernet,編號命名也是按照-設備編號/板卡號/端口號命名的。

到了Linux這邊網卡編號是這樣的:

還有這樣的:

其實這兩台電腦是一樣的型號配置也幾乎一樣,但網卡的名非常不一樣,這明顯是系統的命名策略不一樣。其實后面這張圖片的命名方式已經被廢除或者說不推薦使用了,上面的圖中的命名方式叫Consistent Network Device Naming中文譯作一致網絡設備絡設備命名命名這個譯法出自Redhat官方文檔的這個鏈接

Consistent Network Device Naming/一致網絡設備絡設備命名命名

起初linux的命名方式就是eth0這樣的,益處顯而易見,統一的命名看起來舒服也直觀,但有個缺點就是eth后面的編號是按照系統加載或者發現設備的順序來分配的,這會導致有些時候網卡的命名不可預測,也缺乏對網卡具體信息的描述,比如eth4這個網卡其實是一個PCIE的萬兆光口網卡,但是卻和板載的千兆電口網卡eth0使用相同的命名規則,從網卡名字上無法直觀的看出。

后來DELL開發了一個叫biosdevname的方案,也就是前面提到的eno1等這樣的命名方式,規則為:

  • en代表Ethernet
  • wl代表無線網卡(WIFI)
  • ww代表無線廣域網卡(4G上網卡等)
  • eno中的o代表Onboard,即板載的意思,eno0這樣的為板載網卡
  • ens代表可熱插拔的網卡
  • enp中的p代表pci,也就是pcie網卡
  • enx/wlx是使用MAC地址命名的網卡

實例

我找了一台服務器加一台虛擬機查看常見的網卡命名。(設備型號為DELL R720 系統為Debian10,使用udev設備管理器,默認啟用了biosdevname的命名方案)

上圖網卡:

接口名字 解釋
lo 環回口
eno1 - eno4 板載千兆電口以太網
enp4s0f0 enp4s0f1 pci編號為4:0.0和4:0.1的以太網卡(此例中PCI編號f解釋為功能號感覺不妥,這是一塊雙口卡,兩個插口功能應該相同,雖然下圖lspci的輸出確實如此)注:PCI編號為16進制的
enp4s0f1.4 在enp4s0f1口上建立的虛擬口(vlan接口vlanID為4)
docker0 網橋(虛擬口,這台機器安裝了Docker,這是docker bridge網絡建立的bridge口)
vetheee66be@if13 veth-pair口(虛擬口)
enx00e04d462017 使用MAC地址命名的USB網卡(不過此處並看不出是USB的)
wlx60ee5c03ef4b 使用MAC地址命名的USB無線網卡(不過此處並看不出是USB的)

還有一種常見的命名為ens,按照文檔說明這種是可熱插拔PCI網卡,我的機器上面沒有這種,不過vmware虛擬機中的網卡是這樣的,如下圖:

命名優先級


從這張圖可以看出前四個為板載網卡,這四個網卡也是有PCI編號的,為什么沒有按照PCI網卡命名呢?其實每種網卡都有多種命名方案,最起碼都可以按照mac地址命名。這里直接引用Redhat的文檔 ,以此為順序在系統初始化時候進行命名。

中文版

英文版

使用udevadmin info /sys/class/net/xx 來查看,ID_NET_NAME開頭的就是備選的命名方案,可以看到網卡的多種命名方案:

參考:

Red Hat Enterprise Linux Networking Guide
講干貨----centos7 網卡命名規則詳解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM