故障问题:
由于vSphere虚拟化平台中的一台VM虚拟机MAC地址与另一VC中的VM冲突需要修改,在VC中删除VM的网卡并重新添加一张新的虚拟网卡之后,在VM的RHEL系统中配置网卡IP网关之后,发现IP能正常起,但网关无论如何都无法生效,使用ip r命令无法查看到网关。检查/etc/sysconfig/network-scripts/ifcfg-enX文件无异常,检查/var/log/messages中无相关异常日志。
原因分析:
RHEL中配置网关的配置文件,一般有如下几个:
/etc/sysconfig/network-scripts/ifcfg-en*
/etc/sysconfig/network-scripts/route-en*
/etc/sysconfig/network
/etc/rc.local写入网关配置命令
在本案例中,经检查/etc/sysconfig/network该文件内容如下:
# Created by anaconda
NETWORKING=yes
GATEWAYDEV=eth0
GATEWAY=xxxx
该文件写死了网关所绑定的网卡设备名。
由于在虚拟化平台更换了VM虚拟机的虚拟网卡,由于虚拟总线及设备插槽的原因一般都会造成系统内网卡设备名的变化,而网络服务初始化时首先解析ifcfg-en*文件,然后才会再解析/etc/sysconfig/network文件,由于该文件写死了网关绑定的网卡设备且原网卡名的网卡设备已经不存在,自然就会导致网关配不上去,最坑的是这个地方应该是会报错的,但是它并没有在/var/log/messages日志文件中记录任何报错日志。
总结:
1、在不同的VC下,虚拟机的虚拟网卡自动生成的MAC地址有可能会重复。
2、RHEL的网络不仅可以用/etc/sysconfig/network-scripts下面的配置文件,还可以使用/etc/sysconfig/network。