Linux

Udev:重命名我的網路介面

  • December 15, 2018

我剛剛在戴爾 1950 伺服器上安裝了*RHEL 6.3 。*此伺服器作為兩個 GBit 埠,Gb0 和 Gb1。

出於某種晦澀的原因,udev選擇命名Gb0 eth1Gb1 eth0。這對我來說絕對不是一個好發現,只會讓人感到困惑。

所以我修改了配置/etc/udev/rules.d/70-persistent-net.rules

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
 ATTR{address}=="00:20:19:52:d3:c0",           \
 ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
 ATTR{address}=="00:20:19:52:d3:be",           \
 ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

我只是更改了文件上的“NAME”欄位以反映我想要的內容。我重新啟動了伺服器,但它沒有工作。

dmesg日誌中,我可以閱讀以下內容:

udev: renamed network interface eth1 to rename5
udev: renamed network interface eth0 to eth1
udev: renamed network interface rename5 to eth0

知道這裡有什麼問題嗎?為什麼會udev這樣切換?我有另一個類似的伺服器,我沒有這個問題。

就我而言,問題在於每個介面的 MAC 地址都設置在三個文件中:

/etc/udev/rules.d/70-persistent-net.rules
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1

我們需要 ifcfg 文件和 mac 地址的 net.rules 之間的一致性。

雖然這已經很晚了,但我通過刪除

KERNEL="eth*",

/etc/udev/rules.d/70-persistent-net.rules文件中規則的一部分。這是因為,一旦 UDEV 將設備重命名為“rename*”,這部分將停止規則匹配。因此,刪除它允許將正確的名稱分配給正確的設備,而不管 UDEV 在此期間對其進行了怎樣的呼叫。

引用自:https://unix.stackexchange.com/questions/91085