导语
今天在学习的时候,碰到了Linux网络的一个问题,在网上查询资料,查了半天都没有解决,所以记录下来,如果有读者知道的话,还请不吝赐教。
1问题描述
今天在学习的时候,碰到了Linux网络的一个问题,问题的具体情况如下:
从图中我们可以看到,网络的图标上有一个小红叉,点击小红叉,显示networking disabled,提示网络不可达,然后我就随便ping了一下,奇怪的事情发生了,居然可以ping通www.baidu.com,为什么会出现这个问题呢,图标显示网络不通,但是确可以连接外网,虽然不影响使用,但是还是想把这个问题搞明白。于是查了查Linux相关的资料,整理如下。
2分析过程
首先,进入/etc/sysconfig/network-scripts,可以看到如下文件:
打开ifcfg-eth0可以看到
里面都是网络的相关参数,下面的表格详细解释上面的各项参数:
这些参数看着没有什么问题,于是又重新跑了一下ifconfig命令,如下:
显示似乎是正常的,没有什么问题,这个时候,发现上面的ifconfig显示的是eth3,而在/etc/sysconfig/network-scripts目录中根本没有发现eth3网卡,该文件夹下所有的文件目录如下:
于是问题又被转化为这个eth3网卡到底是怎么来的?在网上查了资料,得到了如下的解释:
VMware中克隆虚拟机是经常的事情,当我们进行系统克隆的时候,VMware会为新产生的虚拟机配置一个与原始虚拟机网卡MAC地址不同的网卡。对于CentOS这样的Linux系统,会把运行时的网卡MAC地址记入到 /etc/udev/rules.d/70-persistent-net.rules 文件中。这样克隆好的新系统里也保存了这个记录。当新系统启动时,由于vmware已经为其配置了不同的MAC地址,因此系统会在启动扫描硬件时把这个新的MAC地址的网卡当做是eth1,并且增加记入上述文件中。而此时配置文件里的 /etc/sysconfig/network-scripts/ifcfg-eth0 里记录的还是原来的MAC地址,而这个MAC地址在新系统里是不存在的,所以无法启动。
于是我打开这个文件:
vim /etc/udev/rules.d/70-persistent-net.rules
看到了如下所示的结果:
这就很好理解了,原因是我这个系统已经克隆了好几次,每次新系统都是在老系统的基础上克隆得到的,所以网卡的编号已经到了eth3了,再来看eth3的mac地址,发现和ifconfig查到的结果一致,这就能解释为什么ifconfig的结果了。
今天看了很多相关的博客,但是问题还是没有得到解决,暂时先记录下来,后面会继续跟进这个问题。不过总算是有点收获,知道了克隆时候vmware虚拟机的对mac地址的处理,对ifcfg文件中各个参数做了一些调研,还是值得借鉴的。