Linux:内核在哪里命名为Network接口?

时间:2017-05-15 18:37:54

标签: linux networking kernel driver

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

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

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

2 个答案:

答案 0 :(得分:1)

  

哪些内核代码用于命名?

udev命名接口。

  

为什么会发生这种情况?

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

答案 1 :(得分:0)

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

我可以回答这一部分!要重命名接口但目标名称已被使用时,systemd-udevd会将其重命名为“ rename3”。有趣的是,systemd在2013年清除了正在重命名为临时名称的代码!但是,debian / ubuntu家伙抢了下来并使用到2019年— https://salsa.debian.org/systemd-team/systemd/commit/3d45a7af959cf260bffcb1ad0262973b5750ae36。这就是为什么即使在ubuntu 18.04中也可以看到“重命名为rename3”消息的原因。