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


15

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

现在,从使用“ eth0”之类的旧样式名称的系统进行更新时,我想在启动之前知道新名称。

我怎样才能做到这一点?在启动(然后失去网络连接)之前,我可以用来编辑/ etc / network / interface的“ systemd”魔术调用吗?


1
我偶然发现了它,这是迄今为止我发现的最好的解释:lists.debian.org/debian-user/2017/07/msg01453.html
Neil

Answers:


7

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

biosdevname

Biosdevname似乎是ubuntu中的默认名称。通过安装biosdevname软件包将其激活。

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

biosdevname -i eth0

可预测的网络接口名称

我相信这是Debian Stretch中的默认设置,但是在从先前发行版进行升级时需要明确启用。

eth0的可预测名称可以找到:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'

尽管有关如何预测“启动新名称之前”的实际答案(根据@Neil提供的链接)是新名称与旧名称相同,因为仍然有udev规则可以配置中的旧名字/etc/udev/rules.d/70-persistent-net.rules。如果要切换到新的命名方案,该链接将提供迁移指南。
Tuomas

2

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

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

否则,最好重新提问以解释您要使用的名称(例如,通过ansible或类似方式配置接口)


2

我不确定更新版本是否仍然如此,但是在我的旧系统上,我能够在创建一个空文件,/etc/udev/rules.d/80-net-name-slot.rules这将禁用“可预测的”命名功能。您还可以创建自己的规则,并根据mac地址或PCI / USB连接自行命名接口。


0

该文档可能会有所帮助。请参阅“ v197中到底发生了什么变化?”部分。是的,我意识到这只是有限的价值,但它可能为您提供进一步研究的途径。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.