目录
ipv6地址冲突:IPv6 duplicate address xxx::xxx:xxx:xxx:xxx detected
记一次基于centos7环境多台虚拟机启动时,网卡启动异常的现象及处理方式。
背景描述
在某些原因下,需要启动多台虚拟机进行搭建集群环境进行测试。于是,采用vmplayer在本地环境启动了多台虚拟机,每台虚拟机均基于同一份镜像拷贝生成。在网络策略这块,采用的是nat模式,借助物理机所在的网络来访问外网。
问题描述及处理步骤
mac地址冲突
在启动第一台虚拟机时,能正常访问外网,虚拟网卡为ens33,其配置为
[root@docker01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
OXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ca4c1b0d-43b5-465e-9240-a3dec871ce67
DEVICE=ens33
ONBOOT=yes
# BOOTPROTO=dhcp
BOOTPROTO=static
IPADDR=192.168.174.160
NETMASK=255.255.255.0
GATEWAY=192.168.174.2
DNS1=114.114.114.114
在启动第二台虚拟机(拷贝第一台虚拟机生成)时,修改了虚拟网卡ens33的IPADDR属性(避免冲突)后,执行systemctl restart network后,启动异常,并提示
此时,我们通过journalctl -xe查看系统日志,可以查看到以下的日志信息
Adapter Ethernet0 may not have network connectivity.MAC address 00:0C:29:79:1C:08 of adapter Ethernet0 is within the reserved address range or is in use by another virtual adapter on your system.*.
这是因为,多台虚拟机拷贝过来后,虚拟网卡的地址冲突了
在经过一番检索后,找到了一个解决方案,来变更我们的网卡地址(无效案例)如下:
1.修改/etc/sysconfig/network-scripts/ifcfg-XXX(网卡名),在末尾添加HWADDR=00:0c:29:xx:xx:xx (如果存在的话只修改就可以,HWADDR配置虚拟机拷贝时分配的虚拟网卡地址,见虚拟机配置->网络适配器->高级)
2. 本来还需要修改/etc/udev/rules.d/70-persistent-net.rule,但是由于文件不存在,变未做任何操作
3.systemctl restart network
执行上述操作后,会启动失败,出现以下异常
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
此时,我们通过journalctl -xe指令查看系统日志,发现以下报错信息
Different MAC Address than expected, ignoring
这是因为我们后面配置的mac地址和ens33的网卡地址不一致,也就是说后面配置未能生效。
因此,又找到了另一种修改mac地址的方案。如下所示:
临时方案:(eth0代表网卡名称,需指定对应网卡)
1)关闭网卡设备
[root@localhost ~]# ifconfig eth0 down
2)修改MAC地址
[root@localhost ~]#ifconfig eth0 hw ether MAC地址(此处添加你要修改的MAC地址)
3)重启网卡
[root@localhost ~]#ifconfig eth0 up
4)查看修改是否生效:
[root@localhost ~]#ifconfig eth0
此时,通过systemctl restart network 重启网络,即可访问外网了
注意:上述方案是临时解决方案,虚拟机重启后,网卡地址会变回原来的地址
永久方案:
打开/etc/rc.d/rc.local ,追加三行内容(eth0为配置的网卡名称)
ifconfig eth0 down
ifconfig eth0 hw ether 00:0c:29:xx:xx:xx
ifconfig eth0 up
编辑保存后,执行reboot重启后便可生效
ipv6地址冲突:IPv6 duplicate address xxx::xxx:xxx:xxx:xxx detected
在通过journal -xe查看系统日志的过程中,还发现了一个问题,即:
IPv6 duplicate address xxx::xxx:xxx:xxx:xxx detected