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-eth0
对ifconfig-eth7
在PCI总线位置的顺序,我的eth
命名将是稳定的。
我试过:
find /sys/devices/ -name "address"
Run Code Online (Sandbox Code Playgroud)
但它不会带来任何结果。我不知道为什么…
这里有什么帮助吗?
您是否尝试过将 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)
我相信此信息用于保持设备从启动到启动的配置一致。
要处理更多设备,只需设置每个设备相应的/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)