有关debian11的网卡与mac绑定问题

NetworkInterfaceNames - Debian Wiki
debian维基提到debian11不再支持传统udev的70-persistent-net规则,然后我根据文档描述,添加/etc/systemd/network/10-persistent-net.link新规则来实现网卡与mac绑定,然后模拟网卡漂移,重启后验证失败,据说是需要system的控制方式或者下载回debian11已经删除的一个软件包来控制10-文件,但是这两个方式我都不清楚细节,所以求组大家有没有什么对于网卡与mac绑定的方法。

是因为这个问题导致的 systemd.link 文件不工作吗?

我感觉不太像这个问题导致,你发的文章提到,link文件被忽略,是udev似乎在使用自己的规则来命名导致,但debian11缺乏udev仍尊重已存在或新创建文件的传统支持,所以我理解就是debian11中udev对规则来说已经没用了,也就不会因为udev使用自己规则导致link文件被忽略,或许我也可以试下文章下面提到99-defaults规则的解决方法。

我这里原本是debian10,是使用udev,文件/etc/udev/rules.d/70-persistent-net.rules规则是起作用的,然后升级到debian11,udev就不能支持这样的规则,所以就按新规则,添加/etc/systemd/network/10-persistent-net.link,尝试后起不了作用。但遗留的udevadm指令还能用,udevadm info /sys/class/net/eth2指令列出来,也能看到ID_NET_LINK_FILE=我10-persistent-net文件的路径

也就是说既然udevadm查出来链接文件路径没问题,但是10文件不起作用,也就印证udev对于规则已经不再控制,所以需要寻求debian11新的控制规则方法。
不知道我这样理解得对不对

这么来看 debian11 应该使用 systemd.link 来配置网络名和 MAC 绑定,但是不生效可能是 debian11 的某个 bug…

个人认为应该尝试研究为什么 .link 配置没有生效的问题。也许是因为它依赖 systemd-networkd 但是该服务未启用? 似乎不依赖systemd-networkd。或者可能是被更高优先级的规则覆盖了。

另外 networkctl status 网络名 输出的信息中的 Link File 字段也许对调试有效。

编辑:

实际上 systemd.link 也是 udev 读取的,只是旧 API /etc/udev/rules.d/70-persistent-net.rules 不再使用了

这篇文章说 systemd.link 文件被忽略是因为需要 update-initramfs -u

You have to update-initramfs -u for these changes to take effect. This copies the /etc/systemd/network/99-default.link file you created into the initramfs to be around at early system boot when udev needs it.

这里面提到的 /etc/systemd/network/99-default.link 是该问题的提问者提到的制作的自定义 .link 文件

通过networkctl status 网络名,查看到的Link File字段也是对应我的10文件的路径,也尝试过update-initramfs -u也是不行

我在想是不是因为10规则文件中 Name=网卡名 不能使用eth0这类网卡名来配置

那配置应该确实被读取了。贴一下 .link 文件内容?也许会有什么线索。另外系统日志和 dmesg 有没有什么线索?