CAS实例内修改IP分析

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

CAS实例内部修改IP

网络拓扑: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信息的对应关系。


CAS实例内修改IP分析
http://maitianxin.github.io/2022/09/01/other/cas/
作者
Matianxin
发布于
2022年9月1日
许可协议