keepalived与标准VRRP协议中虚拟MAC地址差异

我们知道keepalived使用的是VRRP协议,在很多文章中,针对VRRP协议是这样描述的:“VRRP通过竞选协议来实现虚拟路由器的功能,所有的协议报文都是通过IP多播(multicast)包(多播地址 224.0.0.1形式发送的。虚拟路由器由VRID(范围0-255)和一组IP地址组成,对外表现为一个周知的MAC地址: 00-00-5E-00-01-{VRID}。所以,在一个虚拟路由器中,不管谁是MASTER,对外都是相同的MAC和IP(称之为VIP)。客户端主机并不需要因为MASTER的改变而修改自己的路由配置,对他们来说,这种主从的切换是透明的。”

于是这二天在keepalived服务器上查找相关的配置,但发现与之上的描述是不同的,实际的应该是以下的:

主机A; ip地址:ipA ;mac地址:macA
备机B ;ip地址:ipB ;mac地址:macB
虚拟ip地址:vip

keepalived分别安装在主机A和备机B上,双方启动以后,主机A就会向局域网内发送arp响应包,该arp响应包的ip地址被设为vip,mac地址被设为macA,所有接收的此报文的电脑就会将这个对应关系写入自己的ARP缓存表中,下次访问vip时,就会根据对应的mac地址访问到主机A
当备机B监听到主机A挂了的时候,就会向局域网内发送arp响应包,并将arp响应包的ip地址设为vip,mac地址设为macB,所有接收的此报文的电脑就会将这个对应关系写入自己的ARP缓存表中,下次访问vip时,就会根据对应的mac地址访问到备机B

先手工删除arp记录:arp -d 10.5.99.41
在其它服务器上tcpdump抓包 tcpdump arp -ent -vvv

posted @ 2022-09-13 10:39  liujw2001  阅读(875)  评论(0)    收藏  举报