【防火墙技术连载38】强叔侃墙 双机热备篇 VRRP与VGMP的故事(上) (huawei.com)
vrrp备份组状态切换过程
当VRRP备份组状态切换完成后,新的Master路由器会立即发送携带VRRP备份组虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的设备(下行交换机)中的MAC表项。下行的交换机的MAC表项会记录虚拟MAC地址与新的端口Eth0/0/2的对应关系。

【防火墙技术连载38】强叔侃墙 双机热备篇 VRRP与VGMP的故事(上) (huawei.com)
vrrp备份组状态切换过程
当VRRP备份组状态切换完成后,新的Master路由器会立即发送携带VRRP备份组虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的设备(下行交换机)中的MAC表项。下行的交换机的MAC表项会记录虚拟MAC地址与新的端口Eth0/0/2的对应关系。

在以太网中,MAC地址表项用于指导设备进行二层数据转发,ARP表项通过IP地址和MAC地址的映射指导设备进行不同网段间的通信。
在VRRP下挂服务器的场景中,MAC地址表项的出接口通过报文触发刷新,ARP表项的出接口是在老化时间到后通过老化探测进行刷新的。这样就可能会出现MAC表项和ARP表项出接口不一致的情况,即MAC地址表项的出接口已刷新,而ARP表项的出接口没有及时刷新的情况。此时可以使能MAC刷新ARP的功能,在MAC地址表项出接口刷新时,直接刷新ARP表项的出接口。如下图所示的场景,SwitchA和SwitchB作为Server的网关,通过VRRP来增强可靠性,VRRP协议报文通过两个Switch之间的直连链路收发。Server发送报文时,一般情况下只会选择一个网口发包,当检测到网络故障或者流量异常时,可能切换到另外一个网口发包。
这种情况下就可以在SwitchA和SwitchB上配置MAC刷新ARP功能,当MAC表项的出接口变化时,会即时更新ARP表项的出接口,从而保证MAC表项和ARP表项出接口的一致性。

基于MAC表项刷新ARP表项功能缺省未使能,可通过mac-address update arp命令使能该功能。此命令适用于动态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。
port-group 1
group-member e0/0/0 to e0/0/10
port link-type access //注意配置有先后顺序,必须先指定接口类型,才能家加入VID.
port default vlan vid
VRRP(Virtual Router Redundancy Protocol)是一种容错协议,它保证当主机的下一跳路由器(默认网关)出现故障时,由备份路由器自动代替出现故障的路由器完成报文转发任务,从而保持网络通信的连续性和可靠性。
在FW上配置VRRP时,是将两台FW上编号相同的接口加入一个VRRP备份组。一个VRRP备份组相当于一台虚拟路由设备,拥有虚拟IP地址和虚拟MAC地址。网络内主机将其网关设置为VRRP备份组的虚拟IP地址。这些主机都是通过虚拟路由器与外部网络通信。
VRRP备份组有三种状态:Initialize、Master和Backup。
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 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备份组时,他们之间的状态无法同步。


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