以后版本网卡命名规则
?
一、設備命名標準?
參考:?
官方文檔第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、重啟系統。
當需要將內容發布到公網時,通過專業的海外專線服務,可將網絡數據內容,直接接入自制域骨干網中,為數據內容提供大量訪問流量,保障內容能在覆蓋范圍更廣的互聯網內實現更有效、更穩定地傳播。
總結
以上是生活随笔為你收集整理的以后版本网卡命名规则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 丝印AENA16SOT-23封装是什么芯
- 下一篇: 硬盘三步操作( 分区、格式化、挂载)