Udev:重命名我的网络接口

Hug*_*ugo 20 linux rhel udev

我刚刚在 Dell 1950 服务器上安装了RHEL 6.3。该服务器作为两个 GBit 端口,Gb0 和 Gb1。

出于某种晦涩的原因,udev选择命名Gb0 eth1Gb1 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"
Run Code Online (Sandbox Code Playgroud)

我只是更改了文件上的“NAME”字段以反映我想要的内容。我重新启动了服务器,但没有奏效。

dmesg日志中,我可以阅读以下内容:

udev: renamed network interface eth1 to rename5
udev: renamed network interface eth0 to eth1
udev: renamed network interface rename5 to eth0
Run Code Online (Sandbox Code Playgroud)

知道这里有什么问题吗?为什么会这样udev切换?我有另一个类似的服务器,我没有这个问题。

小智 10

虽然这已经很晚了,但我通过删除

KERNEL="eth*",
Run Code Online (Sandbox Code Playgroud)

/etc/udev/rules.d/70-persistent-net.rules文件中规则的一部分。这是有效的,因为一旦 UDEV 将设备重命名为“rename*”,这部分将停止规则匹配。因此,删除它允许将正确的名称分配给正确的设备,而不管 UDEV 在此期间如何调用它。


Hug*_*ugo 10

就我而言,问题来自每个接口的 mac 地址设置在三个文件中的事实:

/etc/udev/rules.d/70-persistent-net.rules
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
Run Code Online (Sandbox Code Playgroud)

我们需要在 mac 地址的 ifcfg 文件和 net.rules 之间保持一致性。


Cla*_*kes 6

我可以通过简单地删除/etc/udev/rules.d/70-persistent-net.rules和重新启动来解决这个问题。