Linux
RHEL:為網路介面創建穩定的名稱
我們有一個帶有 8 個介面的 RHEL 5.5 盒子。並且
eth
介面命名是翻轉的。有時eth0
出現在物理埠 7 上,有時出現在另一個物理埠上。我們希望按照 PCI BUS 的順序命名。我做了研究,發現
cat /sys/devices/pci0000\:00/0000\:00\:1e.0/0000\:07\:07.0/net\:eth0/address\
此位置具有
eth
設備的 MAC 地址。因此,如果我從這個 pci 匯流排位置按順序獲取“地址”並將它們ifconfig-eth0
按ifconfig-eth7
PCI 匯流排位置的順序放入,我的eth
命名將是穩定的。我試過:
find /sys/devices/ -name "address"
但它不會帶來任何結果。我不知道為什麼……
這裡有什麼幫助嗎?
您是否嘗試在各種乙太網設備的不同 ifcfg-ethX 文件中包含 MAC 地址?
60-net.rules
此外,您可以通過 udev 的文件控制哪個設備獲取哪個 ethX 處理。例如
# /etc/sysconfig/network-scripts/ifcfg-eth0 # Intel Corporation 82573E Gigabit Ethernet Controller (Copper) DEVICE=eth0 BOOTPROTO=static DHCPCLASS= HWADDR=00:30:48:56:A6:2E IPADDR=10.10.10.15 NETMASK=255.255.255.192 ONBOOT=yes
然後在文件中
/etc/udev/rules.d/60-net.rules
:KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2E", NAME="eth0"
我相信此資訊用於保持設備從引導到引導的配置一致。
配置多個 ethX 設備
要處理更多設備,只需設置每個設備對應
/etc/sysconfig/network-scripts/ifcfg-ethX
的文件,然後在文件中添加另一行60-net.rules
。KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2E", NAME="eth0" KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2F", NAME="eth1"
以上是您在 CentOS 5.X 中的操作方式。CentOS 6.x 中的文件更改為
70-persistent-net.rules
,格式也略有不同:SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
參考