我刚刚安装RHEL 6.3在 Dell 1950 服务器上。该服务器有两个 GBit 端口:Gb0 和 Gb1。
由于某些不明原因,udev
选择命名千兆位 eth1
和国标1 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
这样切换呢?我有另一个类似的服务器,但没有这个问题。
答案1
就我而言,问题来自于每个接口的 MAC 地址设置在三个文件中:
/etc/udev/rules.d/70-persistent-net.rules
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
我们需要 ifcfg 文件和 net.rules 的 mac 地址保持一致。
答案2
虽然这已经很晚了,但我通过删除解决了我的问题
KERNEL="eth*",
文件中规则的一部分/etc/udev/rules.d/70-persistent-net.rules
。这是有效的,因为一旦 UDEV 将设备重命名为“rename*”,这部分将停止规则匹配。因此,删除它可以将正确的名称分配给正确的设备,无论 UDEV 同时调用它是什么。
答案3
/etc/udev/rules.d/70-persistent-net.rules
我只需删除并重新启动即可解决此问题。
答案4
你尝试过创建一个空白/etc/udev/rules.d/80-net-name-slot.rules
吗?
从 Udev v197 开始,udev 已经实现了可预测的网络接口名称,通过在该路径中创建一个空白文件然后重新启动,您应该将接口名称恢复为原来的名称。
我在以下位置回答了类似的问题:Creating eth0 with consistent network device naming