12.4.0
我刚刚使用典型的 Debian 映像在 Hyper-V 主机上安装了全新的 Debian VM debian-12.4.0-amd64-netinst.iso
。
登录完成网络设置后,我惊讶地发现我的两个虚拟化网卡被命名eth0
,而eth1
不是后面的任何内容可预测的网络接口名称图案。我担心这可能意味着eth0
并且eth1
可能无法一致地绑定到虚拟网卡,这会扰乱我的静态 IP 地址分配并导致流量路由到错误的接口或标记错误的 VLAN ID。
德班网络接口名称 wiki说当我运行时udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
,输出应始终包含一个ID_NET_NAME_PATH
元素:
ID_NET_NAME_PATH=始终在场;通常是复杂到容易忘记的东西,例如 wlp3s5 或 enp1s3f0。请注意,所有数字均为十六进制。
但我看到的不是这样!当我运行该命令时,我只得到以下输出:
ID_NET_NAMING_SCHEME=v252
ID_NET_NAME_MAC=enx00155dddac06
ID_OUI_FROM_DATABASE=Microsoft Corporation
问题是:为什么这些虚拟机网络接口不生成ID_NET_NAME_PATH根据“可预测的接口名称”模式命名,我该如何解决这个问题?
后续问题:如果我将接口名称保留为eth0
和eth1
,是否有任何实际的这会导致网络接口绑定不稳定的风险吗?
有关当前系统配置的更多信息如下
在Debian安装程序中,我选择了没有任何桌面环境的安装,但是和SSH 服务器,因为这是一个用于基本服务器应用程序和 Docker 容器托管的远程管理服务器,无需交互式用户。因此NetworkManager
不存在;我相信网络配置是由 管理的systemd-networkd
。
新系统中没有文件/etc/systemd/network
。所以我相信它将使用 中给出的默认命名策略顺序/lib/systemd/network/99-default.link
?该文件的内容是:
[Match]
OriginalName=*
[Link]
NamePolicy=keep kernel database onboard slot path
AlternativeNamesPolicy=database onboard slot path
MACAddressPolicy=persistent
的输出sudo sysctl -a
不包含对 的引用net.ifnames
。
Linux 版本是Linux [...] 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux
. systemd 版本是systemd 252 (252.19-1~deb12u1)
.
我已经检查了链接的 Debian NetworkInterfaceNames wiki 页面中的“虚拟机”注释,该注释建议删除下面的一些文件/etc/systemd/network
,然后重建,initrd
以触发接口名称的重新生成。我在这些位置没有文件。我尝试重建 initrd 并重新启动。这对接口名称没有影响;他们仍然eth0
和eth1
。