首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Centos 7上将以太网设备设置为特定的硬件

如何在Centos 7上将以太网设备设置为特定的硬件
EN

Server Fault用户
提问于 2015-01-04 16:14:56
回答 1查看 9.4K关注 0票数 2

我有一个Centos 7系统,在这个系统中,我禁用了新的网络命名系统,并恢复到旧系统(eth0、eth1等)。我这么做是因为我在设置中使用了这个,并且需要在几个不同的主机上使用相同的以太网设备名称。其中一些主机是kvm下的virts,并使用eth命名系统。

由于这样做,每几个重新启动,我的以太网设备被翻转。

在健康的靴子上,我看到了

11.172339 tg3 0000:03:00.0 eth0: Tigon3 partno(BCM95723) rev 5784100 MAC地址68:b5:99:72:d8:02 11.269599 e1000e 0000:02:00.0 eth1:(PCI :2.5GT/S:Width x1) 68:05:ca:04:90:16

在“糟糕的引导”中,这些将被翻转,而e1000e将是eth0,而tg3是eth1。

到目前为止,我已经做了以下工作:

  • 在/etc/biosdevname=0/grub中的GRUB_CMDLINE_LINUX行中添加“biosdevname=0”
  • grub2-mkconfig -o /boot/grub2/grub.cfg
  • 已创建/etc/udev/udev.d/70-持久性-网络规则

运行grub2-mkconfig之后,我在/boot/grub2/grub.cfg中看到以下内容(这意味着上面的更改正在生效)

root=UUID=eabee081-85f8-4f33-b72a-fbbdc575e010 ro vconsole.keymap=uk crashkernel=auto quiet . linux16 /linux16/vmlinuz-3.10.0-123.el7.x86_64

70-Persistent-net.规则的内容如下:

SUBSYSTEM=="net",ACTION==“ACTION==”添加“,DRIVERS==”?,ATTR{address}=="68:B5:99:72:D8:02",ATTR{type}=="1",KERNEL=="eth",NAME="eth0“ SUBSYSTEM=="net",ACTION==”添加“,DRIVERS==?,ATTR{address}=="68:05:CA:04:90:16",ATTR{type}=="1",KERNEL=="eth",NAME="eth1”

我还尝试将此文件中MAC地址中的字母更改为小写,以匹配dmesg的输出。这没什么区别。

我禁用了NetworkManager,我在/etc/sysconfig/network/ifcfg*中有HWADDR条目。

在ubuntu和Centos的早期版本下,上面的工作很好,而且很可靠。

但是,所有这些都无法在这个盒子上使用Centos 7实现可预测的设备。

任何关于如何将这些设备连接到eth名称的建议将不胜感激!

EN

回答 1

Server Fault用户

回答已采纳

发布于 2015-03-06 13:08:39

我进一步调查,发现了更多的细节。

造成这种不利行为的原因是内核和udev软件之间的竞争条件(开发人员在bug报告中指出)。

因此,udev的开发人员决定删除NIC作为ethX的可靠命名,并强制使用更不可预测的命名。

他们删除了允许管理员使用可靠的ethX接口顺序的代码,还添加了拒绝使用内核已经使用过的任何ethX名称的代码。

因此,如果您想再使用名称eth0、eth1等,则似乎无法收到可靠的订单。

有些人建议使用像netX这样的名字。

如果您将ethX设置为大于实际接口数量的X,它也可以工作。

我是最初的海报谁认为他已经找到了解决办法,而实际上,这只是一个临时的。经过几次测试启动后,我发现以太网设备是随机命名的,而不是我在60- not .规则中定义的方式。

我已经匿名发布了最初的答案,然后决定注册,以便能够更多地参与。所以我很抱歉。下面发布的答案实际上并不能解决最初回答的问题。它只需要几只靴子就可以了,但它不可靠。

我成功地使用了CentOS 7的最小CD和以下策略:

我做了很多没有帮助的事情,所以我不得不把其中的一些改变回来。

我重新安装了生物开发名(让它被移除)。

我编辑了/etc/default/grub,并将biosdevname=0和ifnames=0添加到CMDLINE中。

我用: grub2-mkconfig -o /boot/grub2/grub.cfg重新构建了grub配置。

此外,我还从CentOS 6.5安装中导入了以下两个文件:

/lib/udev/rules.d/75-persistent-net-generator.rules

/lib/udev/write_net_rules

(但这些可能根本没有任何效果)

然后,我在/etc/udev/rues.d/中创建了一个名为60-net.Rule的文件,并为我的每个NIC创建了一行:

SUBSYSTEM=="net",ACTION==“添加”,DRIVERS==?*,ATTR{address}=="aa:bb:cc:dd:ee:ff",ATTR{dev_id}=="0x0",ATTR{type}=="1",NAME="eth1“

(当然,MAC地址‘aa:bb:.’必须是正确的)。

在那之后,我启动了它,它起作用了。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/656199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档