在以太网中,MAC地址表项用于指导设备进行二层数据转发,ARP表项通过IP地址和MAC地址的映射指导设备进行不同网段间的通信。
在VRRP下挂服务器的场景中,MAC地址表项的出接口通过报文触发刷新,ARP表项的出接口是在老化时间到后通过老化探测进行刷新的。这样就可能会出现MAC表项和ARP表项出接口不一致的情况,即MAC地址表项的出接口已刷新,而ARP表项的出接口没有及时刷新的情况。此时可以使能MAC刷新ARP的功能,在MAC地址表项出接口刷新时,直接刷新ARP表项的出接口。如图3-27所示的场景,SwitchA和SwitchB作为Server的网关,通过VRRP来增强可靠性,VRRP协议报文通过两个Switch之间的直连链路收发。Server发送报文时,一般情况下只会选择一个网口发包,当检测到网络故障或者流量异常时,会切换到另外一个网口发包。
SwitchA为VRRP主设备,一开始服务器使用Port1发送报文,此时SwitchA学习到的服务器ARP表项和MAC表项都在Port1接口上,SwitchB学习的服务器MAC在Port2接口;
当服务器检测到Port1故障时,服务器切换至Port2继续发送业务报文,这时SwitchA学习到的服务器MAC地址会刷新到Port2,但如果服务器切换转发接口后不主动发送ARP请求报文的话,ARP表项还是在Port1接口上。这样SwitchA发往服务器的报文就会从接口Port1接口发出去,而不能被正确转发,直到该ARP表项老化。
这种情况下就可以在SwitchA和SwitchB上配置MAC刷新ARP功能,当MAC表项的出接口变化时,会即时更新ARP表项的出接口,从而保证MAC表项和ARP表项出接口的一致性。
图3-27 VRRP主备切换时配置MAC刷新ARP示意
基于MAC表项刷新ARP表项功能缺省未使能,可通过mac-address update arp命令使能该功能。