Udev:重命名我的网络接口

Udev:重命名我的网络接口

我刚刚安装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

相关内容