繁体   English   中英

Linux:内核在哪里命名网络接口?

[英]Linux: where does the kernel name the Network interface?

我正在对 Linux 网络接口命名进行故障排除。

在这里,我有一些通用的问题:

  1. 如果有多个 NIC,它们将被命名为“eth0”、“eth1”、“eth2”等。哪个内核代码进行命名?
  2. 在某些情况下,接口将被重命名,例如:mlx4_core 0002:00)02:0 enP2p0s2:从 eth2 重命名。 是谁触发了这次重命名? 看起来是 netdev rename 事件,但是谁触发了那个 netdev 事件? (在本例中,enP2p0s2 是 VF NIC 接口名称)。
  3. 例如,在某些情况下,接口将重命名为“ rename3 ”。 为什么会发生这种情况? MAC地址冲突引起的? 如何防止这种重命名发生?

谢谢!

哪个内核代码进行命名?

udev命名接口。

为什么会发生这种情况?

这取决于您的系统,但重命名由 /etc/udev/rules.d 中的规则管理。

例如,在某些情况下,接口将重命名为“rename3”。 为什么会发生这种情况? MAC地址冲突引起的? 如何防止这种重命名发生?

这部分我可以回答! 当 systemd-udevd 想要重命名接口但目标名称已经被占用时,重命名为“rename3”是由 systemd-udevd 完成的。 有趣的是,systemd 清除了在 2013 年重命名为临时名称的代码! 但是 debian/ubuntu 人抢救了它并将其使用到 2019 年 - https://salsa.debian.org/systemd-team/systemd/commit/3d45a7af959cf260bffcb1ad0262973b5750ae36 这就是为什么即使在 ubuntu 18.04 中您也可以看到“重命名为 rename3”的消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM