Network 在VRRP场景中,为什么要基于MAC表项刷新ARP表项

在以太网中,MAC地址表项用于指导设备进行二层数据转发ARP表项通过IP地址和MAC地址的映射指导设备进行不同网段间的通信

在VRRP下挂服务器的场景中,MAC地址表项的出接口通过报文触发刷新,ARP表项的出接口是在老化时间到后通过老化探测进行刷新的。这样就可能会出现MAC表项和ARP表项出接口不一致的情况,即MAC地址表项的出接口已刷新,而ARP表项的出接口没有及时刷新的情况。此时可以使能MAC刷新ARP的功能,在MAC地址表项出接口刷新时,直接刷新ARP表项的出接口。如下图所示的场景,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表项出接口的一致性。

基于MAC表项刷新ARP表项功能缺省未使能,可通过mac-address update arp命令使能该功能。此命令适用于动态ARP 表项生效。

Network 免费ARP

Q:
什么是免费ARP和过路ARP?

A:
1、免费ARP

免费ARP:Gratuitous ARP(Address Resolution Protocol),是指报文净荷中的源IP地址和目的IP地址相等的ARP报文。

ARP报文格式:


免费ARP的作用:
1)向周边设备通告本设备的ARP。周边设备就可以学习ARP表项,当接受到报文时,无需重新请求ARP,提高了通信效率。
2)IP地址冲突检测。如果收到了免费ARP的应答报文,说明本地IP地址已经在网络中的其他地方被占用了。

使用场景:

在vrrp中VRRP备份组向周边设备发送免费arp通告虚拟的MAC地址和下行交换机接口的对应关系。

当master 故障时,backup及时接替master角色发布免费ARP ,通告下行交换机虚拟MAC地址与交换机接口的对应关系。

IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。

用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。

Network 华为防火墙双机热备技术分析VRRP、VGMP、HRP

VRRP 协议

VRRP(Virtual Router Redundancy Protocol)是一种容错协议,它保证当主机的下一跳路由器(默认网关)出现故障时,由备份路由器自动代替出现故障的路由器完成报文转发任务,从而保持网络通信的连续性和可靠性。

在FW上配置VRRP时,是将两台FW上编号相同的接口加入一个VRRP备份组。一个VRRP备份组相当于一台虚拟路由设备,拥有虚拟IP地址和虚拟MAC地址。网络内主机将其网关设置为VRRP备份组的虚拟IP地址。这些主机都是通过虚拟路由器与外部网络通信。

VRRP备份组有三种状态:InitializeMasterBackup

VRRP备份组相当于一台虚拟路由器,这个虚拟路由器有自己的虚拟IP地址和虚拟MAC地址(格式:00-00-5E-00-01-{VRID},VRID是VRRP备份组的ID)。所以,局域网内的主机可以将默认网关设置为VRRP备份组的虚拟IP地址。在局域网内的主机看来,他们就是与虚拟路由器进行通信的,然后通过虚拟路由器与外部网络进行通信。

需要注意的是如果接口的IP地址与VRRP备份组地址不在同一网段,则配置VRRP备份组地址时需要指定掩码。

vrrp 的remote参数

配置心跳口时如果不添加remote参数,则两台设备的心跳口需要直接相连或通过二层交换机相连,并且不需要配置安全策略。如果配置心跳口时添加remote参数(例如hrp interface GigabitEthernet 1/0/2 remote 10.1.1.2),那么两台设备的心跳口可以通过路由器相连,但是需要配置安全策略。因为不添加remote参数时,心跳口发送的报文是用VRRP报文封装的,是一种组播报文。组播报文不能跨越网段传输,且不受安全策略控制

添加remote参数后,从心跳口发送的各种报文将封装成UDP报文。UDP报文是一种单播报文,只要路由可达就可以跨越网段传输,但需要受到安全策略控制。安全策略的配置方法是允许报文在local区域与心跳口所在安全区域间双向通过

VGMP 与VRRP

VGMP(VRRP Group Management Protocol)协议是华为公司的私有协议。VGMP协议中定义了VGMP组,FW基于VGMP组实现设备主备状态管理。

华为交换机或路由器设备上,VRRP备份组的状态是由VRRP优先级大小决定。同一个VRRP备份组中,VRRP优先级最大的设备的VRRP备份组状态为Master,其他设备的VRRP备份组状态为Backup。

FW的VRRP备份组状态则不是由VRRP优先级大小决定。实际上,FW的VRRP优先级是不可配置的。FW启用双机热备功能后,VRRP优先级固定为120。正常情况下,两台FW的VGMP组状态都是load-balance,VRRP备份组的运行状态由配置决定

上面我们在讲解VRRP时提到的状态都是“Master”和“Standby”,这里为什么都变成“Active”和“Standby”了呢?

答:防火墙在NGFW版本中统一将双机热备(原为“Master”和“Slave”)和VRRP(原为“Master”和“Standby”)的状态修改为“Active”和“Standby”。所以当你在某些文档中看到这些以前的状态请不要奇怪,按本文描述的“Active”和“Standby”理解即可。

多个VRRP状态相互独立产生问题

VRRP备份组之间是相互独立的,当一台设备上出现多个VRRP备份组时,他们之间的状态无法同步。

VGMP (虚拟组管理协议)

为了解决多个VRRP备份组状态不一致的问题,华为防火墙引入VGMP(VRRP Group Management Protocol)来实现对VRRP备份组的统一管理,保证多个VRRP备份组状态的一致性。我们将防火墙上的所有VRRP备份组都加入到一个VGMP组中,由VGMP组来集中监控并管理所有的VRRP备份组状态。如果VGMP组检测到其中一个VRRP备份组的状态变化,则VGMP组会控制组中的所有VRRP备份组统一进行状态切换,保证各VRRP备份组状态的一致性。

防火墙缺省VGMP

如下图所示,每台防火墙提供两个VGMP组:Active组和Standby组。缺省情况下,Active组的优先级为65001,状态为Active;Standby组的优先级为65000,状态为Standby。

主备备份情况下,主用设备启用Active组,所有成员(例如VRRP备份组)加入Active组;备用设备启用Standby组,所有成员加入Standby组。

负载分担情况下,两台设备都启用Active组和Standby组,每台设备上的所有成员分别加入Active组和Standby组。FW1的Active组和FW2的Standby组形成一组“主备”,FW2的Active组和FW1的Standby组形成一组“主备”,两台防火墙互为“主备”,形成负载分担。

通俗的讲在多个备份组状态下(例Trust、Untrust、Dmz各建立 一个VRRP 备份组),其中一台防火墙是3个组的Master,另一台防火墙是Backup ,不存在3个备份组Master、Backup 交叉分布在2台防火墙上。

VGMP 还要管理通道(trans-only) 也就是传递信息。

HRP 协议

华为冗余协议:状态信息的备份,也就是在状态切换进会话表也要传递过去、承载在VGMP报文上传输,也就是配置和状态在其中一台配置完,状态会同步到另一台。在ENSP 模拟器中配置可以同步,状态不能同步。