细说防火墙双机热备
一、双机热备简介
防火墙部署在网络出口位置时,如果发生故障会影响到整网业务。为提升网络的可靠性,需要部署两台FW并组成双机热备。
双机热备需要两台硬件和软件配置均相同的FW。两台FW之间通过一条独立的链路连接,这条链路通常被称之为“心跳线”。两台FW通过心跳线了解对端的健康状况,向对端备份配置和表项(如会话表、IPSec SA等)。当一台FW出现故障时,业务流量能平滑地切换到另一台设备上处理,使业务不中断。
二、心跳线
双机热备组网中,心跳线是两台FW交互消息了解对端状态以及备份配置命令和各种表项的通道。心跳线两端的接口通常被称之为“心跳接口”。
心跳线主要传递如下消息:
•心跳报文(Hello报文):两台FW通过定期(默认周期为1秒)互相发送心跳报文检测对端设备是否存活。
•VGMP报文:了解对端设备的VGMP组的状态,确定本端和对端设备当前状态是否稳定,是否要进行故障切换。
•配置和表项备份报文:用于两台FW同步配置命令和状态信息。
•心跳链路探测报文:用于检测对端设备的心跳口能否正常接收本端设备的报文,确定是否有心跳接口可以使用。
•配置一致性检查报文:用于检测两台FW的关键配置是否一致,如安全策略、NAT等。
三、双机热备工作模式
FW支持主备备份和负载分担模式两种运行模式。
•主备备份模式:
两台设备一主一备。正常情况下业务流量由主用设备处理。当主用设备故障时,备用设备接替主用设备处理业务流量,保证业务不中断。
•负载分担模式:
两台设备互为主备。正常情况下两台设备共同分担整网的业务流量。当其中一台设备故障时,另外一台设备会承担其业务,保证原本通过该设备转发的业务不中断。
四、VGMP组
VGMP(VRRP Group Management Protocol)协议是华为公司的私有协议。VGMP协议中定义了VGMP组,FW基于VGMP组实现设备主备状态管理。
每台FW都有一个VGMP组,用户不能删除这个VGMP组,也不能再创建其他的VGMP组。VGMP组有优先级和状态两个属性。VGMP组优先级决定了VGMP组的状态。
VGMP组优先级是不可配置的。设备正常启动后,会根据设备的硬件配置自动生成一个VGMP组优先级,我们将这个优先级称之为初始优先级。
五、基于VRRP的主备双机热备
如果要两台FW工作在主备备份模式,需要将一台FW的所有VRRP备份组状态都配置为active,另一台FW的所有VRRP备份组状态都配置为standby。
FW_A的所有VRRP备份组状态都被配置成active,FW_B的所有VRRP备份组状态都被配置成standby。正常情况下,两台FW的VGMP组状态都是load-balance,VRRP备份组的运行状态由配置决定。因此,FW_A的VRRP备份组运行状态都是Master,FW_B的VRRP备份组运行状态都是Backup。
由于内部网络中主机的网关都被设置成了VRRP备份组2的虚拟IP地址10.0.0.1,这些主机在访问外部网络时,会广播一个ARP请求报文,请求10.0.0.1的MAC地址。FW_A的VRRP备份组1状态为Master,会响应内网主机的ARP请求。FW_B的VRRP备份组1状态为Backup,不会响应内网主机的ARP请求。FW_A响应的ARP报文会刷新交换机的MAC地址表和主机的ARP缓存表,使主机发往外部网络的流量都被引导到FW_A上处理。
同理,路由器R1和R2到内部网络路由的下一跳地址被设置成了VRRP备份组1的虚拟IP地址10.0.1.1。外部网络发往内部网络的流量也被引导到FW_A上处理。
六、故障后如何调整流量
FW_A的上行业务接口故障,FW_A的VRRP备份组1的状态变为Initialize。同时,FW_A和FW_B的VGMP组状态也发生了变化。FW_A的VGMP组状态变为standby,FW_B的VGMP组状态变为active。FW_A和FW_B基于VGMP组状态对VRRP备份组状态进行调整。FW_A上VRRP备份组2的状态被调整为Backup。FW_B上VRRP备份组1和2的状态都被调整为Master。
FW_B上VRRP备份组状态由Backup变为Master时会广播免费ARP报文,报文中携带VRRP备份组的虚拟IP地址和接口的MAC地址(开启接口虚MAC地址功能时,携带虚MAC地址)。免费ARP报文会刷新交换机的MAC地址表、主机和路由器的ARP缓存表。这样,内外部网络之间的流量都会被引导到FW_B上转发。