防火墙的双击热备技术

背景

传统的组网方式如下左图所示,内部用户和外部用户的交互报文全部通过防火墙A。如果防火墙A出现故障内部网络中所有以防火墙A作为默认网关的主机与外部网络之间的通讯将中断,通讯可靠性无法保证。

防火墙作为安全设备,一般会部署在需要保护的网络和不受保护的网络之间,即位于网络边界上。在网络边界上,如果仅仅使用一台防火墙设备,无论其可靠性多高,系统都可能会承受因为单点故障而导致网络中断的风险。为了防止一台设备出现意外故障而导致网络业务中断,可以采用两台防火墙形成双机备份。

VRRP在多区域防火墙组网中的应用

为防火墙上多个区域提供双机备份功能时,需要在每一台防火墙上配置多个VRRP备份组。

VRRP在防火墙应用中存在的缺陷

传统VRRP方式无法实现主、备用防火墙状态信息和多组VRRP状态的一致性。

假设防火墙A和防火墙B的VRRP状态不一致,例如,当防火墙B与Trust区域相连的接口为备用状态,但与Untrust区域的接口为主用状态,则PC1的报文通过防火墙A设备到达PC2后,在防火墙A上动态生成会话表项。PC2的返回报文通过路线(5)返回。此时由于防火墙B上没有相应数据流的会话表项,在没有其他报文过滤规则允许通过的情况下,防火墙B将丢弃该报文,导致会话中断。

问题产生的原因:报文的转发机制不同。

路由器:每个报文都会查路由表,当匹配上后才进行转发。链路切换后,后续报文不会受到影响,继续进行转发。

状态检测防火墙:如果首包允许通过会建立一条五元组的会话连接,只有命中该会话表项的后续报文(包括返回报文)才能够通过防火墙;如果链路切换后,后续报文找不到正确的表项,会导致业务中断。

VGMP基本原理

VGMP(VRRP Group Management Protocol)是VRRP组管理协议,该协议定义了VGMP组,防火墙基于VGMP组实现设备主备状态管理。

防火墙VGMP组状态

Load-balance、Active、Standby;

  • 防火墙VGMP组通过发送VGMP报文通告自身运行状态,从而根据Hello优先级决定主备设备,主设备VGMP组的状态为Active,备设备VGMP组的状态为Standby;
  • 当防火墙上的VGMP组为Active/Standby状态时,组内所有VRRP备份组的状态统一为Active/Standby状态。
  • VGMP组选举主从设备工作流程

  • VGMP报文:VGMP报文包含VGMP Hello报文、HRP Hello报文以及HRP数据报文。
  • VGMP报文发送周期缺省为1秒,通过心跳口发送;
  • VGMP Hello报文用于协商防火墙主备状态,主备防火墙VGMP组定期向对端发送VGMP Hello报文,通知对端本身的运行状态(优先级、设备状态等),事件触发时也会发送VGMP报文(如VGMP开启,优先级改变);
  • HRP Hello报文用于探测对端的VGMP组是否处于工作状态,主备防火墙VGMP组定期向对端发送HRP Hello报文,当Standby端五个报文周期没有收到对端发送的HRP Hello报文时,会认为对端出现故障,从而将自己切换到Active状态。

VGMP组选举主设备工作流程

  • 配置VRRP:配置VRRP备份组1和VRRP备份组2,备份组1和备份组2指定防火墙A为Master设备,防火墙B为Backup设备;
  • 启用防火墙VGMP功能:备份组1和备份组2被防火墙A和防火墙B的VGMP组纳管;
  • 选举VGMP主设备:启用VGMP功能后,VRRP备份组的优先级失效,VRRP Master设备由VGMP优先级指定。防火墙A和防火墙B相互发送VGMP Hello报文,默认情况下,两台防火墙VGMP组的优先级相同,优先级为45000(不同防火墙型号和版本有所区别),此时根据VRRP的配置决定防火墙VGMP组的状态;
  • 切换VRRP组状态:根据配置,防火墙A成为主设备,状态为Active;防火墙B为备设备,状态为Standby。此时备份组1和备份组2皆以防火墙A为Master设备,由防火墙A转发流量。

当故障发生时,VGMP统一切换VRRP备份组1与VRRP备份组2的状态。当VGMP组状态为Active时,VRRP备份组的状态都是Master;当VGMP组状态为Standby时,VRRP备份组的状态都是Backup;

防火墙故障时工作原理如右图,当防火墙A的接口故障时,VGMP组控制VRRP备份组状态统一切换的过程如下:

当防火墙A的下联接口故障时,防火墙A上的VRRP备份组1发生状态切换(由Master切换成Initialize);

防火墙A的VGMP组感知到这一故障后,会降低自身的优先级,然后与防火墙B的VGMP组比较优先级,重新协商主备状态;

协商后,防火墙A的VGMP组状态由Active切换成Standby,防火墙B的VGMP组状态由Standby切换成Active;

同时,由于VGMP组的状态决定了组内VRRP备份组的状态,所以防火墙A的VGMP组会强制组内的VRRP备份组2由Master切换成Backup状态,防火墙B的VGMP组也会强制组内的VRRP备份组1和2由Backup切换成Master状态。这样防火墙B就成为了VRRP备份组1和VRRP备份组2中的Master设备,也就成了为两台防火墙中的主用设备;而防火墙A则成为了VRRP备份组1和VRRP备份组2中的Backup设备,也就成为了两台防火墙中的备用设备;

防火墙B会分别向Trust和Untrust区域发送免费ARP,更新他们的MAC转发表,使Trust访问Untrust的上行报文和回程报文都转发到防火墙B。这样就完成了VRRP备份组状态的统一切换,并且保证业务流量不会中断。

如下故障会引发防火墙VGMP状态切换,不同故障降低的优先级数值不同:

  • VGMP组监控的接口故障;
  • VGMP监控的链路故障;
  • 接口板故障;
  • 业务板故障;
  • 交换网板故障。

VGMP组管理

  • 状态一致性管理
    • VGMP管理组控制所有的VRRP备份组统一切换,VRRP备份组加入到管理组后状态不能单独切换。
  • 抢占管理
    • 当原来出现故障的主设备故障恢复时,其VGMP管理组优先级也会恢复,此时可以重新将自己的VGMP管理组状态抢占为主;
    • 当VRRP备份组加入到VGMP管理组后,备份组上原来的抢占功能将失效,抢占行为发生与否必须由VGMP管理组统一决定。
  • 通道管理
    • 所谓通道管理,就是为了确定双机热备的两台防火墙之间有哪些接口是可用的,VGMP、HRP模块将自动选用可用的接口来发送VGMP、HRP报文。

HRP基本概念

HRP(Huawei Redundancy Protocol)协议,用来实现防火墙双机之间状态信息和关键配置命令的动态备份。

  • 备份方向
    • 支持备份的配置命令默认只能在配置主设备上执行,这些命令会自动备份到备份设备上。例如,安全策略配置命令、NAT策略配置命令等;
    • 主备备份组网中,只有主设备会处理业务,主设备上生成业务表项,并向备设备备份。
    • 负载分担组网中,两台防火墙都会处理业务,都会生成业务表项并向对端设备备份。
  • 备份通道
    • 配置和状态数据需要网络管理员指定备份通道接口进行备份。一般情况下,在两台设备上直连的端口作为备份通道,有时也称为“心跳线”(VGMP也通过该通道进行通信)。

HRP心跳线

双机热备组网中,心跳线是两台防火墙交互消息了解对端状态、备份配置命令和各种表项的通道。心跳线两端的接口通常被称之为“心跳接口”;

心跳线主要传递如下消息:

  • HRP Hello报文:两台防火墙通过定期(默认周期为1秒)互相发送心跳报文检测对端设备是否存活,也称为HRP心跳报文;
  • VGMP Hello报文:了解对端设备的VGMP组的状态,确定本端和对端设备当前状态是否稳定,是否要进行故障切换;
  • HRP数据报文:用于两台防火墙同步配置命令和状态信息;
  • 心跳链路探测报文:用于检测对端设备的心跳口能否正常接收本端设备的报文,确定是否有心跳接口可以使用;
  • 配置一致性检查报文:用于检测两台防火墙的关键配置是否一致,如安全策略、NAT等;
  • 上述报文均不受防火墙的安全策略控制。因此,不需要针对这些报文配置安全策略。
  • 通常情况下,备份数据流量约为业务流量的20%~30%,请根据备份数据量的大小选择捆绑物理接口的数量。

心跳接口的状态

  • Invalid:当本端防火墙上的心跳口配置错误时显示此状态(物理状态up,协议状态down),例如指定的心跳口为二层接口或未配置心跳接口的IP地址。
  • Down:当本端防火墙上的心跳口的物理与协议状态均为down时,则会显示此状态。
  • Peerdown:当本端防火墙上的心跳口的物理与协议状态均为up时,则心跳口会向对端对应的心跳口发送心跳链路探测报文。如果收不到对端响应的报文,那么防火墙会设置心跳接口状态为Peerdown。但是心跳口还会不断发送心跳链路探测报文,以便当对端的对应心跳口up后,该心跳链路能处于连通状态。
  • Ready:当本端防火墙上的心跳口的物理与协议状态均为up时,则心跳口会向对端对应的心跳口发送心跳链路探测报文。如果对端心跳口能够响应此报文(也发送心跳链路探测报文),那么防火墙会设置本端心跳接口状态为ready,随时准备发送和接受心跳报文。这时心跳口依旧会不断发送心跳链路探测报文,以保证心跳链路的状态正常。
  • Running:当本端防火墙有多个处于ready状态的心跳口时,防火墙会选择最先配置的心跳口形成心跳链路,并设置此心跳口的状态为Running。如果只有一个处于Ready状态的心跳口,那么它自然会成为状态为Running的心跳口。状态为Running的接口负责发送HRP心跳报文、HRP数据报文、HRP链路探测报文、VGMP报文和一致性检查报文。这时其余处Ready状态的心跳口处于备份状态,当处于Running状态的心跳口或心跳链路故障时,其余处于Ready状态的心跳口依次(按配置先后顺序)接替当前心跳口处理业务。

应用场景

主要应用于对可靠性要求较高场景,如企业办公场景,为提升网络可靠性,可在企业网络出口部署两台防火墙构成双机热备的组网。综合考虑业务需求,双机热备采用主备模式。

具体配置

防火墙默认放行心跳报文,不需要配置安全策略

路由器

  • 配置各个接口的IP地址

防火墙

  1. 配置各个接口的IP地址

FW1

FW2

配置默认路由【FW1&FW2】

  1. 划分安全区域 【FW1&FW2】

  1. 配置VRRP备份组

FW1

FW2

  1. 指定心跳接口,配置认证密钥,并启用双机热备功能

FW1

FW2

  1. 配置安全策略,允许内网用户访问Internet

  1. 配置NAT策略,让内网用户成功访问Internet

配置地址池

测试:用内网用户ping2.2.2.2

查看主备状态

HRP_S[FW1]dis hrp state verbose
2023-09-25 09:22:06.800 
 Role: active, peer: standby
 Running priority: 45000, peer: 45000
 Backup channel usage: 0.00%
 Stable time: 0 days, 0 hours, 0 minutes
 Last state change information: 2023-09-25 9:21:25 HRP core state changed, old_s
tate = abnormal(standby), new_state = normal, local_priority = 45000, peer_prior
ity = 45000.

 Configuration:
 hello interval:              1000ms
 preempt:                     60s
 mirror configuration:        off
 mirror session:              off
 track trunk member:          on
 auto-sync configuration:     on
 auto-sync connection-status: on
 adjust ospf-cost:            on
 adjust ospfv3-cost:          on
 adjust bgp-cost:             on
 nat resource:                off

 Detail information:
           GigabitEthernet1/0/1 vrrp vrid 1: active
           GigabitEthernet1/0/0 vrrp vrid 2: active
                                  ospf-cost: +0
                                ospfv3-cost: +0
                                   bgp-cost: +0

HRP_S[FW2]dis hrp state verbose
2023-09-25 09:15:42.530 
 Role: standby, peer: active
 Running priority: 45000, peer: 45000
 Backup channel usage: 0.00%
 Stable time: 0 days, 0 hours, 2 minutes
 Last state change information: 2023-09-25 9:13:40 HRP core state changed, old_s
tate = abnormal(active), new_state = normal, local_priority = 45000, peer_priori
ty = 45000.

 Configuration:
 hello interval:              1000ms
 preempt:                     60s
 mirror configuration:        off
 mirror session:              off
 track trunk member:          on
 auto-sync configuration:     on
 auto-sync connection-status: on
 adjust ospf-cost:            on
 adjust ospfv3-cost:          on
 adjust bgp-cost:             on
 nat resource:                off

 Detail information:
           GigabitEthernet1/0/1 vrrp vrid 1: standby
           GigabitEthernet1/0/0 vrrp vrid 2: standby
                                  ospf-cost: +65500
                                ospfv3-cost: +65500
                                   bgp-cost: +100

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值