Centos 7 中網(wǎng)卡重命名及網(wǎng)亂序解決方案

1. udev 網(wǎng)卡規(guī)則加載順序

1.1 udev 配置文件

路徑 作用
/lib/udev/rules.d 包含 udev 默認(rèn)配置文件(不要修改)
/etc/udev/rules.d/*.rules 包含 udev 自定義 配置文件
/dev/.udev/rules.d/*.rules 包含 udev 臨時(shí)配置文件(不要修改)

1.2 udev 網(wǎng)卡規(guī)則文件及順序

/lib/udev/rules.d 可提取出網(wǎng)卡名稱相關(guān)的配置文件:

  1. /usr/lib/udev/rules.d/60-net.rules
  2. /usr/lib/udev/rules.d/71-biosdevname.rules
  3. /lib/udev/rules.d/75-net-description.rules
  4. /usr/lib/udev/rules.d/80-net-name-slot.rules

60-net.rules
使用/lib/udev/rename_device這個(gè)程序,去查詢/etc/sysconfig/network-scripts/下所有以ifcfg-開(kāi)頭的文件
如果在ifcfg-xx中匹配到HWADDR=xx:xx:xx:xx:xx:xx參數(shù)的網(wǎng)卡接口
則選取DEVICE=yyyy中設(shè)置的名字作為網(wǎng)卡名稱。

71-biosdevname.rules
如果系統(tǒng)中安裝了biosdevname,且內(nèi)核參數(shù)未指定biosdevname=0,且上一步?jīng)]有重命名網(wǎng)卡,則按照biosdevname的命名規(guī)范,從BIOS中取相關(guān)信息來(lái)命名網(wǎng)卡。
主要是取SMBIOS中的type 9 (System Slot) 和 type 41 (OnboardDevices Extended Information)
不過(guò)要求SMBIOS的版本要高于2.6,且系統(tǒng)中要安裝biosdevname程序。

75-net-description.rules
udev通過(guò)檢查網(wǎng)卡信息,填寫(xiě)如下這些udev的屬性值
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
ID_NET_NAME_MAC

80-net-name-slot.rules
如果在60-net.rules71-biosdevname.rules這兩條規(guī)則中沒(méi)有重命名網(wǎng)卡,且內(nèi)核未指定net.ifnames=0參數(shù)
udev依次嘗試使用以下屬性值來(lái)命名網(wǎng)卡,如果這些屬性值都沒(méi)有,則網(wǎng)卡不會(huì)被重命名。
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH

2. 測(cè)試

2.1 測(cè)試環(huán)境

硬件:戴爾服務(wù)器
系統(tǒng): Centos 7
千兆網(wǎng)卡:1,(4個(gè)接口)
萬(wàn)兆網(wǎng)卡:1(2個(gè)接口)
網(wǎng)卡 1 mac:00:0c:29:6e:8e:40

2.2 測(cè)試用例及結(jié)果

1 .網(wǎng)卡重命名測(cè)試

測(cè)試用例:修改網(wǎng)卡1 的配置文件,步驟為添加文件/etc/sysconfig/network-scripts/ifcfg-eth0

# filename: ifcfg-eth0
DEVICE="eth-config"
HWADDR=00:0c:29:6e:8e:40
TYPE="Ethernet"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR=****
NETMASK=****
GATEWAY=****

在上面的條件下,分別使用不同只的 biosdevnamenet.ifnames ,然后重啟查看網(wǎng)卡名稱

測(cè)試結(jié)果

biosdevname net.ifnames 網(wǎng)卡名稱
1 1 eth-conifg
1 0 eth-config
0 1 eth-config
0 0 eth-config

2. 網(wǎng)卡亂序測(cè)試

測(cè)試用例

  1. 分別配置 6 個(gè)接口的配置文件的 DEVICEHWADDR
  2. 在 1 的條件下, 修改biosdevname=1net.ifnames=1。 重啟 5 次 查看網(wǎng)卡名稱是否與 ifcfg-* 配置的一樣
  3. 在 1 的條件下, 修改biosdevname=0 、net.ifnames=0。 重啟 5 次 查看網(wǎng)卡名稱是否與 ifcfg-* 配置的一樣

測(cè)試結(jié)果

biosdevname net.ifnames 網(wǎng)卡名稱是否與 ifcfg-* 一樣
1 1
0 0

結(jié)論

在不修改 udev 規(guī)則的條件下,/etc/sysconfig/network-scripts/ifcfg-* 文件的優(yōu)先最高。在ifcfg-*文件中將DEVICEmac 綁定后重命名網(wǎng)卡名稱和避免網(wǎng)卡亂序。

參考文檔:

  1. udev 相關(guān)
  2. http://blog.sina.com.cn/s/blog_704836f40102w36n.html
  3. Linux – Biosdevname & net.ifnames
  4. redhat 7 網(wǎng)絡(luò)設(shè)備命名(官方文檔)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容