描述:在CAS实例内部修改IP,一段时间后,CVM查看虚拟机概要信息中网卡信息会同步虚拟机内部的IP地址,CAS是如何实现的呢?

网络拓扑:CAS虚拟机网卡在虚拟交换机vswitch0
现象分析:虚拟机内部IP地址修改(55.55.55.55),重启网络服务,虚拟机内部网卡可以抓到包
1
| 15:41:43.949624 fa:16:3e:03:ca:96 > Broadcast, ethertype IPv6 (0x0806), length 42: Reply 55.55.55.55 is-at fa:16:3e:03:ca:96, length 28
|
在CAS的虚拟机所在的CVK节点抓包分析,在vswitch0交换机,ovs-system及vswitch0交换机下端口vnetX中均可以抓到此Reply包,如下:
1 2 3 4 5 6
| [root@cvk56 ~]# tcpdump -ne -i ovs-system tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ovs-system, link-type EN10MB (Ethernet), capture size 262144 bytes
16:22:29.606448 fa:16:3e:03:ca:96 > Broadcast, ethertype 802.1Q (0x8100), length 46: vlan 20, p 0, ethertype ARP, Reply 55.55.55.55 is-at fa:16:3e:03:ca:96, length 28 16:22:31.505343 fa:16:3e:03:ca:96 > Broadcast, ethertype 802.1Q (0x8100), length 46: vlan 20, p 0, ethertype ARP, Request who-has 55.55.55.55 (Broadcast) tell 55.55.55.55, length 28
|
由此分析,CAS是通过监听网卡或者网桥的Reply回包整理得出虚拟机MAC及IP的对应关系,汇总到CVM节点,每分钟刷新时会将此对应关系同步到CVM的虚拟机网卡信息中。
Note1:在虚拟机内部网卡修改后,需要通过重启网卡服务生效后才会抓到Reply包,比如Centos系统,需执行systemctl restart network后方能抓包,如使用ifconfig down && ifconfig up命令虚拟机中网卡会更新,但是此时网卡不会收到Reply包,CVM中的IP信息也不会更新。
Note2:虚拟机网卡配置IP时,如果配置了从IP,抓包时会显示多条Reply记录,根据CVM的查询结果显示,CVM会同步最后一条Reply记录并不会同步多个网卡记录信息,即CVM会更新网卡信息为最新收到的Reply中虚拟机MAC地址与IP信息的对应关系。