如何启用“可预测网络接口名称”?

如何启用“可预测网络接口名称”?

我决定检查一下我的以太网设备最终的名称,但是与其他发行版相反, Debian 似乎没有激活此更改(或者正在阻止它?),

  • 现在保留旧的持久网络接口命名方案,并通过内核命令行上的 net.ifnames=1 选择加入新的命名方案。

问题是我必须编辑 grub 内核行,这对于某些东西来说似乎有点矫枉过正可以通过修改文件来禁用。还有别的办法吗?

答案1

Debian 上的版本 220-7 删除了选择加入的补丁:

* Switch to net.ifnames persistent network interfaces (on new
  installations/for new hardware), and deprecate the old
  75-persistent-net-generator.rules.

这来自于一项提案debian 开发列表。在用户迁移之前,使用旧命名的系统不会被重命名。阅读 README.Debian 以获取迁移指南。

新名称可以通过以下方式预测:

sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_

其中eth0是设备的当前名称。

答案2

我猜你说的是 sid 或 jessie。对于喘息,您可能想尝试v204 的向后移植

这里可能存在一些误解:从 udev 规则可以看出这里(对于目前在 sid 的 v208),udev 开发者明确地选择内核命令行作为启用此功能的默认方式。
我不认为使用所选接口并简单地GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"/etc/default/grub.您担心有什么具体的副作用吗?

事实上,你提到的答案建议删除一个文件来禁用它,这是一种黑客行为(至少在 Debian 的情况下),从长远来看不会起作用,因为在 debian 中,这些规则存储在 中/lib/udev/rules.d,即:它们会被覆盖在升级(此外,通过有效删除描述它的文件来禁用功能是有道理的,但是使能这是根本不同的,所以我认为这是一个不公平的比较)。

OTOH,如果您有不使用内核命令行的具体原因,您可以报告 debian 软件包的错误,并让维护者将这些规则移至/etc/udev/.然后理论上您可以在当前的“持久”规则和新的“可预测”规则之间切换。

但仅供参考:查看版本 209 的源代码,它似乎完全取消了检查net.if_names,因此您的问题可能需要在不久的将来重新解决。

答案3

在 Debian/Ubuntu 上,从 udev 220 开始,您可以通过重命名此文件来启用新名称:

sudo mv -T /etc/udev/rules.d/70-persistent-net.rules{,.old}

按照 的建议/usr/share/doc/udev/README.Debian.gz,然后是

sudo update-initramfs -u

然后重新启动(或驱动网卡的模块的 rmmod+insmod)。

答案4

Ubuntu 15.10 使用biosdevname它不提供可预测的网络接口名称。即使您删除它(apt-get删除biosdevname)并编辑grub(GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1")和持久性规则,您仍然无法获得可预测的网络接口。

主要原因似乎是向后兼容性。我刚才用2个移动宽带USB设备进行了测试,每次启动时网络接口名称的命名不一致(例如第一个接口usb0,第二个usb1,反之亦然)。主要原因似乎是向后兼容性。

启动板上存在一些错误(例如)但简短的答案是,如果您正在寻找可预测的网络接口名称,您应该寻找不同的发行版。

相关内容