以后版本網(wǎng)卡命名規(guī)則

一、設(shè)備命名標(biāo)準(zhǔn)?
參考:?
官方文檔第8章:ch-consistent_network_device_naming NETWORK DEVICE NAMING),Centos7以后支持biosdevname和net.ifnames兩種命名規(guī)范。?
1.net.ifnames命名規(guī)范為:設(shè)備類型+設(shè)備位置+端口號(hào)?
設(shè)備類型:en?代表以太網(wǎng),wl?代表無(wú)線局域網(wǎng)(WLAN),ww?代表無(wú)線廣域網(wǎng)(WWAN)。?
設(shè)備位置:集成設(shè)備的設(shè)備索引編號(hào)?,或擴(kuò)展卡所在總線槽位編號(hào)?
端口號(hào):板載集成設(shè)備索引編號(hào)或擴(kuò)展卡上的物理端口編號(hào)?
設(shè)備名稱類型?
格式說明eno1板載設(shè)備索引號(hào)ens33熱插拔插槽索引號(hào)舉例:?
名稱設(shè)備類型說明eno1板載網(wǎng)卡板載1號(hào)網(wǎng)卡enp0s2pci網(wǎng)卡PCI擴(kuò)展卡的2號(hào)端口ens33pci網(wǎng)卡熱插拔插槽3號(hào)PCI-E插槽的3號(hào)端口wlp3s0PCI無(wú)線網(wǎng)卡第3號(hào)PCI擴(kuò)展卡的0號(hào)端口2.biosdevname命名規(guī)范?
Centos系統(tǒng)需要安裝biosdevname程序包才可以使用biosdevname命名規(guī)范,biosdevname程序讀取BIOS信息中的type 9(系統(tǒng)插槽)和?type 41(板載設(shè)備擴(kuò)展信息)兩個(gè)字段信息來(lái)命名網(wǎng)卡。(要求SMBIOS的版本要高于2.6)?
設(shè)備舊名稱新名稱例板載內(nèi)置網(wǎng)卡eth[0123…]em[1234…]em1PCI擴(kuò)展卡網(wǎng)絡(luò)接口eth[0123…]p【槽位號(hào)】p【端口號(hào)】p3p4子接口虛擬功能eth[0123…]p【槽位號(hào)】p【端口號(hào)】_【子接口號(hào)】p3p4_1二、系統(tǒng)默認(rèn)的網(wǎng)卡命名規(guī)則?
官方文檔命名規(guī)則描如下:?
默認(rèn)情況下,systemd?會(huì)使用以下策略,采用支持的命名方案為接口命名:?
方案?1:如果固件或?BIOS?信息適用且可用,則使用整合了為板載設(shè)備提供索引號(hào)的固件或?BIOS?的名稱(例如:eno1),否則請(qǐng)使用方案?2。(針對(duì)的是板載集成網(wǎng)卡命名)?
方案?2:如果固件或?BIOS?信息適用且可用,則使用整合了為?PCI?快速熱插拔插槽提供索引號(hào)的固件或?BIOS?名稱(例如?ens1),否則請(qǐng)使用方案?3。(針對(duì)的是PCI-E擴(kuò)展網(wǎng)卡針命名標(biāo)準(zhǔn))?
方案?3:如果硬件連接器物理位置信息可用,則使用整合了該信息的名稱(例如:enp2s0),否則請(qǐng)使用方案?5。?
方案?4:默認(rèn)不使用整合接口?MAC?地址的名稱(例如:enx78e7d1ea46da),但用戶可選擇使用此方案。(根據(jù)MAC地址命名網(wǎng)卡)?
方案?5:傳統(tǒng)的不可預(yù)測(cè)的內(nèi)核命名方案,在其他方法均失敗后使用(例如:?eth0)(以上命令信息都無(wú)法獲取時(shí)則采用傳統(tǒng)的命令規(guī)則)?
這個(gè)策略(如上所述)是默認(rèn)策略。如果該系統(tǒng)已啟用?biosdevname,則會(huì)使用該方案。注:?jiǎn)⒂?biosdevname?需要添加?biosdevname=1?作為命令行參數(shù)(Dell?系統(tǒng)除外),此時(shí)只要安裝?biosdevname,就會(huì)默認(rèn)使用該方案。如果用戶已添加?udev?規(guī)則,該規(guī)則會(huì)更高內(nèi)核設(shè)備名稱,則會(huì)優(yōu)先使用這些規(guī)則?
三、設(shè)備重命名策略?
關(guān)于設(shè)備重命名官方的文檔做了如下闡述:?
1./usr/lib/udev/rules.d/60-net.rules?文件中的規(guī)則會(huì)讓?udev?幫助工具?/lib/udev/rename_device?查看所有?/etc/sysconfig/network-scripts/ifcfg-suffix?文件。如果發(fā)現(xiàn)包含?HWADDR?條目的?ifcfg?文件與某個(gè)接口的?MAC?地址匹配,它會(huì)將該接口重命名為?ifcfg?文件中由?DEVICE?指令給出的名稱。?
2./usr/lib/udev/rules.d/71-biosdevname.rules?中的規(guī)則讓?biosdevname?根據(jù)其命名策略重命名該接口,即在上一步中沒有重命名該接口、已安裝?biosdevname、且在?boot?命令行中將?biosdevname=0?作為內(nèi)核命令給出。?
3./lib/udev/rules.d/75-net-description.rules?中的規(guī)則讓?udev?通過檢查網(wǎng)絡(luò)接口設(shè)備,填寫內(nèi)部?udev?設(shè)備屬性值?ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。注:有些設(shè)備屬性可能處于未定義狀態(tài)。?
4./usr/lib/udev/rules.d/80-net-name-slot.rules?中的規(guī)則讓?udev?重命名該接口,優(yōu)先順序如下:ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。并提供如下信息:沒有在步驟?1?或?2?中重命名該接口,同時(shí)未給出內(nèi)核參數(shù)?net.ifnames=0。如果一個(gè)參數(shù)未設(shè)定,則會(huì)按列表的順序設(shè)定下一個(gè)。如果沒有設(shè)定任何參數(shù),則不會(huì)重命名該接口。?
從官方的闡述來(lái)看1,3,4都與系統(tǒng)systemd udev命名規(guī)則有關(guān),2與biosdevname有關(guān),個(gè)人理解四個(gè)文件的用途如下:?
1./usr/lib/udev/rules.d/60-net.rules?(rename_device程序基于自定義配置文件命名)?
如果在目錄/etc/sysconfig/network-scripts/中有以ifcfg-開頭的文件,并且其中包含了指定網(wǎng)卡的MAC,則以ifcfg文件中的DEVICE字段給寫的名稱命名。?
2./usr/lib/udev/rules.d/71-biosdevname.rules(biosdevname基于BIOS信息自動(dòng)命名)?
如果ifcfg開頭的文件中找不到對(duì)應(yīng)的配置,則看系統(tǒng)是否安裝了biosdevname程序包,并且系統(tǒng)未設(shè)備參數(shù)biosdevname=0,則按biosdevname命名標(biāo)準(zhǔn)為網(wǎng)卡命名。?
3./lib/udev/rules.d/75-net-description.rules(systemd-udev基于systemd-udev基于網(wǎng)卡信息命名)?
如果1,2兩條規(guī)則都沒有命中則查看網(wǎng)卡信息,基于網(wǎng)卡信息指定的字段命名。?
4./usr/lib/udev/rules.d/80-net-name-slot.rules(systemd-udev基于systemd-udev基于BIOS信息命名)?
網(wǎng)卡信息都沒有指定的字段,則按BIOS獲取的板載槽位信息命名。?
總結(jié):自定義配置的優(yōu)先級(jí)、其次是biosdevname、最后是systemd-udev自動(dòng)配置?
四、恢復(fù)網(wǎng)卡傳統(tǒng)命名標(biāo)準(zhǔn)?
從以上命名策略與命名規(guī)則來(lái)看,響應(yīng)網(wǎng)卡命名的應(yīng)該就是受biosdevname、net.ifnames兩個(gè)參數(shù)影響,官方也給出兩個(gè)參數(shù)的默認(rèn)值:iosdevname=0是系統(tǒng)默認(rèn)值(dell服務(wù)器默認(rèn)是1),net.ifnames=1是系統(tǒng)默認(rèn)值?
如果想恢復(fù)以前的傳統(tǒng)命名規(guī)范則只需要在grub文件中將兩個(gè)參數(shù)設(shè)置為0即可,具體操作過程如下:?
1.編輯/etc/sysconfig/grub文件,在GRUB_CMDLINE_LINUX字段最后添加net.ifnames=0 biosdevname=0?
2.重新生成配置文件grub配置文件,執(zhí)行如下命名?
grub2-mkconfig -o /boot/grub2/grub.cfg?
3.手動(dòng)編輯/etc/sysconfig/network-scripts/目錄下的ifcf-開頭的文件,注意:HWADDR字段要與待命名的網(wǎng)卡MAC地址對(duì)應(yīng),或者UUID字段與網(wǎng)卡的UUID對(duì)應(yīng)也可以。?
4、重啟系統(tǒng)。
了解更多網(wǎng)絡(luò)知識(shí)關(guān)注:http://www.vecloud.com/