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


12

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

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

问题是我必须编辑grub内核行,对于通过修改file可以禁用的某些操作来说似乎有些过头。还有另一种方法吗?


也许您想检查一下此链接: science.uva.nl/research/air/wiki/LogicalInterfaceNames 您可能会发现诸如nameif之类的问题并正在更新启动文件... @Braiam
2014年

@ user1527227正是我不想做的。
Braiam 2014年

在jesse上,您只需要修改/ etc / default / grub中的一行。喘不过气来,实际上没有启用此AFAIK的方法。我真的很喜欢新的命名方案,因此我在Wheeze服务器上设置了自己的udev规则。
GnP 2014年

Answers:


11

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-devel列表中的一个提案。在用户迁移之前,使用旧命名的系统不会重命名。阅读README.Debian以获得迁移指南。

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

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

eth0设备的当前名称在哪里。


5

我认为您是在谈论sid或jessie。对于狂奔,您可能想尝试v204backport

这里可能存在一些误解:从此处的udev规则(针对当前sid中的v208)可以看出,udev开发人员明确选择了内核cmdline作为启用此功能的默认方式。
我看不出有什么本质“矫枉过正”使用它的选择界面,干脆把GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"/etc/default/grub。您担心什么副作用吗?

您提到的答案表明,删除文件以禁用该文件这一事实实际上是一种破解(至少在Debian中是这样),从长远来看是行不通的,因为在debian中,这些规则存储在中/lib/udev/rules.d,即:它们将被覆盖升级(此外,通过有效地删除描述文件的功能来禁用功能是有道理的,但是启用它却根本不同,因此,我认为这是不公平的比较)。

OTOH,如果您有不使用内核cmdline的具体原因,则可以针对debian软件包报告一个错误,并使维护人员将这些规则移至/etc/udev/。从理论上讲,您可以在当前的“持久”规则和新的“可预测”规则之间切换。

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


1
“明确选择了内核cmdline作为启用此功能的默认方法。” 实际上,它是执行此操作的Debian补丁,而不是udev开发人员。他们只包括一种使其在引导时选择退出的方法,Debian将其更改为选择加入,并且启用它应该很容易,因为默认情况下已启用它。
Braiam 2014年

@Braiam:很好!但是我认为主要观点仍然是,使用内核cmdline作为接口是udev选择,无论是启用还是禁用它。
Leo Antunes 2014年

我编辑了内核命令行以包含该net.ifname=1参数,但是在Linux Mint上未启用此功能。已知哪些Linux发行版支持此功能?
sherrellbc

0

在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)。


-1

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

主要原因似乎是向后兼容。我刚刚用2个移动宽带USB设备对其进行了测试,并且每次启动时网络接口名称都不一致(例如,第一个接口usb0,第二个usb1以及相反的名称)。主要原因似乎是向后兼容。

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


得到它了!我实际上会根据我的理解更新答案。
安东尼·亨特

@roalma我已经更新了答案!对不起以前的“评论式”帖子。
安东尼·亨特

自从版本220-7起,Debian确实默认支持此功能,因为他们删除了有关行为的补丁程序。现在,新安装的系统将默认使用可预测的名称。
Braiam
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.