RHEL:为网络接口创建稳定名称

use*_*746 6 linux rhel devices ethernet

我们有一个带有 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\
Run Code Online (Sandbox Code Playgroud)

此位置具有设备的 mac 地址eth。所以,如果我的顺序是自该PCI总线位置得到“地址”,并把他们在ifconfig-eth0ifconfig-eth7在PCI总线位置的顺序,我的eth命名将是稳定的。

我试过:

find /sys/devices/ -name "address"
Run Code Online (Sandbox Code Playgroud)

但它不会带来任何结果。我不知道为什么…

这里有什么帮助吗?

slm*_*slm 3

您是否尝试过将 MAC 地址包含在各种以太网设备的不同 ifcfg-ethX 文件中?此外,您还可以通过 udev60-net.rules文件控制哪个设备获得哪个 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
Run Code Online (Sandbox Code Playgroud)

然后在文件中/etc/udev/rules.d/60-net.rules

KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2E", NAME="eth0"
Run Code Online (Sandbox Code Playgroud)

我相信此信息用于保持设备从启动到启动的配置一致。

配置多个 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"
Run Code Online (Sandbox Code Playgroud)

以上是在 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"
Run Code Online (Sandbox Code Playgroud)

参考