如何编写通用 udev 规则来分配我的网络接口名称?

如何编写通用 udev 规则来分配我的网络接口名称?

我正在尝试编写一个“通用” udev 规则来为我的 NIC 卡分配一个接口名称。

对于特定应用程序,我需要能够启动无头服务器,其中可以随时更改 NIC。但是 NIC 的品牌和型号将保持不变。

因此我尝试编写一个通用的 udev 规则来解决这个问题,该规则将为任何与 Vednor 和 Model ID 匹配的 NIC 分配所需的名称(稍后与特定的静态网络设置匹配)。我的 udevadm 输出:

micromass@ComExATE:/sbin> sudo ./udevadm info --attribute-walk --query=all --pat          h=/sys/class/net/eth4
P: /devices/pci0000:00/0000:00:1c.5/0000:05:00.0/net/eth4
E: UDEV_LOG=3
E: DEVPATH=/devices/pci0000:00/0000:00:1c.5/0000:05:00.0/net/eth4
E: INTERFACE=eth4
E: IFINDEX=2
E: SUBSYSTEM=net
E: ID_VENDOR_FROM_DATABASE=Broadcom Corporation
E: ID_MODEL_FROM_DATABASE=NetXtreme BCM5761 Gigabit Ethernet PCIe
E: ID_BUS=pci
E: ID_VENDOR_ID=0x14e4
E: ID_MODEL_ID=0x1681

所以我的规则是这样的:

SUBSYSTEM=="net", ACTION=="add", ATTR{IDVENDOR_ID}=="0x14e4", ATTR{ID_MODEL_ID}=="0x1681", NAME="my-device"

但是没有运气。所以我尝试了一些更简单的方法,并决定匹配前 3 组 MAC 地址(分配给供应商)

SUBSYSTEM=="net", ACTION=="add", ADDRESS=="00:30:64??:??:??", NAME="my-device"

仍然没有运气。我似乎无法改变这些规则来添加符号链接而不是重命名。

不知道接下来该去哪里,所以任何帮助都会很有帮助。

答案1

您拼错了属性名称:应该是 ID_VENDOR_ID,而不是 IDVENDOR_ID

答案2

运行 udev debug 并查看 syslog,它是否符合你的规则。你使用哪个 openSUSE 版本?顺便说一句,我不确定你是否可以在 MAC 地址字段中添加 ?。首先检查 udev 是否​​可以在你的设置中重命名接口(这是一个示例配置)。

相关内容