systemd 中可预测的网络接口名称

Ral*_*ndt 15 linux-networking systemd debian-stretch

最新版本的 Ubuntu 和 Debian (stretch) 带来了新的网络接口命名方案。

现在,当从使用旧样式名称(如“eth0”)的系统进行更新时,我想在启动之前知道新名称是什么。

我怎样才能做到这一点?是否有一个神奇的“systemd”调用,我可以用来在启动前编辑 /etc/network/interface(随后失去网络连接)?

GnP*_*GnP 7

有两种不同的方案可用:biosdevname 与可预测的网络接口名称。

biosdevname

Biosdevname 似乎是 ubuntu 中的默认值。它通过安装 biosdevname 包来激活。

接口的 biosdevname 可以通过以下方式找到:

biosdevname -i eth0
Run Code Online (Sandbox Code Playgroud)

可预测的网络接口名称

我相信这是 Debian 伸展中的默认设置,但需要在从以前的版本升级时显式启用。

可以通过以下方式找到 eth0 的可预测名称:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'
Run Code Online (Sandbox Code Playgroud)


Der*_*rfK 2

新方案显然被称为“可预测的网络接口名称”,但我没有找到很多关于如何实际预测名称的文档。 我发现的所有关于它的内容基本上都指向这个源代码注释(它本身又指向第一个链接)。从评论来看,根本不清楚如何知道 udev 将使用哪种寻址方案作为网络设备名称。

net.ifnames=0根据第一个链接,您可以通过在 Grub 中的内核命令行中添加来禁用它并使用传统名称。根据此评论,如果您计划创建 VLAN 标记接口,则可能有必要,因为添加的扩展将使接口名称太长。

否则,最好重新提出问题来解释您想要对名称执行的操作(例如通过 ansible 或类似的方式配置接口)