双机热备的必要性
在网络关键节点上,如果只部署一台设备,无论其可靠性多高,系统都必然要承受因单点故障而导致网中断的风险。防火墙一般用作内网到外网的出口,是业务关键路径上的设备。为了防止因一台设备故障而导致的业务中断,要求防火墙必须提供更高的可靠性,此时需要使用防火墙双机热备组网。
1.备份前
2.备份后
VGMP
传统备份
1.防火墙上多个区域提供双机备份功能时,需要在每一台防火墙上配置多个VRRP备份组。
VRRP在防火墙应用中存在的缺陷
传统VRRP方式无法实现主、备用防火墙状态的一致性
2.VGMP
为了保证所有VRRP备份组切换的一致性,在VRRP的基础上进行了扩展,推出了VGMP(VRRP GroupManagement Protocol)来弥补此局限,实现以组为单位统一行动的目的。
VGMP提出VRRP管理组的概念,将同一台防火墙上的多个VRRP备份组都加入到一个VRRP管理组,由管理组统一管理所有VRRP备份组。通过统一控制各VRRP备份组状态的切换,来保证管理组内的所有VRRP备份组状态都是一致的。
VGMP基本原理
-
当防火墙上的VGMP为Active/Standby状态时,组内所有VRRP备份组的状态统一为Active/Standby状态。状态为Active的VGMP也会定期向对端发送HELLO报文,通知Standby端本身的运行状态(包括优先级、VRRP成员状态等)。
-
当防火墙上的VGMP为Active状态时,组内所有VRRP备份组的状态统一为Active状态,所有报文都将从该防火墙上通过,该防火墙成为主用防火墙。此时另外一台防火墙上对应的VGMP为备状态,该防火墙成为备用防火墙。
-
通过指定VGMP组的状态来决定谁将成为主用防火墙或备用防火墙。
-
防火墙的VGMP优先级有一个初始优先级,当防火墙的接口或者单板等出现故障时,会在初始优先级基础上减去一定的降低值。
-
USG6000和NGFW Module的初始优先级为45000。USG9500的VGMP组的初始优先级与LPU板(接口板)上的插卡个数和SPU板(业务板)上的CPU个数有关。
-
VGMP的优先级会根据组内的VRRP备份组状态为Active的VGMP也会定期向对端发送HELLO报文,通知Standby端本身的运行状态(包括优先级、VRRP成员状态等)。成员的状态动态调整,以此完成两台防火墙的主备倒换。
-
与VRRP类似,与VRRP不同的是,Standby端收到HELLO报文后,会回应一个ACK消息,该消息中也会携带本身的优先级、VRRP成员状态等。
-
VGMP HELLO报文发送周期缺省为1秒。当Standby端三个HELLO报文周期没有收到对端发送的HELLO报文时,会认为对端出现故障,从而将自己切换到Active状态。
VGMP组管理
- 状态一致性管理
- VGMP管理组控制所有的VRRP备份组统一切换。各备份组的主/备状态变化都需要通知其所属的VGMP管理组,由VGMP管理组决定是否允许VRRP备份组进行主/备状态切换。如果需要切换,则VGMP管理组控制所有的VRRP备份组统一切换。VRRP备份组加入到管理组后,状态不能自行单独切换。
- 抢占管理
- VRRP备份组本身具有抢占功能。即当原来出现故障的主设备故障恢复时,其优先级也会恢复,此时可以重新将自己的状态抢占为主。
- VGMP管理组的抢占功能和VRRP备份组类似,当管理组中出现故障的备份组故障恢复时,管理组的优先级也将恢复。此时VGMP可以决定是否需要重新抢占称为主设备。
- 当VRRP备份组加入到VGMP管理组后,备份组上原来的抢占功能将失效,抢占行为发生与否必须由VGMP管理组统一决定。
HRP协议
HRP(Huawei Redundancy Protocol)协议,用来实现防火墙双机之间动态状态数据和关键配置命令的备份。
- 在双机热备组网中,当主防火墙出现故障时,所有流量都将切换到备防火墙。因为USG防火墙是状态防火墙,如果备防火墙上没有原来主防火墙上的会话表等连接状态数据,则切换到备防火墙的流量将无法通过防火墙,造成现有的连接中断,此时用户必须重新发起连接。
- HRP模块提供了基础的数据备份机制和传输功能。各个应用模块收集本模块需要备份的数据,提交给HRP模块,HRP模块负责将数据发送到对端防火墙的对应模块,应用模块需要再将HRP模块提交上来的数据进行解析,并加入到防火墙的动态运行数据池中。
- 备份内容:要备份的连接状态数据包括TCP/UDP的会话表、ServerMap表项、动态黑名单、NOPAT表项、ARP表项等。
- 备份方向:防火墙上有状态为主的VGMP管理组,向对端备份。备份通道:一般情况下,在两台设备上直连的端口作为备份通道,有时也称为“心跳线”(VGMP也通过该通道进行通信)。
心跳接口
两台FW之间备份的数据是通过心跳口发送和接收的,是通过心跳链路(备份通道)传输的。
心跳口必须是状态独立且具有IP地址的接口,可以是一个物理接口(GE接口),也可以是为了增加带宽,由多个物理接口捆绑而成的一个逻辑接口Eth-Trunk。
HRP心跳接口共有五种状态:
- 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状态的心跳口依次(按配置先后顺序)接替当前心跳口处理业务。
实验和配置
实验拓扑图
配置
IP地址和vrrp配置
- fw1配置(主)
interface GigabitEthernet1/0/0
ip address 192.168.10.1 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.10.254 active
service-manage ping permit
undo shutdown
interface GigabitEthernet1/0/1
ip address 192.168.20.1 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.20.254 active
service-manage ping permit
undo shutdown
interface GigabitEthernet1/0/2
ip address 192.168.30.1 255.255.255.0
undo shutdown
- fw2配置(备份)
interface GigabitEthernet1/0/0
undo shutdown
ip address 192.168.10.2 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.10.254 standby
service-manage ping permit
#
interface GigabitEthernet1/0/1
undo shutdown
ip address 192.168.20.2 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.20.254 standby
service-manage ping permit
interface GigabitEthernet1/0/2
undo shutdown
ip address 192.168.30.2 255.255.255.0
- 区域划分(fw1、fw2一样)
firewall zone trust
set priority 85
add interface GigabitEthernet1/0/0
add interface GigabitEthernet1/0/2
firewall zone untrust
set priority 5
add interface GigabitEthernet1/0/3
- 策略(可以配置一样)
security-policy
rule name trust_to_local_and_untrust
source-zone trust
destination-zone local
destination-zone untrust
action permit
rule name untrust_to_local_and_trust
source-zone untrust
destination-zone local
destination-zone trust
action permit
- 配置hrp
#fw1
hrp enable
hrp interface GigabitEthernet 1/0/2 remote 192.168.30.2
#fw2
hrp enable
hrp interface GigabitEthernet 1/0/2 remote 192.168.30.1
结果如图
-
fw1(主)
-
fw2(备)