双机热备篇 VRRP与VGMP的故事(2)

上篇我们在学习了VRRP的实现原理,以及如何通过VGMP解决VRRP问题后,提出了两个问题。第一个问题是“两台防火墙的VGMP组是如何传递VGMP的优先级信息的?”。答案是防火墙的VGMP组通过备份通道(心跳线),利用VGMP报文来传递优先级信息第二个问题是“两台防火墙的VGMP组的状态协商和切换过程,以及报文交互过程到底是怎样的呢?”,我们还没有给出答案。

      在本篇中,强叔将通过图解的方式完整地给出各种情况下,两台防火墙的VGMP组的状态协商和切换过程,以及报文交互过程,保证您有看大片儿的感觉~

 防火墙VGMP组的缺省情况

在欣赏大片儿前,我们首先来了解下背景知识,也就是防火墙VGMP组的缺省情况。

如下图所示,每台防火墙提供两个VGMP组:Active组和Standby组。缺省情况下,Active组的优先级为65001,状态为ActiveStandby组的优先级为65000,状态为Standby。主备备份情况下,主用设备启用Active组,所有成员(例如VRRP备份组)加入Active组;备用设备启用Standby组,所有成员加入Standby组。负载分担情况下,两台设备都启用Active组和Standby组,每台设备上的所有成员分别加入Active组和Standby组。FW1Active组和FW2Standby组形成一组“主备”,FW2Active组和FW1Standby组形成一组“主备”,两台防火墙互为“主备”,形成负载分担。


 

        以上讲的是中低端防火墙USG2000/5000/6000系列的情况,由于高端防火墙存在接口板和业务板,所以高端防火墙的缺省优先级与中低端防火墙是不同的:

高端防火墙Master组的缺省优先级=45001+1000×(业务板个数+接口板个数)。

Slave组的缺省优先级=45000+1000×(业务板个数+接口板个数)。

说明:这里说明的高端防火墙优先级算法以USG9000系列V1R3版本为例。而本篇的双机热备配置和状态切换过程以中低防火墙的USG2000/5000/6000系列为例。

 主备备份双机热备状态形成过程

主备备份方式的双机热备是目前较常用的双机方式,配置和理解也比较简单,因此我们先从主备备份双机热备状态形成的过程来看。

为了让大家能够真实地感受到VRRPVGMP在防火墙上的存在,我们下面会先给出防火墙主备备份双机热备的配置,然后描述配置完成后双机热备状态形成的过程。

为了实现主备备份方式的双机热备,我们需要在FW1上启用Active组,并将FW1上的VRRP备份组都加入Active组;在FW2上启用Standby组,并将FW2上的VRRP备份组都加入Standby组。实现此操作的命令为vrrp vrid virtual-router-id virtual-ip virtual-address [ ip-mask | ip-mask-length ] {active | standby }。这条命令看似简单,但功能很强大,一条命令配置下去两件事轻松搞定:

l 由于是在接口视图下执行这条命令,所示实际上是将接口加入了VRRP备份组,同时指定了虚拟IP地址和掩码。

    当接口的IP地址与VRRP备份组的虚拟IP地址不在同一网段时,必须配置虚拟IP地址的掩码。

l active | standby”参数是将VRRP备份组加入ActiveStandby组。

结合下面的图来给出我们建立主备方式双机热备的具体配置,如下表所示:

FW1的配置

FW2的配置

interface GigabitEthernet 1/0/1

 ip address 10.1.1.2 255.255.255.0

 vrrp vrid 1 virtual-ip 10.1.1.1 255.255.255.0 active

//将接口GE1/0/1加入VRRP备份组1,并将VRRP备份组1加入Active组。

interface GigabitEthernet 1/0/1

 ip address 10.1.1.3 255.255.255.0

 vrrp vrid 1 virtual-ip 10.1.1.1 255.255.255.0 standby

//将接口GE1/0/1加入VRRP备份组1,并将VRRP备份组1加入Standby组。

interface GigabitEthernet 1/0/3

 ip address 1.1.1.2 255.255.255.0

 vrrp vrid 2 virtual-ip 1.1.1.1 255.255.255.0 active

//将接口GE1/0/3加入VRRP备份组2,并将VRRP备份组2加入Active组。

interface GigabitEthernet 1/0/3

 ip address 1.1.1.3 255.255.255.0

 vrrp vrid 2 virtual-ip 1.1.1.1 255.255.255.0 standby

//将接口GE1/0/3加入VRRP备份组2,并将VRRP备份组2加入Standby组。

hrp interface GigabitEthernet 1/0/2  //指定心跳口

hrp enable      //启用双机热备功能

hrp interface GigabitEthernet 1/0/2  //指定心跳口

hrp enable      //启用双机热备功能

各种VGMP报文和HRP报文都是通过心跳口发送的,心跳口可以说是双机热备的“命脉”,要点多多,务必关注:

l 两台设备的心跳口必须加入相同的安全区域。

l 两台设备的心跳口的接口类型和编号必须相同。例如主用设备的心跳接口为GigabitEthernet 1/0/2,那么备用设备的心跳接口也必须为GigabitEthernet 1/0/2

l 配置心跳口时如果不添加remote参数,则两台设备的心跳口需要直接相连或通过二层交换机相连,并且不需要配置安全策略。如果配置心跳口时添加remote参数(例如hrp interface GigabitEthernet 1/0/2 remote 10.1.1.2),那么两台设备的心跳口可以通过路由器相连,但是需要配置安全策略。因为不添加remote参数时,心跳口发送的报文是用VRRP报文封装的,是一种组播报文。组播报文不能跨越网段传输,且不受安全策略控制。添加remote参数后,从心跳口发送的各种报文将封装成UDP报文。UDP报文是一种单播报文,只要路由可达就可以跨越网段传输,但需要受到安全策略控制。安全策略的配置方法是允许报文在local区域与心跳口所在安全区域间双向通过。

如上图所示,配置完成后,主备备份方式的双机热备状态形成过程如下(图中序号与下文序号一致):

1)    双机热备启用之后,FW1Active组的状态会由Initialize切换成ActiveFW2Standby组的状态由Initialize切换成Standby

2)    由于FW1VRRP备份组都加入了Active组,而Active组的初始状态为Active,所以FW1VRRP备份组1VRRP备份组2的状态都为Active。同理FW2VRRP备份组1VRRP备份组2的状态都为Standby

3)    这时FW1VRRP备份组12会分别向上行和下行交换机发送免费ARP报文,将VRRP备份组的虚拟MAC地址通知给他们。其中00-00-5E-00-01-01VRRP备份组1的虚拟MAC地址,00-00-5E-00-01-02VRRP备份组2的虚拟MAC地址。

4)    上下行的交换机的MAC表项会分别记录虚拟MAC地址与端口Eth0/0/1的对应关系。这样当上下行的业务报文到达交换机后,交换机会将报文转发到FW1上,所以FW1成为了主用设备,FW2成为了备用设备。

5)    同时FW1Active组还会通过心跳线定时向FW2Standby组发送HRP心跳报文。



3      主用设备接口故障后的状态切换过程

两台防火墙形成主备备份状态后,如果主用设备的接口故障,那么两台防火墙会发生主备状态切换,具体过程如下:

1)    如下图所示,当主用设备的接口GE1/0/1故障后,FW1VRRP备份组1的状态变成Initialize

2)    FW1Active组会感知到这一变化,将自身的优先级降低2(一个接口故障优先级降低2),并将自身状态切换成Active To Standby(图中简写为A To S)。Active To Standby是一种短暂的中间状态,用户是不可见的。

3)    FW1Active组会向对端发送VGMP请求报文,请求将状态切换成StandbyVGMP请求报文是一种VGMP报文,携带本端VGMP组调整后的优先级64999


4)    如下图所示,FW2Standby组收到FW1Active组的VGMP请求报文后,将会与对端比较VGMP优先级。经过比较后发现本端的优先级65000高于对端的64999,因此FW2Standby组会将自身状态切换成Active

5)    FW2Standby组会向对端返回VGMP应答报文,允许对端进行状态切换。

6)    与此同时FW2Standby组会强制组内的VRRP备份组12也将状态切换成Active

7)    FW2VRRP备份组12会分别向下行和上行交换机发送免费ARP报文,更新他们的MAC转发表。

 

8)    如下图所示,FW1Active组收到对端的VGMP确认报文后,会将自身状态切换成Standby

9)    FW1Active组会强制组内的VRRP备份组将状态切换成Standby。由于VRRP备份组1内的接口故障,所以VRRP备份组1的状态为Initialize不变,只有VRRP备份组2的状态切换成Standby

10)  与此同时,上下行交换机收到FW2的免费ARP报文后会更新MAC表项,记录虚拟MAC地址与端口Eth0/0/2的对应关系。这样当上下行的业务流量到达交换机后,交换机会将流量转发到FW2上。至此两台防火墙的主备状态切换完成,FW2成为新的主用设备,FW1成为新的备用设备。

11)  主备状态切换完成后,新的主用设备FW2会定时向新的备用设备FW1发送心跳报文。


 主用设备整机故障后的状态切换过程

当主用设备整机故障后,主用设备的VGMP组将不会再发送HRP心跳报文。这时如果备用设备的VGMP组连续三次收不到主用设备的HRP心跳报文,那么他就会认定对端的VGMP组故障,从而将自身切换到主用状态。

 原主用设备故障恢复后的状态切换过程(抢占)

当原主用设备的故障恢复后,如果配置了抢占功能,那么原主用设备将重新抢占成为主用设备,具体过程如下文所示。如果没有配置抢占功能,则原主用设备依旧保持备份状态。

1)    如下图所示,原主用设备的接口GE1/0/1故障恢复后,VRRP备份组1的状态由Initialize切换成Standby

2)    FW1Active组感知到这一变化后,会将自身的优先级升高2(一个接口故障恢复优先级升高2),升高到65001FW1Active组会与对端比较VGMP优先级,对端的优先级信息是从对端发送的HRP心跳报文中获取的。经过比较后发现本端的优先级65001高于对端的65000。这时如果配置了抢占功能,则会启动抢占延时。抢占延时结束后,FW1Active组会将状态由Active To Standby切换成Standby To Active(图中简写为S To A)。Standby To Active是一种短暂的中间状态,用户是不可见的。

3)    FW1Active组会向对端发送VGMP请求报文,请求将状态切换成ActiveVGMP请求报文是一种VGMP报文,携带本端VGMP组调整后的优先级65001


4)    如下图所示,FW2Standby组收到FW1Active组的VGMP请求报文后,将会与对端比较VGMP优先级。经过比较后发现本端的优先级65000低于对端的65001,因此FW2Standby组会将自身状态切换成Standby

5)    FW2Standby组会向对端返回VGMP应答报文,允许对端将状态切换成Active

6)    与此同时FW2Standby组会强制组内的VRRP备份组12也将状态切换成Standby

7)    如下图所示,FW1Active组收到对端的VGMP确认报文后,会将自身状态切换成Active

8)    FW1Active组会强制组内的VRRP备份组12也将状态切换成Active

9)    FW1VRRP备份组12会分别向下行和上行交换机发送免费ARP报文,更新他们的MAC转发表。上下行交换机收到免费ARP报文后会更新MAC表项,记录虚拟MAC地址与端口Eth0/0/1的对应关系。这样当上下行的业务报文到达交换机后,交换机会将报文转发到FW1上。至此两台防火墙的主备状态切换完成,FW1重新抢占成为主用设备,而FW2重新成为备用设备。

10)  主备状态切换完成后,主用设备FW1会定时向备用设备FW2发送心跳报文。


你可能感兴趣的:(双机热备篇,VRRP与VGMP的故事(2))