介绍了双机热备的定义和由来。
随着移动办公、网上购物、即时通讯、互联网金融、互联网教育等业务蓬勃发展,网络承载的业务越来越多,越来越重要。所以如何保证网络的不间断传输成为网络发展过程中急需解决的一个问题。
如图1中的左图所示,防火墙部署在企业网络出口处,内外网之间的业务都会通过防火墙转发。如果防火墙出现故障,便会导致内外网之间的业务全部中断。由此可见,在这种网络关键位置上如果只使用一台设备的话,无论其可靠性多高,都存在因设备单点故障而导致网络中断的风险。
于是,在做网络架构设计时,通常会在网络的关键位置部署两台网络设备,以提升网络的可靠性。如图1中的右图所示,当一台防火墙出现故障时,流量会通过另外一台防火墙所在的链路转发,保证内外网之间业务正常运行。
图1 双机部署提升网络可靠性
如果是传统的网络设备(如路由器、三层交换机),只需要在两台设备上做好路由的备份就可以保证业务的可靠性,即当一台设备出现故障时,另一台设备能够接替故障设备处理业务,保证业务不中断。
而防火墙是状态检测设备,他会对一条流量的首包(第一个报文)进行完整的检测,并建立会话来记录报文的状态信息(包括报文的源IP、源端口、目的IP、目的端口、协议等)。而这条流量的后续报文只有匹配会话才能够通过防火墙并且完成报文转发,如果后续报文不能匹配会话则会被防火墙丢弃。所以当防火墙双机部署时还需要考虑两台防火墙之间的会话等状态信息的备份。
FW的双机热备功能可以完美的解决以上问题。
如图2所示,FW的双机热备功能会提供一条专门的备份通道,用于两台FW之间协商主备状态,以及会话等状态信息和配置命令的备份。
双机热备主要包括主备备份和负载分担两种方式。
如图2所示,主备备份是指正常情况下仅由主用设备处理业务,备用设备空闲;当主用设备接口、链路或整机故障时,备用设备切换为主用设备,接替主用设备处理业务。
图2 双机热备保证业务不中断
如图3所示,负载分担也可以称为“互为主备”,即两台设备同时处理业务。当其中一台设备发生故障时,另外一台设备会立即承担其业务,保证原来需要通过这台设备转发的业务不中断。
图3 负载分担方式的双机热备
介绍了双机热备的主要三种应用场景。
双机热备直路部署
介绍了两台处于双机热备状态的FW直路部署在网络中的场景。
双机热备透明接入部署
介绍了两台处于双机热备状态的FW二层透明部署在网络中的场景。
双机热备旁挂部署
介绍了两台处于双机热备状态的FW旁挂部署在网络中核心设备上的场景。
介绍了两台处于双机热备状态的FW直路部署在网络中的场景。
双机热备直路部署是指两台FW的业务接口工作在三层,并且串联部署在上下行设备之间。FW需要与上下行设备之间运行路由协议,上下行设备之间的业务流量都会经过FW。
· 双机直路部署,上下行连接二层设备
如图1所示,FW的上、下行业务接口工作在三层,与二层交换机直连。FW与交换机后的路由器或者PC之间运行静态路由。
此组网是FW推荐的典型双机热备组网,是已经应用得很成熟的组网方式,广泛适用于中小型网络或FW作网关的网络。
图1 业务接口工作在三层,上下行连接二层设备的组网
在图1的基础上,将FW_A的上行接口与Switch4相连,下行接口与Switch2相连;将FW_B的上行接口与Swith3相连,下行接口与Swith1相连。
这样就组成了双机热备的全冗余组网,如图2所示。
双机热备的全冗余组网能够进一步提升网络可靠性,避免多条链路故障时业务中断。例如,当FW_A的GE1/0/1、GE1/0/2和FW_B的GE1/0/1这三个接口都故障时,业务流量依然能够通过FW_B的GE1/0/2接口转发。
图2 双机热备全冗余组网
· 双机直路部署,上下行连接三层设备
如图3所示,FW的上、下行业务接口工作在三层,与路由器直连。FW与上、下行路由器之间运行OSPF协议。
此组网也是FW推荐的典型双机热备组网,是已经应用得很成熟的组网方式,广泛适用于大中型网络。
此组网可以与业务接口工作在三层,上下行连接二层设备的组网结合使用,即组成上行连二(三)层设备,下行连三(二)层设备的组网。
图3 业务接口工作在三层,上下行连接路由器的组网
介绍了两台处于双机热备状态的FW二层透明部署在网络中的场景。
双机热备透明接入部署是指两台FW的业务接口工作在二层,并且透明部署在现有的上下行设备之间。FW不参与上下行设备之间的路由计算,因此FW在接入到现有网络中时,上下行设备都不需要修改配置。
· 双机透明接入,上下行连接二层设备
如图1所示,FW的上、下行业务接口工作在二层,与二层交换机直连。每台FW的上下行业务接口加入到同一个VLAN。
在此组网中,FW透明接入到原有交换机网络,不改变网络拓扑。
由于FW的业务接口工作在二层,因此不能运行与IP地址相关的业务,例如VPN。
图1 业务接口工作在二层,上下行连接二层设备的组网
· 双机透明接入,上下行连接三层设备
如图2所示,FW的上、下行业务接口工作在二层,与路由器直连。上、下行路由器之间运行OSPF动态路由协议。每台FW的上下行业务接口加入到同一个VLAN。
在此组网中,两台FW共同处理业务,而且FW透明接入到原有路由器网络,不改变网络拓扑。
由于FW的业务接口工作在二层,因此不能运行与IP地址相关的业务,例如VPN。
图2 业务接口工作在二层,上下行连接三层设备的组网
介绍了两台处于双机热备状态的FW旁挂部署在网络中核心设备上的场景。
双机热备旁挂部署是指两台FW的业务接口工作在三层,并且旁挂在二层或三层设备上。
FW的双机热备旁挂部署主要有两个优点:
· 可以在不改变现有网络物理拓扑的情况下,将FW部署到网络中。
· 可以有选择的将通过被旁挂设备的流量引导到FW上,即对需要进行安全检测的流量引导到FW上进行处理,对不需要进行安全检测的流量直接通过被旁挂设备转发。
· 双机旁挂在三层设备
如图1所示,两台FW旁挂在三层交换机侧。通过三层交换机的流量可以被引导到旁挂的FW上进行安全检测
图1 防火墙双机旁挂在三层设备的组网
· 双机旁挂在二层设备
如图2所示,两台FW旁挂在二层交换机侧。如果内部网络的主机将默认网关设置在FW上,则内部网络去往外部网络的流量将通过FW进行安全检测。
图2 防火墙双机旁挂在二层设备的组网
如图2所示,双机旁挂在二层设备上的组网完全可以看成双机直路部署,上下行连接二层设备的组网。
父主题: 应用场景
华为专有和保密信息版权所有 © 华为技术有限公司
华为专有和保密信息
版权所有 © 华为技术有限公司
<上一节
介绍了双机热备的实现原理。
VRRP
介绍了VRRP协议的基本概念和存在的问题。
VGMP
介绍了VGMP协议如何解决VRRP协议的问题,以及VGMP协议的实现原理。
HRP
介绍了HRP的实现原理和细节。
介绍了VRRP协议的基本概念和存在的问题。
VRRP是一种容错协议,它保证当主机的下一跳路由器(默认网关)出现故障时,由备份路由器自动代替出现故障的路由器完成报文转发任务,从而保持网络通信的连续性和可靠性。
如图1所示,将局域网内的一组路由器(实际上是路由器的下行接口)划分在一起,形成一个VRRP备份组。VRRP备份组相当于一台虚拟路由器,这个虚拟路由器有自己的虚拟IP地址和虚拟MAC地址(格式:00-00-5E-00-01-{VRID},VRID是VRRP备份组的ID)。
局域网内的主机可以将默认网关设置为VRRP备份组的虚拟IP地址。在局域网内的主机看来,他们就是与虚拟路由器进行通信的,然后通过虚拟路由器与外部网络进行通信。
VRRP备份组中的多个路由器会根据管理员指定的VRRP备份组优先级确定各自的VRRP备份组状态。优先级最高的VRRP备份组状态为Master,其余VRRP备份组状态为Backup。
VRRP备份组的状态决定了路由器的主备状态。VRRP备份组状态为Master的路由器称为Master路由器,VRRP备份组状态为Backup的路由器称为Backup路由器。
当Master路由器正常工作时,局域网内的主机通过Master路由器与外界通信。当Master路由器出现故障时,一台Backup路由器(VRRP优先级次高的)将成为新的Master路由器,接替转发报文的工作,保证网络不中断。
图1 VRRP基本概念
上面讲到通过在网关的下行接口运行VRRP,可以保证网关的可靠性。如果在网关的上行和下行接口上同时运行VRRP,这时情况会是怎样的呢?
如图2所示,两台Router(作为内外网用户的网关)的下行接口加入VRRP备份组1,上行接口加入VRRP备份组2。正常情况下,Router1的VRRP备份组1的状态为Active,VRRP备份组2的状态为Active,所以Router1是VRRP备份组1中的Active路由器,也是VRRP备份组2的Active路由器。这样内外网之间的业务报文都会通过Router1转发。
图2 多个VRRP共同运行
如图3所示,当Router1的GE1/0/1接口故障时,VRRP备份组1发生状态切换:Router1的VRRP备份组1状态切换成Initialize,Router2的VRRP备份组1状态切换成Active。这样Router2成为VRRP备份组1中的Active路由器,并向LSW1发送免费ARP报文,刷新LSW1中的MAC表项。这时PC1访问PC2(内网访问外网)的报文就通过Router2转发了。但是由于Router1与LSW2之间的链路是正常的,所以VRRP备份组2的状态是不变的,Router1仍然是VRRP备份组2中的Active路由器,而Router2仍是VRRP备份组2中的Standby路由器。因此PC2返回给PC1的回程报文依然会转发给Router1,而Router1的下行接口GE1/0/1是故障的,所以Router1只能丢弃此回程报文,这就导致了业务流量的中断。
图3 多个VRRP状态相互独立的问题
从上述过程可以看出:VRRP备份组之间是相互独立的,当一台设备上出现多个VRRP备份组时,他们之间的状态无法同步。
介绍了VGMP协议如何解决VRRP协议的问题,以及VGMP协议的实现原理。
为了解决多个VRRP备份组状态不一致的问题,华为防火墙引入VGMP(VRRP Group Management Protocol)来实现对VRRP备份组的统一管理,保证多个VRRP备份组状态的一致性。
将防火墙上的所有VRRP备份组都加入到一个VGMP组中,由VGMP组来集中监控并管理所有的VRRP备份组状态。如果VGMP组检测到其中一个VRRP备份组的状态变化,则VGMP组会控制组中的所有VRRP备份组统一进行状态切换,保证各VRRP备份组状态的一致性。
如图1所示,在FW_A上将VRRP备份组1和2的状态都设置为Active,并将他们都加入VGMP组;在FW_B上将VRRP备份组1和2的状态都设置为Standby,并将他们都加入VGMP组。这样FW_A就是VRRP备份组1和VRRP备份组2中的Active路由器(也就是两台防火墙中的主用设备),而FW_B就是他们的Standby路由器(也就是两台防火墙中的备用设备),所以上下行的业务流量都会被引导到主用设备FW_A转发。
图1 VRRP备份组加入VGMP组
如图2所示,当FW_A的接口故障时,VGMP组控制VRRP备份组状态统一切换的过程如下:
1. 当FW_A的GE1/0/1接口故障时,FW_A上的VRRP备份组1发生状态切换(由Active切换成Initialize)。
2. FW_A的VGMP组感知到这一故障后,会降低自身的优先级,然后与FW_B的VGMP组比较优先级,重新协商主备状态。
3. 协商后,FW_A的VGMP组状态切换成Standby,FW_B的VGMP组状态切换成Active。
4. 同时,FW_A的VGMP组会强制组内的VRRP备份组2切换成Standby状态,FW_B的VGMP组也会强制组内的VRRP备份组1和2切换成Active状态。这样FW_B就成为了VRRP备份组1和VRRP备份组2中的Active路由器,也就成了为两台防火墙中的主用设备;而FW_A则成为了VRRP备份组1和VRRP备份组2中的Standby路由器,也就成为了两台防火墙中的备用设备。
5. FW_B会分别向LSW1和LSW2发送免费ARP,更新他们的MAC转发表,使PC1访问PC2的上行报文和回程报文都转发到FW_B。这样就完成了VRRP备份组状态的统一切换,并且保证业务流量不会中断。
图2 VGMP解决VRRP问题
如图3所示,每台FW上有一个VGMP组。VGMP组有四种状态:
· Initialize:启用双机热备功能后,VGMP组的短暂初始状态。
· Load Balance:当防火墙本端的VGMP组与对端的VGMP组优先级相等时,两端的VGMP组都处于Load Balance状态。
· Active:当本端的VGMP组优先级高于对端时,本端的VGMP组处于Active状态。
· Standby:当本端的VGMP组优先级低于对端时,本端的VGMP组处于Standby状态。
两台FW组成双机热备组网后,正常情况下,两台FW的VGMP组优先级相等,且都处于Load Balance状态。这时两台FW处于负载分担状态。
图3 VGMP组缺省处于LoadBalance状态
可以通过VRRP配置和手工指定备设备这两种方式,使两台FW形成主备备份状态。
VRRP配置的方式适用于FW连接二层交换机的组网,指定备设备的方式适用于FW其他方式的双机热备组网。
FW的VGMP优先级有一个初始优先级,当FW的接口或者单板等出现故障时,会在初始优先级基础上减去一定的降低值。
Eudemon200E-N/1000E-N和NGFW Module的初始优先级为45000。
Eudemon8000E-X的VGMP组的初始优先级与LPU板(接口板)上的插卡个数和SPU板(业务板)上的CPU个数有关。计算公式如下:
VGMP组初始优先级=45000 + 1000 * LPU板上的插卡个数 + 2 * SPU板上的CPU个数
LPU板上的插卡个数和SPU板上的CPU个数可以用display devicepic-status命令查看。
display device pic-status
Pic-status information in Chassis 1:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SLOT PIC Status Type Port_count Init_result Logic down
Registered Cpu
2 2 Registered ETH_24xGF_B_CARD 24 SUCCESS SUCCESS
3 1 Registered SPU_CARD_TYPE_SPCC 0 SUCCESS SUCCESS
CPU3
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2号槽位的LPU板上有一个插卡(ETH_24xGF_B_CARD),3号槽位的SPU板上有一个CPU(CPU3)。因此,VGMP组初始优先级为45000+1000*1+2*1=46002。
不同故障类型,VGMP优先级降低值不同:
表1 VGMP组优先级降低值 |
|
故障类型 |
降低值 |
VGMP组监控的接口故障 |
2 * 故障接口个数 |
hrp track ip-link监控的链路故障 |
2 * 故障链路个数 |
hrp track bfd监控的链路故障 |
2 * 故障链路个数 |
LPU板故障(复位或下电) |
1000 * LPU板上的插卡个数 说明: Eudemon200E-N/1000E-N和NGFW Module没有LPU板,不存在LPU板故障的问题。 |
SPU板故障(复位或下电) |
2 * SPU板上的CPU个数 说明: Eudemon200E-N/1000E-N和NGFW Module没有SPU板,不存在SPU板故障的问题。 |
SFU板(交换网板)故障(复位或下电) |
2 * (故障SFU板数 - 1) 说明: Eudemon8000E-X8和Eudemon8000E-X16的SFU板分别采用2+1备份和3+1备份。正常情况下,所有的SFU板同时处理业务。当有1个SFU板故障时,其他的SFU板将自动分担其业务,设备仍然能正常处理业务,不需要做主备倒换。因此,仅有一个SFU板故障时,VGMP组优先级不会降低。 Eudemon200E-N/1000E-N、NGFW Module和Eudemon8000E-X3没有SFU板,不存在SFU板故障的问题。 使用display device命令可以查看SFU板的是否故障。 |
CPU故障 |
Eudemon8000E-X:2 * 故障的CPU个数 Eudemon200E-N/1000E-N和NGFW Module:CPU故障直接导致整机重启 说明: 对于Eudemon8000E-X设备,SPU板只要存在任一CPU在位,SPU板即可正常工作。 |
1. 如图4所示,两台FW的VGMP组启用后都处于Standby状态,并向对端发送VGMP报文,相互告知自己的优先级和状态。
图4 VGMP组启用后短暂处于Standby状态
2. 如图5所示,两台FW的VGMP组收到对端的VGMP报文后,与对端比较优先级,发现优先级相等,因此均将自身状态切换成Load Balance。这样两台FW就形成了负载分担状态。
图5 两台防火墙形成负载分担状态
3. 如图6所示,管理员可以指定FW_B为备用设备。
然后FW_A会从FW_B定期发送的VGMP报文中收到FW_B成为备用设备的消息。
这时FW_A将成为主用设备,并引导上下行业务流量通过本设备转发。这样两台FW形成主备备份状态。
图6 通过配置使两台防火墙形成主备备份状态
4. 如图7所示,当FW_A的业务接口故障时,本端VGMP组的优先级会降低(一个接口故障,优先级降低2)。
FW_A与对端的VGMP组比较优先级后,发现本端优先级低于对端,于是会将自身状态切换成Standby。然后FW_A会立即向对端发送一个VGMP报文,通知本端状态和优先级的变化。
FW_B的VGMP组收到对端的这个VGMP报文后,会与对端比较优先级,发现本端优先级高,于是会将自身状态切换成Active。
这样FW_B成为主用设备,FW_A成为备用设备。FW_B将会引导上下行业务流量通过本设备转发。
图7 主用设备接口故障,主备状态切换
还有一种情况:当主用设FW_A备整机故障后,主用设备FW_A的VGMP组将不会再发送HRP心跳报文。这时如果备用设备FW_B的VGMP组连续5次收不到主用设备FW_A的HRP心跳报文,那么它就会认定对端的VGMP组故障,从而将自身切换到主用状态。
5. 如图8所示,当原主用设备FW_A的业务接口故障恢复后,本端VGMP组的优先级升高。
FW_A与对端的VGMP组比较优先级后,发现本端优先级与对端相等。这时如果配置了抢占功能,则启动抢占延时。抢占延时结束后,FW_A的VGMP组会将自身状态切换成LoadBalance。然后FW_A会立即向对端发送一个VGMP报文,通知本端状态和优先级的变化。
FW_B的VGMP组收到对端的这个VGMP报文后,会与对端比较优先级,发现优先级相等,于是会将自身状态切换成Load Balance。
由于管理员之前指定了FW_B为备用设备,所以FW_A和FW_B在定期交互VGMP报文后,会相互确认各自的身份,即FW_A会重新成为主用设备,FW_B成为备用设备。
图8 原主用设备故障恢复,重新抢占成主用设备
综上所述,当VGMP状态切换后,状态为Active的VGMP组会将业务流量引导到本设备上转发。不同组网下VGMP组引导业务流量转发的方法不同,具体过程和原理请参见典型组网分析。
如图9所示,VGMP报文是由UDP报文头和VGMP报文头(也称为HRP扩展头)封装而成的。根据VGMP报文头中“Type”字段的取值不同,定义了多种VGMP报文和HRP报文,具体如下:
· VGMP报文:VGMP报文用于两台防火墙交互VGMP组信息,协商主备状态。
· HRP心跳报文:HRP心跳报文用于探测对端设备是否处于工作状态。
· HRP数据报文:HRP数据报文用于主备设备之间的数据备份,包括命令行配置的备份和各种状态信息的备份。
· HRP链路探测报文:心跳链路探测报文用于检测对端设备的心跳口能否正常接收本端设备的报文,以确定是否有心跳口可以使用。
· 一致性检查报文:一致性检查报文用于检测双机热备状态下的两台防火墙是否配置了相同的策略。
图9 VGMP报文结构
这里先介绍相关的VGMP报文和HRP心跳报文,其余三种报文的作用请参见HRP。
两台FW的VGMP组通过定时(缺省情况下为1秒)相互发送VGMP报文,以了解并记录对端的信息。本端的VGMP组会将本端信息与对端信息进行对比,以确定设备当前状态是否稳定,是否要进行状态切换。
另外当VGMP组出现以下情况时,也会主动向对端发送VGMP报文:
· 双机热备功能启用或关闭
· 优先级增加或减少
· 抢占超时
· 链路探测报文超时
由于两台FW的VGMP组是定时相互发送VGMP报文的,所以两台FW的VGMP组是相互知道对端优先级和状态的。这样当一台FW的接口或链路出现故障时,这台FW的VGMP组优先级会降低,并会与本端记录的对端VGMP组优先级进行比较。如果本端VGMP组优先级低于对端,那么本端VGMP组就会直接将自身状态切换成Standby,同时向对端发送一个VGMP报文,以通知状态和优先级的变化。
VGMP报文的数据(Data)部分主要包括以下内容:
· 本端设备是否处于忙状态:如果本端设备正处于忙碌状态,例如正在加载补丁或者策略加速,心跳报文可能发送不出去,本端设备请求对端不要因为接收不到心跳报文而进行状态切换。
· 本端是否需要发送免费ARP报文:如果本端设备配置了VRRP备份组且状态为Active,则本端设备需要向上下行设备发送免费ARP报文。即向对端设备宣布本端为主用设备,会引导流量通过本设备转发。
· 本端VGMP组的状态
· 本端VGMP组的优先级
· 管理员配置的设备角色:如果管理员在本端设备上执行了hrp standby-device命令,则本端成为备用设备。
· 是否进行了手动切换:如果管理员在本端设备上执行了hrp switch {active |standby}命令,则本端设备会强制成为主用/备用设备。主用设备则会引导流量通过本设备转发,而备用设备则需要对端设备引导流量转发。
图10 VGMP状态机
如图10所示,双机热备的VGMP状态机的各切换过程解释如下:
1. 启用双机热备功能后,VGMP组先进入Standby状态。
2. 如果本端设备处于正常工作状态,本端VGMP组发现优先级与对端相等(对端VGMP组状态也为Standby),则本端VGMP组将状态切换成Load Balance;如果本端设备故障恢复后,本端VGMP组发现优先级与对端相等(对端VGMP组状态为Active),且配置了抢占功能,则抢占延时后,本端VGMP组将状态切换成Load Balance。
3. 对端设备故障后,本端VGMP组发现本端优先级高于对端,将本端状态切换成Active。
4. 本端设备故障后,本端VGMP组发现本端优先级低于对端,将本端状态切换成Standby。
5. 对端设备故障恢复后(对端配置了抢占,VGMP状态切换成Load Balance),本端VGMP组发现优先级与对端相等,将自身状态也切换成Load Balance;备份通道故障恢复(能够重新收到对端的心跳报文)后,本端VGMP组发现优先级与对端相等且对端状态为Active,将自身状态也切换成Load Balance。
6. 本端设备故障或对端设备故障恢复后,本端VGMP组发现本端优先级低于对端,将本端状态切换成Standby。
7. 对端设备故障后,本端VGMP组发现本端优先级高于对端,将本端状态切换成Active;备份通道故障(不能收到对端的心跳报文)后,本端VGMP组将状态切换成Active。
8. 关闭双机热备功能。
9. 关闭双机热备功能。
10.关闭双机热备功能。
介绍了HRP的实现原理和细节。
FW通过执行命令(通过Web配置实际上也是在执行命令)来实现用户所需的各种功能。如果备用设备切换为主用设备前,配置命令没有备份到备用设备,则备用设备无法实现主用设备的相关功能,从而导致业务中断。
FW属于状态检测防火墙,对于每一个动态生成的连接,都有一个会话表项与之对应。主用设备处理业务过程中创建了很多动态会话表项;而备用设备没有报文经过,因此没有创建会话表项。如果备用设备切换为主用设备前,会话表项没有备份到备用设备,则会导致后续业务报文无法匹配会话表,从而导致业务中断。
因此为了实现主用设备出现故障时备用设备能平滑地接替工作,必须在主用和备用设备之间备份关键配置命令和会话表等状态信息。
为此华为防火墙引入了HRP( Huawei Redundancy Protocol)协议,实现防火墙双机之间动态状态数据和关键配置命令的备份。
在主备备份组网下,配置命令和状态信息都由主用设备备份到备用设备。
而在负载分担组网下,两台FW都是主用设备。因此如果允许两台主用设备之间能够相互备份命令,那么可能就会造成两台设备命令相互覆盖或冲突的问题。所以为了方便管理员对两台FW配置的统一管理,避免混乱,我们引入配置主和配置从设备的概念。
我们定义负载分担组网下,发送备份配置命令的FW称为配置主设备(命令行提示符前有HRP_M前缀),接收备份配置命令的FW称为配置从设备(命令行提示符前有HRP_S前缀)。
在负载分担组网下,配置命令只能由“配置主设备”备份到“配置备设备”。状态信息则是两台设备相互备份的。
在负载分担组网下,设备名称(sysname)的ASCⅡ码较小的FW会成为配置主设备。例如,FW_A与FW_B形成负载分担,FW_A会成为配置主设备;如果两台设备名称(sysname)相同,执行hrp enable命令时的时钟小为主,执行hrp enable命令时的时钟大为备。
FW通过心跳口(HRP备份通道)发送和接收HRP数据报文来实现配置和状态信息的备份。
HRP数据备份的过程如图1所示:
1. FW_A在发送HRP数据报文时,会将特性模块(本例为ASPF)的ID写入HRP数据报文的“usSrcModuleID”和“ulDstModuleID”字段中,并将特性模块的配置和表项信息封装到HRP数据报文中。
2. FW_A将HRP数据报文通过备份通道(心跳线)发送给FW_B。
3. FW_B收到HRP数据报文后,会根据HRP数据报文中的“usSrcModuleID”和“ulDstModuleID”字段将报文中的配置和表项信息发送到本端的特性模块,并进行配置与表项的下发。
图1 HRP备份实现原理
FW能够备份的配置如下:
· 策略:安全策略、NAT策略(包括NAT地址池)、NAT Server、服务器负载均衡、带宽管理、认证策略、审计策略、攻击防范、黑名单、ASPF
· 对象:地址、地区、服务、应用、用户、认证服务器、时间段、地址池、URL分类、关键字组、邮件地址组、签名、安全配置文件(反病毒、入侵防御、URL过滤、文件过滤、内容过滤、应用行为控制、邮件过滤、APT防御)、健康检查
· 网络:新建逻辑接口、安全区域、DNS、静态路由(配置hrp auto-sync configstatic-route后才可以备份)、IPSec、SSL VPN、TSM联动、DHCPServer、DHCPv6 Server
· 系统:管理员、虚拟系统(包括虚拟系统创建和虚拟系统内的业务配置命令)、日志配置
说明:
一般情况下,display、reset、debugging命令都不支持备份。
根据上面的描述我们可以看到,防火墙的网络基本配置如接口地址和路由等都不能够备份,这些配置需要在双机热备状态成功建立前配置完成。而上面支持备份的配置可以在双机热备状态成功建立后,只在主用设备上配置。
FW能够备份的状态信息如下:
说明:
根系统和虚拟系统的表项均支持备份。
· 会话表
· SeverMap表
· 黑名单
· 白名单
· PAT方式端口映射表
· NO-PAT方式地址映射表
· 二层转发表(静态MAC备份)
· AAA用户表(缺省用户admin不备份)
· PKI证书,CRL
· IPSec备份
§ 支持IKE、IKEv2安全联盟的备份
§ 支持隧道的批量备份
§ 支持隧道和序列号的实时备份
双机热备的HRP支持以自动备份、手工批量备份和快速备份三种方式。这三种备份方式的描述和区别下面我们一一来介绍。
· 自动备份
自动备份功能缺省为开启状态,能够自动实时备份配置命令和周期性地备份状态信息,适用于各种双机热备组网。
启用自动备份功能后,主用(配置主)设备上每执行一条可以备份的命令时,此配置命令就会被立即同步备份到备用(配置备)设备上。
如果在主用(配置主)设备上执行不可以备份的命令,则该命令仅在主用(配置主)设备上执行。
对于可以备份的配置命令,只能在主用(配置主)设备上配置,备用(配置备)设备上不能配置。对于不可以备份的配置命令,备用(配置备)设备上可以配置。
启用自动备份功能后,主用设备会周期性的将可以备份的状态信息备份到备用设备上。即主用设备的状态信息建立后不会立即备份,需要经过一个周期后才会备份到备用设备。
自动备份不会备份以下类型的会话:
§ 到防火墙自身的会话,例如管理员登录防火墙时产生的会话。
§ 未完成3次握手的TCP半连接会话(快速备份支持备份此会话)。
§ 只为UDP首包创建,而不被后续包匹配的会话(快速备份支持备份此会话)。
· 手工批量备份
手工批量备份需要管理员手工触发,每执行一次手工批量备份命令,主用设备就会立即同步一次配置命令和状态信息到备用设备。因此手工批量备份主要适用于主备设备之间配置不同步,需要手工同步的场景。
执行手工批量备份命令后,主用(配置主)设备会立即同步一次可以备份的配置命令到备用(配置备)设备。
执行手工批量备份命令后,主用设备会立即同步一次可以备份的状态信息到备用设备,而不必等到自动备份周期的到来。
· 快速备份
快速会话备份功能,适用于负载分担的工作方式,以应对报文来回路径不一致的场景。负载分担组网下,由于两台防火墙都是主用设备,都能转发报文,所以可能存在报文的来回路径不一致的情况,即来回两个方向的报文分别从不同的防火墙经过。这时如果两台防火墙的状态信息没有及时相互备份,则回程报文会因为没有匹配到状态信息而被丢弃,从而导致业务中断。所以为防止上述现象发生,需要在负载分担组网下配置快速会话备份功能,使两台防火墙能够实时的相互备份状态信息,使回程报文能够查找到相应的状态信息表项,从而保证内外部用户的业务不中断。
为了保证状态信息的及时同步,快速备份功能只是备份状态信息,不备份配置的命令。配置命令的备份由自动备份功能实现。
启用快速备份功能后,主用设备会实时的将可以备份的状态信息(包括上面提到的自动备份不支持的会话)都同步到备用设备上。即在主用设备状态信息建立的时候立即将其实时备份到备用设备。
两台FW之间备份的数据是通过心跳口发送和接收的,是通过心跳链路(备份通道)传输的。
如图2所示,心跳口必须是状态独立且具有IP地址的接口,可以是一个物理接口(GE接口),也可以是为了增加带宽,由多个物理接口捆绑而成的一个逻辑接口Eth-Trunk(通常情况下,备份数据流量约为业务流量的20%~30%,请根据备份数据量的大小选择捆绑物理接口的数量)。
图2 物理或逻辑接口作为心跳口
心跳接口有五种状态:
· invalid:当本端FW上的心跳口配置错误时显示此状态(物理状态up,协议状态down),例如指定的心跳口为二层接口或未配置心跳接口的IP地址。
· down:当本端FW上的心跳口的物理与协议状态均为down时,则会显示此状态。
· peerdown:当本端FW上的心跳口的物理与协议状态均为up时,则心跳口会向对端对应的心跳口发送心跳链路探测报文。如果收不到对端响应的报文,那么FW会设置心跳接口状态为peerdown。但是心跳口还会不断发送心跳链路探测报文,以便当对端的对应心跳口up后,该心跳链路能处于连通状态。
· ready:当本端FW上的心跳口的物理与协议状态均为up时,则心跳口会向对端对应的心跳口发送心跳链路探测报文。如果对端心跳口能够响应此报文(也发送心跳链路探测报文),那么FW会设置本端心跳接口状态为ready,随时准备发送和接受心跳报文。这时心跳口依旧会不断发送心跳链路探测报文,以保证心跳链路的状态正常。
· running:当本端FW有多个处于ready状态的心跳口时,FW会选择最先配置的心跳口形成心跳链路,并设置此心跳口的状态为running。如果只有一个处于ready状态的心跳口,那么它自然会成为状态为running的心跳口。状态为running的接口负责发送HRP心跳报文、HRP数据报文、HRP链路探测报文、VGMP报文和一致性检查报文。
这时其余处于ready状态的心跳口处于备份状态,当处于running状态的心跳口或心跳链路故障时,其余处于ready状态的心跳口依次(按配置先后顺序)接替当前心跳口处理业务。
如图3所示,由于两台FW心跳接口的配置顺序与接口编号顺序相同,所以先配置的处于ready状态的心跳口GE1/0/3成为running状态,而后配置的处于ready状态的心跳口GE1/0/4处于备份状态。
图3 心跳口状态
综上所述,心跳链路探测报文的作用是检测对端设备的心跳口能否正常接收本端设备的报文,以确定心跳链路是否可用的。只要本端心跳接口的物理和协议状态up就会向对端心跳口发送心跳链路探测报文进行探测。
而我们在前面讲到的HRP心跳报文是用于探测和感知对端设备(VGMP组)是否正常工作的。HRP心跳报文只有主用设备的VGMP组通过状态为running的心跳口发出。
HRP一致性检查报文用于检测双机热备状态下的两台FW的双机热备配置是否一致以及策略配置是否相同。
双机热备配置的一致性检查包括两台FW是否监控了相同的业务接口,是否配置了相同的心跳接口等。
策略配置一致性检查主要检查两台FW是否配置了相同的策略,包括安全策略、带宽策略、NAT策略、审计策略和认证策略。
HRP一致性检查的实现原理如下:
1. 执行一致性检查命令后,执行此命令的设备会发送一致性检查请求报文给对端,并且同时收集自身的相关模块的配置信息摘要。
2. 对端设备收到请求后,会收集自身相关模块的配置信息摘要,然后封装到一致性检查报文中返回给本端设备。
3. 本端设备会对比自身的配置摘要和对端设备的配置摘要,并记录比较信息。客户可以执行命令display hrpconfiguration check查看一致性检查结果。
介绍了各种双机热备典型组网的部署方法和流量引导原理。
双机热备直路部署,连接二层设备
介绍设备的业务接口工作在三层,上下行连接交换机的组网。
双机热备直路部署,连接三层设备
介绍了设备的业务接口工作在三层,上下行连接路由器的组网。
双机热备透明接入,连接二层设备
介绍了设备的业务接口工作在二层,上下行连接交换机的组网。
双机热备透明接入,连接三层设备
介绍了设备的业务接口工作在二层,上下行连接路由器的组网。
双机热备旁挂部署
介绍了双机热备旁挂在三层设备上的组网。
介绍设备的业务接口工作在三层,上下行连接交换机的组网。
如图1所示,FW的上、下行业务接口工作在三层,分别与二层交换机直连。
此组网既可以用于主备备份方式,又可以用于负载分担方式的双机热备。
图1 业务接口工作在三层,上下行连接交换机的主备备份组网
如图1所示,在FW_A的业务接口上配置VRRP备份组,并将其状态设置为Active。在FW_B的业务接口上配置VRRP备份组,并将其状态设置为Standby。将内网PC的网关设置为VRRP备份组的虚拟IP地址。
正常情况下,网络运行情况分析如下:
1. PC将用于请求网关地址(VRRP备份组1地址)对应MAC地址的ARP报文发送给交换机。交换机在网络中广播此ARP报文。
2. 只有VRRP备份组状态为Active的设备FW_A才会应答此ARP报文,反馈VRRP备份组1的虚拟MAC地址。
3. 交换机会记录VRRP备份组1的虚拟MAC地址与端口Eth0/0/1的关系,然后将此虚拟MAC地址发送给PC。
4. PC将业务报文发送给交换机,业务报文的目的MAC地址为VRRP备份组1的虚拟MAC地址。
5. 交换机根据记录的MAC地址与端口的关系,将报文从端口Eth0/0/1转发,发送给FW_A。
这样在正常情况下,内网PC发出的流量就都通过主用设备FW_A转发了。
图2 发生故障后
如图2所示,当FW_A发生故障后,网络运行情况分析如下:
1. 当FW_A的业务接口故障时,FW_A切换成备用设备,FW_B成为主用设备。
2. 新主用设备FW_B会对外发送免费ARP报文后,报文中包含VRRP备份组的虚拟IP地址和虚拟MAC地址。
3. 交换机收到免费ARP报文后会更新MAC地址与端口的对应关系(将VRRP备份组1的虚拟MAC地址与端口Eth0/0/2对应)。
4. 当PC将业务报文发送给交换机时,报文将从交换机的端口Eth0/0/2转发,发送给FW_B。
这样在FW_A故障时,内网PC发出的流量就都通过新主用设备FW_B转发了。
如图3所示,按照如下配置部署负载分担组网:
· 在FW_A的GE1/0/1上配置VRRP备份组1,并将其状态设置为Active;配置VRRP备份组2,并将其状态设置为Standby。
· 在FW_B的GE1/0/1上配置VRRP备份组1,并将其状态设置为Standby;配置VRRP备份组2,并将其状态设置为Active。
· 将内网一部分PC的网关设置为VRRP备份组1的虚拟IP地址,另一部分PC的网关设置为VRRP备份组2的虚拟IP地址。
· 在FW_A的GE1/0/3上配置VRRP备份组3,并将其状态设置为Active;配置VRRP备份组4,并将其状态设置为Standby。
· 在FW_B的GE1/0/3上配置VRRP备份组3,并将其状态设置为Standby;配置VRRP备份组4,并将其状态设置为Active。
· 在Router上配置两条静态路由,下一跳分别为VRRP备份组3的虚拟IP地址和VRRP备份组4的虚拟IP地址。
这样正常情况下,FW_A的接口GE1/0/1转发下一跳为VRRP备份组1的虚拟IP地址的报文,FW_B的接口GE1/0/1转发下一跳为VRRP备份组2的虚拟IP地址的报文。一部分PC的流量通过FW_A转发,另一部分PC的流量通过FW_B转发,形成负载分担。
图3 业务接口工作在三层,上下行连接交换机的负载分担组网
介绍了设备的业务接口工作在三层,上下行连接路由器的组网。
如图1所示,FW上、下行业务接口工作在三层,与路由器直连。FW与上、下行路由器之间运行OSPF协议。
此组网既可以用于主备备份方式,又可以用于负载分担方式的双机热备。
图1 业务接口工作在三层,上下行连接路由器的主备备份组网
如图1所示,主用设备FW_A正常对外发布路由,而备用设备FW_B发布的路由Cost值修改为65500(缺省值,可调整)。
上下行路由器在转发流量时会选择开销(Cost值)更小的路径,因此流量通过主用设备FW_A转发。
当FW_A的业务接口故障时,FW_A切换成备用设备,FW_B成为主用设备。
这时FW_B正常对外发布路由,而FW_A发布的路由Cost值修改为65500。这样路由重新收敛后,流量通过FW_B转发。
图2 业务接口工作在三层,上下行连接路由器的负载分担组网
如图2所示,负载分担方式下,FW_A与FW_B都是主用设备,都正常对外发布路由。
因此需要在Router_A(C)连接FW_A和Router_B(D)连接FW_B的接口上配置相同的Cost值,保证流量通过FW_A与FW_B共同转发。
如图1和图2所示,上行路由器通过OSPF向FW发布缺省路由,FW再将学习到的缺省路由通过OSPF向下行路由器发布。这种组网中,需要在FW与下行路由器的OSPF进程中,配置路由策略对缺省路由进行过滤。否则,FW和下行路由器之间可能会发生环路。
介绍了设备的业务接口工作在二层,上下行连接交换机的组网。
如图1所示,FW的上、下行业务接口工作在二层,分别与二层交换机直连。每台FW的上下行业务接口加入到同一个VLAN。
此组网只支持主备备份方式的双机热备。
图1 业务接口工作在二层,上下行连接交换机组网图
如图1所示,主用设备FW_A上的VLAN被启用,能够转发流量。备用设备FW_B上的VLAN被禁用,不能转发流量。因此流量都从主用设备FW_A转发。
注意:
此种组网不支持负载分担方式。因为如果工作于负载分担方式,则两台设备上的VLAN都被启用,都能够转发流量,整个网络就会形成环路。
当FW_A发生故障时,FW_A切换成备用设备,FW_B成为主用设备。
FW_A切换成备用设备时,VLAN内所有接口都会Down然后Up一次。这会导致上下行交换机更新自身MAC转发表,重新学习MAC地址,将流量引导到FW_B上。
介绍了设备的业务接口工作在二层,上下行连接路由器的组网。
如图1所示,FW上、下行业务接口工作在二层,与路由器直连。上、下行路由器之间运行OSPF动态路由协议。每台FW的上下行业务接口加入到同一个VLAN。
此组网只支持负载分担方式的双机热备。
图1 FW业务接口工作在二层,上下行连接路由器组网图
FW_A与FW_B上的VLAN都被启用,都能够转发流量。这时需要依靠上下行路由器运行的OSPF来实现流量的引导。
因此需要在Router_A(C)连接FW_A和Router_B(D)连接FW_B的接口上配置相同的Cost值,保证流量通过FW_A与FW_B共同转发。
注意:
此种组网不支持主备备份方式。因为如果工作于主备备份方式,备用设备上的VLAN被禁用,它的上下行路由器就无法进行通信,无法建立路由。这样主备切换时,备用设备就无法及时接替主用设备处理业务,导致业务中断。
FW_A发生故障时,FW_A切换成备用设备,FW_B成为主用设备。
FW_A切换成备用设备时,VLAN内所有接口都会Down然后Up一次。这会导致上下行路由器重新计算路由。由于此时FW_A的VLAN已被禁用,链路COST值增大,因此流量全部从FW_B转发。
介绍了双机热备旁挂在三层设备上的组网。
如图1所示,如果希望通过静态路由方式将经过核心交换机的流量引导到FW,则需要在核心交换机上配置静态路由,下一跳为FW接口的地址。但是一般核心交换机与上行路由器和下行汇聚交换机之间运行OSPF,而由于OSPF的路由优先级高于静态路由,所以流量到达核心交换机后会根据OSPF路由直接被转发到上行或下行设备,而不会根据静态路由被引流到FW上。
图1 通过VRRP与静态路由的方式实现双机热备旁挂
因此如果希望通过静态路由引流,就必须在核心交换机上配置VRF功能,将一台交换机虚拟成连接上行的交换机(根交换机Public)和连接下行的交换机(虚拟交换机VRF),具体如图2所示。由于虚拟出的两个交换机完全隔离开来,所以流量就会根据静态路由被送到FW上。
图2 通过静态路由与VRF结合的方式将流量引导到FW上
为了便于理解,我们可以将图2所示的FW双机旁挂部署组网转换成图3所示的双机直路部署组网。大家可以看到图3是一个经典的双机热备直路部署,连接二层设备组网。大家都知道在这个组网中,我们需要在FW的业务接口上配置VRRP备份组(VRRP备份组1和2)。
而为了实现流量的转发,我们需要在交换机的VRF和Public上配置静态路由,下一跳分别为VRRP备份组1和备份组2的虚拟地址。由于流量的转发不仅需要去时的路由,还需要回程的路由,所以我们也需要在FW上配置两条回程的静态路由,下一跳分别为VRF的VRRP备份组3的虚拟地址和Public的VRRP备份组4的虚拟地址。这样我们可以看到,实际上两台FW与两台交换机的VRF及Public之间是通过VRRP备份组的虚拟地址进行通信的。
图3 双机旁挂部署转换成经典的双机连接交换机的组网
如图4所示,如果希望通过策略路由方式将经过核心交换机的流量引导到FW,则需要在核心交换机上配置策略路由,重定向的下一跳地址(redirect ip-nexthop)为FW接口的地址。一般核心交换机与上行路由器和下行汇聚交换机之间运行OSPF,而由于策略路由的优先级高于所有路由协议,所以流量到达核心交换机后会根据策略路由接被引流到FW上,而不会根据OSPF路由直接被转发到上行或下行设备。
核心交换机的流量被策略路由引导到FW进行检测后,还需要返回给核心交换机。这时就需要在FW与核心交换机之间运行OSPF协议,在FW上通过查找OSPF路由将流量返回给交换机。但是由于FW与核心交换机之间有两个接口相连,所以在FW上查找路由表时会看到两条等价的OSPF路由,即来自交换机的流量有可能通过来的接口返回给交换机。如果流量的出入接口是同一接口,那么FW就无法对流量进行全面的安全检测和控制了。
为了解决此问题,我们就需要在核心交换机和FW上分别配置两个OSPF进程,然后在FW上将这两个OSPF进程相互引入。这样当来自进程100(200)的流量被策略路由引导到FW后,在FW上查路由表时只会发现一条来自进程200(100)的OSPF路由,下一跳为交换机的GE1/0/3(GE1/0/2)接口。这就实现了FW上来自交换机的流量一定会通过另外的接口返回给交换机。
图4 通过OSPF与策略路由的方式实现双机热备旁挂
为了便于理解,我们可以将图4所示的FW双机旁挂部署组网转换成图5所示的双机直路部署组网。大家可以看到图5是一个经典的双机热备直路部署,连接三层设备组网。图5与经典组网的配置区别在于需要在FW上配置两个OSPF进程并且相互引入,而在交换机上配置OSPF的同时需要配置策略路由。
图5 双机旁挂部署转换成经典的双机连接路由器的组网