Centos 7.6 网络接口的 MAC 地址发生更改

Centos 7.6 网络接口的 MAC 地址发生更改

在 CentOS Linux 版本 7.6.1810 (Core) 服务器上,网络接口的 mac 地址发生了更改,例如 eth0 具有 eth3 的 mac 地址等等。有人知道为什么会发生这种情况以及如何解决吗?

答案1

无论出于什么原因,你的系统已禁用一致的网络设备命名。这意味着,您不会使用现代的设备名称作为接口名称(每个 NIC 的接口名称都相同),而是在每次启动时,您的 NIC 可能会出现一个您无法预测的随机 eth* 标识符。

您应该重新启用一致的网络设备命名,然后使用新的一致名称重新配置 NIC,除非您物理更改硬件,否则这些名称将保持不变。如果存在,则应删除启动命令行选项net.ifnames=0biosdevname=0。如果不存在,则仅net.ifnames=1应设置。

在开始之前,您还应该阅读上面链接的整个 RHEL 文档章节,包括故障排除部分。这是一个相当侵入性的更改,需要一些停机时间,但一旦完成,它将解决服务器硬件剩余寿命的问题。

答案2

NetworkManager 可能就是这样做的。为了防止将来再次发生这种情况,如果您没有专门使用它,只需禁用它即可。否则,请保存您的配置,以便以后恢复它们。

# systemctl disable NetworkManager
rm '/etc/systemd/system/multi-user.target.wants/NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'

为了修复这个问题,编辑文件/etc/default/grub并添加net.ifnames=0 biosdevname=0 to line GRUB_CMDLINE_LINUX,然后重新创建 GRUB 配置文件并覆盖现有文件:

# grub2-mkconfig -o /boot/grub2/grub.cfg

将 ifcfg 文件中的 NAME 和 DEVICE 参数编辑为新的网络接口名称。

# cat /etc/sysconfig/network-scripts/ifcfg-eno1

......
NAME=eth0
DEVICE=eth0
......

编辑ifcfg文件名:

# mv /etc/sysconfig/network-scripts/ifcfg-eno1 /etc/sysconfig/network-scripts/ifcfg-eth0

根据需要对所有 eth-s 重复此操作。

只要 NetworkManager 关闭,就不会再有任何东西干扰它们。

答案3

在接口文件中添加 MACADDR 字段可以解决这个问题。如https://access.redhat.com/solutions/70215

相关内容