「Firewall」- 防火墙双机:问题、方案

  CREATED BY JENKINSBOT

问题描述

随着移动办公、网上购物、即时通讯、互联网金融、互联网教育等业务蓬勃发展,网络承载的业务越来越多,越来越重要。所以如何保证网络的不间断传输成为网络发展过程中急需解决的一个问题;

防火墙部署在企业网络出口处,内外网之间的业务都会通过防火墙转发。如果防火墙出现故障,便会导致内外网之间的业务全部中断,影响到整网业务。由此可见,在这种网络关键位置上如果只使用一台设备的话,无论其可靠性多高,都存在因设备单点故障而导致网络中断的风险。于是,在做网络架构设计时,通常会在网络的关键位置部署两台网络设备,以提升网络的可靠性;

问题:状态数据同步

防火墙是状态检测设备,它会对一条流量的首包进行完整的检测,并建立会话来记录报文的状态信息(包括报文的源 IP、源端口、目的 IP、目的端口、协议等)。而这条流量的后续报文只有匹配会话才能够通过防火墙并且完成报文转发,如果后续报文不能匹配会话则会被防火墙丢弃;

如果在网络出口处部署两台独立的防火墙,则两台防火墙独立运行,需分别进行配置维护。此外,以在防火墙的上行、下行部署 VRRP 为例,由于这两组 VRRP 相互独立,因此容易出现主备状态不一致的情况,此时内网访问外网的往返流量路径不一致,当回程流量抵达 FW2 时,由于 FW2 没有匹配的会话表项,因此这些流量将被丢弃;

所以当防火墙双机部署时需要考虑两台防火墙之间的会话等状态信息的备份;

问题:配置维护成本

解决方案

防火墙双机热备技术用于解决该问题。部署多台防火墙可提升可靠性,需保证设备切换过程中的业务连续性;

原理简述

1)双机热备,需要两台硬件和软件配置均相同的防火墙组成双机热备系统,等于说是一模一样;
2)两台 FW 之间,通过一条独立的链路连接,这条链路通常被称之为“心跳线”。通过心跳线了解对端的健康状况,向对端备份配置和表项(如会话表、IPsec SA 等);
3)当一台防火墙出现故障时,业务流量能平滑地切换到另一台设备上处理,使业务不中断;

特性特征

目前(08/08/2022)只支持两台设备进行双机热备;
主备设备的产品型号和版本必须相同;
主备设备业务板和接口卡的位置、类型和数目都须相同,否则会出现主用设备备份过去的信息,与备用设备的物理配置无法兼容,导致主备切换后出现问题;

应用场景

双机热备直路部署,连接二层设备

防火墙的业务接口工作在三层,上下行连接交换机;

终端可将默认网关设置为 VRRP VRID1 的虚拟 IP 地址。SW3/SW4 配置回程路由时,可将下一跳设置为 VRRP VRID100 的虚拟 IP 地址;

双机热备直路部署,连接三层设备

防火墙的业务接口工作在三层,上下行连接路由器;

防火墙与路由器之间运行 OSPF。当 FW1 的业务接口故障时,其切换成备用设备,FW2 成为主用设备。FW1 发布的路由 Cost 值自动修改为 65500。路由重新收敛后,流量通过 FW2 转发;

概念术语

VRRP(Virtual Router Redundancy Protocol)

VRRP 是一种容错协议,它保证当主机的下一跳路由器(默认网关)出现故障时,备份路由器能自动代替前者完成报文转发任务,从而保持网络通信的连续性和可靠性;

VGMP(VRRP Group Management Protocol)

1)使用 VGMP 统一管理 VRRP Group:将防火墙上的所有 VRRP Group 都加入到同个 VGMP Group 中,由 VGMP Group 来集中监控并管理所有的 VRRP Group 状态;
2)VGMP Group 的状态决定 VRRP 成员接口的状态:如果 VGMP Group 检测到其中某个 VRRP Group 的状态变化,则 VGMP Group 会控制组中的所有 VRRP Group 统一进行状态切换,会强制组内所有 VRRP Group 的成员接口统一切换状态,保证各 VRRP 备份组状态的一致性,从而保证业务往返流量转发路径一致;

每台 FW 上有一个 VGMP Group,其有四种状态:
1)Initialize:启用双机热备功能后,VGMP Group 的短暂初始状态;
2)Load Balance:当防火墙本端的 VGMP Group 与对端的 VGMP Group 优先级相等时,两端的 VGMP Group 都处于 Load Balance 状态;
3)Active:当本端的 VGMP Group 优先级高于对端时,本端的 VGMP Group 处于 Active 状态;
4)Standby:当本端的 VGMP Group 优先级低于对端时,本端的 VGMP Group 处于 Standby 状态;

两台 FW 组成双机热备组网后,正常情况下,两台 FW 的 VGMP Group 优先级相等,且都处于 Load Balance 状态。这时两台 FW 处于负载分担状态;
可以通过 VRRP 配置和手工指定备设备这两种方式,使两台 FW 形成主备备份状态;

VRRP 配置的方式适用于 FW 连接二层交换机的组网(VRRP 不能在三层使用),指定备设备的方式适用于 FW 其他方式的双机热备组网;

FW 的 VGMP 优先级有一个初始优先级,当 FW 的接口或者单板等出现故障时,会在初始优先级基础上减去一定的降低值;

HRP( Huawei Redundancy Protocol)

为了实现主用设备出现故障时备用设备能平滑地接替工作,必须在主用和备用设备之间备份关键配置命令和会话表等状态信息;

为此华为防火墙引入 HRP 协议,实现防火墙双机之间动态状态数据和关键配置命令的备份;

防火墙能够备份的配置信息如下:
1)策略:安全策略、NAT 策略(包括 NAT 地址池)、NAT Server 等;
2)对象:地址、地区、服务、应用、用户等;
3)网络:安全区域、DNS、IPsec、SSL VPN 等;
4)系统:管理员、虚拟系统、日志配置;

防火墙能够备份的状态信息如下:
会话表、SeverMap 表、黑名单/白名单、PAT 方式端口映射表、NO-PAT 方式地址映射表、二层转发表(静态 MAC 备份)、AAA 用户表(缺省用户 admin 不备份)、在线用户监控表、PKI 证书、IPsec 备份等;

在主备备份组网下,配置命令和状态信息都由 Active 设备备份到 Standby 设备;
在负载分担组网下,两台 FW 都是 Active 设备。因此如果允许两台主用设备之间能够相互备份命令,那么可能就会造成两台设备命令相互覆盖或冲突的问题。所以为了方便管理员对两台 FW 配置的统一管理,避免混乱,华为引入配置主和配置从设备的概念;

配置案例

主备备份模式(Layer 2)

实验拓扑:

配置命令:

// ---------------------------------------------------------------------------- // 基础网络配置
// 略

// ---------------------------------------------------------------------------- // 配置 VRRP 协议

// for FW1

interface GigabitEthernet1/0/0
 undo shutdown
 ip address 10.0.20.1 255.255.255.0
 vrrp vrid 1 virtual-ip 10.0.20.254 active
 vrrp vrid 3 virtual-ip 10.0.20.253 standby
#
interface GigabitEthernet1/0/1
 undo shutdown
 ip address 10.0.10.1 255.255.255.0
 vrrp vrid 2 virtual-ip 10.0.10.254 active
 vrrp vrid 4 virtual-ip 10.0.10.253 standby

// for FW2

interface GigabitEthernet1/0/0
 undo shutdown
 ip address 10.0.20.2 255.255.255.0
 vrrp vrid 1 virtual-ip 10.0.20.254 standby
 vrrp vrid 3 virtual-ip 10.0.20.253 active
#
interface GigabitEthernet1/0/1
 undo shutdown
 ip address 10.0.10.2 255.255.255.0
 vrrp vrid 2 virtual-ip 10.0.10.254 standby
 vrrp vrid 4 virtual-ip 10.0.10.253 active
 
// ---------------------------------------------------------------------------- // 配置 HRP 同步

// for FW1

 hrp enable
 hrp interface GigabitEthernet1/0/6 remote 10.0.12.2

// for FW2
 
 hrp enable
 hrp interface GigabitEthernet1/0/6 remote 10.0.12.1

HRP_M<FW1>display hrp state
2022-08-16 08:00:34.250 
 Role: active, peer: active
 Running priority: 45000, peer: 45000
 Backup channel usage: 0.00%
 Stable time: 0 days, 1 hours, 16 minutes
 Last state change information: 2022-08-16 6:44:31 HRP core state changed, old_state = abnormal(active), new_state = normal, local_priority = 45000, peer_priority = 45000.

补充说明:
1)VRRP 的 active / standby 指定将 VRRP 加入 VGMP Group(在防火墙中,仅有两个 VGMP Group:active;standby;);

负载均衡模式(Layer 2)

在该实验中,如果发包路径与回包路径不同(上下使用不用的默认网关),则无法进行通信。

如果需要使用不同的转发路径,则需要在 FW1 与 FW2 中同时开启负载均衡模式:
2)命令 HRP_M[FW1] hrp load balance device 无效(或许我们测试的方式不对),需要通过 Web GUI 进行配置;
1)System / High Availability / Dual-System Hot Standby / Edit / Operating Mode: Load Balanceing

主备备份模式(Layer 3)

针对部分版本的防火墙,OSPF 受策略限制(单播报文),需要进行;
1)undo firewall packet-filter basic-protocol enable
2)或,通过 security-policy 策略进行放行;

运行 HRP 服务:

// for FW6 
 hrp enable
 hrp interface GigabitEthernet1/0/6 remote 10.0.12.2

// for FW7 
 hrp enable
 hrp interface GigabitEthernet1/0/6 remote 10.0.12.1

// 默认处于负载均衡模式,备链路的负载
// 通过 Web GUI 配置,或者 hrp standby-device 切换为主备模式;

创建 Link Group 管理,使得接口同步 UP/DOWN 状态:

[Intf-1/0/0] link-group 1
[Intf-1/0/0] link-group 1