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)的配置文件:
- /usr/lib/udev/rules.d/60-net.rules
- /usr/lib/udev/rules.d/71-biosdevname.rules
- /lib/udev/rules.d/75-net-description.rules
- /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.rules ,71-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=****
在上面的條件下,分別使用不同只的 biosdevname和net.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è)試用例:
- 分別配置 6 個(gè)接口的配置文件的
DEVICE和HWADDR - 在 1 的條件下, 修改
biosdevname=1、net.ifnames=1。 重啟 5 次 查看網(wǎng)卡名稱是否與ifcfg-*配置的一樣 - 在 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-*文件中將DEVICE 和 mac 綁定后重命名網(wǎng)卡名稱和避免網(wǎng)卡亂序。
參考文檔: