华为防火墙部署在网络出口位置时,如果发生故障会影响到整网业务,为提升网络的可靠性,需要部署两台华为防火墙并组成双机热备
一、双机热备概述
1、双机热备介绍
双机热备需要两台硬件和软件配置均相同的华为防火墙,两台华为防火墙之间通过一条独立的链路连接,这条链路通常被称之为“心跳线”,两台华为防火墙通过心跳线了解对端的健康状况,向对端备份配置和表项(如会话表、IPSec SA等),当一台防火墙出现故障时,业务流量能平滑地切换到另一台设备上处理,使业务不中断
2、双机热备的要求
(1)硬件要求
- 组成双机热备的两台防火墙的型号必须相同,安装的单板类型、数量以及单板安装的位置必须相同,对于USG6680E和USG6712E/6716E,要求组成双机热备的两台同型号设备的BomID Version匹配,即BomID Version为000、001、002的设备不能与BomID Verison为003及其之后的同型号设备组建双机热备环境,其中,BomID Version可通过display version查看
- 两台防火墙的硬盘配置可以不同,例如,一台防火墙安装硬盘,另一台防火墙不安装硬盘,不会影响双机热备的运行,但未安装硬盘的防火墙日志存储量将远低于安装了硬盘的防火墙,而且部分日志和报表功能不可用
(2)软件要求
组成双机热备的两台防火墙的系统软件版本、系统补丁版本、动态加载的组件包、特征库版本、HASH选择CPU模式以及HASH因子都必须相同,实际上,在系统软件版本升级或回退的过程中,两台防火墙可以暂时运行不同版本的系统软件
(3)License要求
双机热备功能自身不需要License,但对于其他需要License的功能,如IPS、反病毒等功能,组成双机热备的两台防火墙需要分别申请和加载License,两台防火墙之间不能共享License,两台防火墙的License控制项种类、资源数量、升级服务到期时间都要相同
3、心跳线
双机热备组网中,心跳线是两台防火墙交互消息了解对端状态以及备份配置命令和各种表项的通道,心跳线两端的接口通常被称之为“心跳接口”,心跳线主要传递如下消息
- 心跳报文(Hello报文):两台防火墙通过定期(默认周期为1秒)互相发送心跳报文检测对端设备是否存活
- VGMP报文:了解对端设备的VGMP组的状态,确定本端和对端设备当前状态是否稳定,是否要进行故障切换
- 配置和表项备份报文:用于两台防火墙同步配置命令和状态信息
- 心跳链路探测报文:用于检测对端设备的心跳口能否正常接收本端设备的报文,确定是否有心跳接口可以使用
- 配置一致性检查报文:用于检测两台防火墙的关键配置是否一致,如安全策略、NAT等
上述报文均不受防火墙的安全策略控制,因此,不需要针对这些报文配置安全策略
4、心跳线和心跳接口的配置
- 心跳接口的连线方式可以是直连,也可以通过交换机或路由器连接,建议将组成双机热备的两台防火墙安装在同一个机架或者相邻的机架上,心跳接口使用网线或者光纤直连
- 对于USG6680E和USG6712E/6716E,请使用专门的两个HA接口作为心跳接口,这两个HA接口默认已加入Eth-Trunk 65535接口,且不允许从Eth-Trunk 65535移出作为业务接口使用,有关HA接口的详细介绍,请参见设备支持的接口类型,如果两个HA接口的带宽仍不满足使用需求,支持将其他以太网接口加入Eth-Trunk 65535接口,以增加备份通道的带宽
- 对于其他未提供专门HA接口的机型,建议规划专门的接口作为心跳接口,该接口只用来发送心跳报文、备份报文等双机热备功能相关的报文,不要将业务报文引导到该接口上转发,同时,建议将多个以太网接口绑定成Eth-Trunk接口,使用Eth-Trunk作为心跳接口,这样既提高了链路的可靠性,又可以增加备份通道的带宽
- 心跳接口需要发送业务相关的表项备份报文,心跳接口的流量大小与业务流量大小有关,心跳接口的带宽建议不低于峰值业务流量的30%
- 建议至少配置2个心跳接口,一个心跳接口作为主用,另一个心跳接口作为备份
5、心跳线和心跳接口的配置注意事项
- MGMT接口(MEth0/0/0)不能作为心跳接口
- 配置了vrrp virtual-mac enable命令的接口不能用作心跳接口
- 两台防火墙心跳接口的类型、接口编号、链路协议类型必须相同,如果使用Eth-Trunk接口作为心跳接口,Eth-Trunk接口的成员接口也要相同,如果使用VLAN接口(VLANIF)作为心跳接口,实际收发报文的二层物理接口也必须相同
- 两台防火墙心跳接口必须加入相同的安全区域
- 接口MTU值小于1500的接口不能作为心跳接口,配置和表项备份报文的最大长度为1500字节,且报文不支持分片,如果心跳接口MTU值小于1500,会导致报文发送失败
- 心跳接口通过交换机或路由器连接时,交换机或路由器上转发心跳报文和备份报文的接口的MTU值不能小于1500
- 心跳接口非直连需要配置相关路由时,请正确配置路由,否则,shutdown/undo shutdown心跳接口后,心跳接口可能会进入异常状态,无法恢复,只能通过删除该错误路由或者重新配置心跳接口才能解决,例如在主备设备任一设备上配置了一条静态路由ip route-static dest-heartbeat-address 32 other-up-interface,其目的IP地址为对端心跳接口IP地址,下一跳出接口为任意其他状态为up的接口,此时shutdown/undo shutdown该心跳接口,心跳接口将进入异常运行状态,无法恢复正常
- 如果防火墙上配置了虚拟系统,心跳接口不能是虚拟系统的接口,必须是根系统的接口,虚拟系统的配置命令和表项也能通过规划在根系统的心跳接口备份到对端设备
6、双机热备工作模式
防火墙支持主备备份和负载分担模式两种运行模式
(1)主备备份模式
两台设备一主一备,正常情况下业务流量由主用设备处理,当主用设备故障时,备用设备接替主用设备处理业务流量,保证业务不中断,流量由单台设备处理,相较于负载分担模式,路由规划和故障定位相对简单
(2)负载分担模式
两台设备互为主备,正常情况下两台设备共同分担整网的业务流量,当其中一台设备故障时,另外一台设备会承担其业务,保证原本通过该设备转发的业务不中断
- 相较于主备备份模式,组网方案和配置相对复杂
- 负载分担组网中使用入侵防御、反病毒等内容安全检测功能时,可能会因为流量来回路径不一致导致内容安全功能失效
- 负载分担组网中配置NAT时,需要额外的配置来防止两台设备NAT资源分配冲突
- 负载分担模式组网中流量由两台设备共同处理,可以比主备备份模式或镜像模式组网承担更大的峰值流量
- 负载分担模式组网中设备发生故障时,只有一半的业务需要切换,故障切换的速度更快
7、VGMP组
VGMP(VRRP Group Management Protocol)协议是华为的私有协议,VGMP协议中定义了VGMP组,华为防火墙基于VGMP组实现设备主备状态管理
- 每台华为防火墙都有一个VGMP组,用户不能删除这个VGMP组,也不能再创建其他的VGMP组,VGMP组有优先级和状态两个属性,VGMP组优先级决定了VGMP组的状态
- VGMP组优先级是不可配置的,设备正常启动后,会根据设备的硬件配置自动生成一个VGMP组优先级,我们将这个优先级称之为初始优先级,初始优先级与CPU个数有关,当设备发生故障时,VGMP组优先级会降低
- USG6635E/6640E-K/6655E、USG6680E和USG6712E/6716E的默认优先级是45002,其他型号默认优先级是45000
8、VGMP组的状态
VGMP组有四种状态:initialize、load-balance、active和standby,其中,initialize是初始化状态,设备未启用双机热备功能时,VGMP组处于这个状态,其他三个状态则是设备通过比较自身和对端设备VGMP组优先级大小确定的,设备通过心跳线接收对端设备的VGMP报文,了解对端设备的VGMP组优先级
- 设备自身的VGMP组优先级等于对端设备的VGMP组优先级时,设备的VGMP组状态为load-balance
- 设备自身的VGMP组优先级大于对端设备的VGMP组优先级时,设备的VGMP组状态为active
- 设备自身的VGMP组优先级小于对端设备的VGMP组优先级时,设备的VGMP组状态为standby
- 设备没有接收到对端设备的VGMP报文,无法了解到对端VGMP组优先级时,设备的VGMP组状态为active,例如,心跳线故障
- 双机热备要求两台设备的硬件型号、单板的类型和数量都要相同,因此,正常情况下两台设备的VGMP组优先级是相等的,VGMP组状态为load-balance,如果某一台设备发生了故障,该设备的VGMP组优先级会降低,故障设备的VGMP组优先级小于无故障设备的VGMP组优先级,故障设备的VGMP组状态会变成standby,无故障设备的VGMP组状态会变成active
华为防火墙能根据VGMP组的状态调整VRRP备份组状态、动态路由(OSPF、OSPFv3和BGP)的开销值、VLAN的状态以及接口的状态(镜像模式),从而实现主备备份或负载分担模式的双机热备