网络接口重命名未按预期工作。去哪里看?

网络接口重命名未按预期工作。去哪里看?

系统是Ubuntu 16.10。它已经更新了很多次,所以它可能有一些早期版本的剩余内容(至少可以追溯到 14.04,可能更长)。

问题如下:我的系统中有两个网络接口(在主板上)。其中一个始终命名为 eth0。第二个没有使用。现在我的网络出现了新情况,想要使用第二个接口。

我学到了很多关于接口重命名和新的重命名规则的知识。所以第二个接口选择了名称 enp5s0 或类似的名称,记不清了,因此我需要重命名它。但这就是我的麻烦开始的地方。

/etc/udev/rules.d/70-persistent-net.rules据我所知,eth0 的处理方式已被弃用。我尝试为“eth1”添加第二条规则(使用其 mac 而不是 eth0),但它不起作用。

因此,在阅读了一些内容后,我删除了旧文件,也许我误解了一些东西,但我认为今天不鼓励使用 eth* 名称,所以我选择将它们称为 lan0 和 lan1 (这描述了它们的用途)。然后我在以下位置添加了新文件/etc/systemd/network

10-eth-lan0.link
10-eth-lan1.link

有了这个内容:

[匹配]
MAC地址=00:23:54:96:74:07/06

[关联]
名称=lan0/1

对于不同的 MAC 地址和不同的名称。对于 eth0 这似乎有效,对于 eth1 (或任何原因)则不然。我很困惑为什么它不起作用。我仔细检查了mac。

dmesg | grep eth 向我展示了这个:

[6.233684]sky2 0000:08:00.0 eth0:地址00:23:54:96:74:07
[6.233975]sky2 0000:05:00.0 eth1:地址00:23:54:96:74:06
[6.661954]sky2 0000:08:00.0 lan0:从eth0重命名
[8.513836] sky2 0000:05:00.0 rename3:从eth1重命名

我完全不知道为什么它现在选择“rename3”...在我看到 systemd 链接文件不起作用后,我对 ip 链接集名称进行了一些尝试。

最让我困惑的是它适用于 eth0 -> lan0,但不适用于 eth1 -> lan1。我可以调查什么来找出重命名不起作用的原因?谁在这里缓存东西? “ip 链接集名称”确实产生了一些持久影响(例如从 enp5s0 或类似内容更改为“rename3”)。

[编辑] 我现在又认识到一件事:我的环回接口被重命名为 lan1。不知道为什么。但现在每次启动都会发生这种情况。另外,我删除了上面描述的 *.link 文件,重命名仍然发生一样...... ???在 /etc 中,/etc/network/interfaces 中现在只提到了一次 lan0,而没有提到 lan1。有人把这些东西存放在某个地方,但我不知道是谁或在哪里。

答案1

(我知道这是一个 RHEL 文档,但它实际上只是关于udev

了解设备重命名过程

  1. /usr/lib/udev/rules.d/60-net.rules 中的规则指示 udev 帮助程序实用程序 /lib/udev/rename_device 查看所有 /etc/sysconfig/network-scripts/ifcfg-suffix 文件。如果它发现 ifcfg 文件中的 HWADDR 条目与接口的 MAC 地址相匹配,则会将该接口重命名为由 DEVICE 指令在 ifcfg 文件中指定的名称。

所以如果你想要最简单的重命名设备的方法,创建一个/etc/sysconfig/network-scripts/ifcfg-${INTERFACE_NAME}至少包含以下内容的文件:

DEVICE=${INTERFACE_NAME}
HWADDR=${MAC_ADDRESS}

所以如果你的接口有一个 MAC00:11:22:33:44:55并且你希望它被调用penguin-interface

/etc/sysconfig/network-scripts/ifcfg-penguin-interface

DEVICE=penguin-interface
HWADDR=00:11:22:33:44:55

您也可以使用其中的所有常用设置。


如果您想知道这些名字是如何enp5s0发生的(e那里np奥尔特5 s很多0https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20

相关内容