在我们的云中,我们为实例生成带有前缀的 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 更新等情况下继续存在。
抱歉,没有时间测试……