如何禁用 udev 网络规则生成?

如何禁用 udev 网络规则生成?

在我们的云中,我们为实例生成带有前缀的 MAC 2c:c2:60。当我们重新使用或复制实例时,新副本会获得另一个 MAC 地址。当新副本启动时,NIC 会因新的 MAC 而获得名称 eth1。

我看到/lib/udev/rules.d/75-persistent-net-generator.rules,在 中有已知前缀的规则,例如52:54:00 (KVM)VMWare (00:0c:29)。但是这个文件应该不是按照第一行进行编辑。我们想使用自己注册的 MAC 前缀,而不是其他人的 MAC 前缀。

如何完全禁用网络规则生成?

答案1

根据 JasminJ 的回答,我阅读了手册。好吧,我只读了一小部分。“规则文件”部分的第五句话指出:

如果需要,这可用于用本地文件覆盖系统提供的规则文件;与/etc中的规则文件同名并/lib指向 的符号链接/dev/null将完全禁用规则文件。

我刚刚用虚拟机测试了它,它确实像描述的那样工作。我更喜欢这种方法,而不是使用传统/黑客方法来禁用此功能。

这是命令

ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules

答案2

cd /etc/udev/rules.d
rm -f 70-persistent-net.rules
rm -f 75-persistent-net-generator.rules
echo "# " > 75-persistent-net-generator.rules

https://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html
“规则文件”一章

答案3

您可以/lib/udev/rules.d/*通过将其复制到/etc/udev/rules.d然后修改来覆盖它们。

或者,您可以创建一个具有词汇上更高的名称的新文件,例如/etc/udev/rules.d/99-stop-persistent-net.rules使用以下“不执行任何操作”条目:

SUBSYSTEM=="net", DRIVERS=="?*", NAME="%k"

这应该可以防止创建新规则,因为 udev 认为该接口已经列出。这也将在 udev 更新等情况下继续存在。

抱歉,没有时间测试……

相关内容