问题描述
若使用 Linux 系统的云主机配备了多块网卡,则在重启主机后可能出现网卡名称与网卡 MAC 地址不对应的问题,即网卡漂移问题。
以网卡 eth1 实际对应的 MAC 地址为de:8a:88:20:88:6a、网卡 eth2 实际对应的 MAC 地址为76:c5:cc:74:26:c1 为例,若出现网卡漂移问题,则在执行 ip a 命令查看网卡信息时,会发现网卡 eth1 对应的 MAC 地址变为了网卡 eth2 应对应的 MAC地址。
问题原因
Linux 系统运行后会将网卡相关信息保存在 /etc/udev/rules.d/70-persistent-net.rules 文件中。若此文件不存在或文件内容和 Linux 操作系统实际情况不一致时,则可能导致网卡漂移问题。
解决步骤
注意:此问题的推荐解决方案需重启云主机,请您在评估业务中断影响后谨慎操作。
-
以问题描述中的场景为例,推荐在/etc/udev/rules.d/70-persistent-net.rules 文件中,将网卡名称与网卡 MAC 地址绑定,使网卡名称与网卡 MAC 地址相对应。每一个网卡可添加相应的规则,每个规则的模板如下:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="<MAC 地址>", KERNEL=="eth*", NAME="<网卡名称>"
以绑定网卡 eth1 对应的 MAC 地址为de:8a:88:20:88:6a 为例:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address de:8a:88:20:88:6a ", KERNEL=="eth*", NAME="eth1"
-
保存文件后重启云主机。
reboot
-
再次通过命令 ip a 查看网卡名称与 MAC 是否对应。