CentOS中,udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。但是通过镜像进行克隆,qemu(vmware也是一个德行)在启动新的镜像时会再自动重新生成虚拟机的MAC地址。这样,由于基本系统的虚拟机已经记录了原始虚拟机的网卡mac地址对应于网卡eth0,而在克隆出的虚拟机中由于mac地址发生改变,udev会自动将该mac对应于网卡eth1(累加的原则)。
[root@localhost ~]# vim /etc/udev/rules.d/70-persistent-net.rules
以此类推,udev会记录所有已经识别的mac与网卡名的关系,所以每次克隆网卡名称会自动加1,而其实虚拟机xml中真实的只配置了一张网卡,kernel也仅仅只能识别到一张网卡,跟网卡名相关的网络配置也未发生任何变化。所以系统起来后,network或者networkmanager只会通过dhclint来调用ifcfg-eth0(ifcfg-ens30)来获取IP,但是配置文件中的mac地址和网卡名与kernel真实识别到的mac地址网卡名又不一