信息安全基础知识笔记06 防火墙双机热备技术(上)
信息安全基础知识笔记06防火墙双机热备技术(上)
本笔记主要介绍防火墙双机热备,分为上下两个部分。上部分要求掌握双机热备技术的基本原理,包括介绍VRRP,VGMP和HRP多个协议的基本概念和原理,以及介绍双机热备的备份方式。
双机热备技术产生的原因
传统的组网方式如图所示,内部用户和外部用户的交互报文全部通过防火墙A。如果防火墙A出现故障,内部网络中所有以防火墙A作为默认网关的主机与外部网络之间的通讯将中断,通讯可靠性无法保证。
双机热备技术的出现改变了可靠性难以保证的尴尬状态,通过在网络出口位置部署两台防火墙,保证了内部网络与外部网络之间的通讯畅通。
防火墙作为安全设备,一般会部署在需要保护的网络和不受保护的网络之间,即位于业务接口点上。在这种业务点上,如果仅仅使用一台防火墙设备,无论其可靠性多高,系统都可能会承受因为单点故障而导致网络中断的风险。为了防止一台设备出现意外故障而导致网络业务中断,可以采用两台防火墙形成双机备份。
虚拟路由冗余协议(VRRP)简述
(1)路由冗余部署方案
路由器组网中通过VRRP协议(虚拟路由冗余协议)实现设备冗余。
为了避免路由器传统组网所引起的单点故障的发生,通常情况可以采用多条链路的保护机制,依靠动态路由协议进行链路切换。但这种路由协议来进行切换保护的方式存在一定的局限性,当不能使用动态路由协议时,仍然会导致链路中断的问题,因此推出了另一种保护机制VRRP(虚拟路由冗余协议)来进行。采用VRRP的链路保护机制比依赖动态路由协议的广播报文来进行链路切换的时间更短,同时弥补了不能使用动态路由情况下的链路保护。
VRRP(Virtual Router Redundancy Protocol)是一种基本的容错协议。
以下为双机热备常用的基本概念:
① 备份组:同一个广播域的一组路由器组织成一个虚拟路由器,备份组中的所有路由器一起,共同提供一个虚拟IP地址,作为内部网络的网关地址。
② 主(Master)路由器:在同一个备份组中的多个路由器中,只有一台处于活动状态,只有主路由器能转发以虚拟IP地址作为下一跳的报文。
③ 备份(Backup)路由器:在同一个备份组中的多个路由器中,除主路由器外,其他路由器均为备份路由器,处于备份状态。
主路由器通过组播方式定期向备份路由器发送通告报文(HELLO),备份路由器则负责监听通告报文,以此来确定其状态。由于VRRP HELLO报文为组播报文,所以要求备份组中的各路由器通过二层设备相连,即启用VRRP时上下行设备必须具有二层交换功能,否则备份路由器无法收到主路由器发送的HELLO报文。如果组网条件不满足,则不能使用VRRP。
Tips:
VRRP协议是数通(Routing & Switching)中的一个考点内容,以后会对该协议作进一步详细介绍其实现原理,路由器配置方法,排错思路等,在这里先留一个坑,择日再填。
(2)VRRP在多区域防火墙组网中存在的缺陷
为防火墙上多个区域提供双机备份功能时,需要在每一台防火墙上配置多个VRRP备份组。
若企业使用的是状态检测防火墙,它要求报文的来回路径通过同一台防火墙。为了满足这个限制条件,就要求在同一台防火墙上的所有VRRP备份组状态保持一致,即需要保证在主防火墙上所有VRRP备份组都是主状态,这样所有报文都将从此防火墙上通过,而另外一台防火墙则充当备份设备。
而就是因为这样的制约条件,导致了传统VRRP在实现防火墙双机热备上出现了缺陷:
传统VRRP方式无法实现主、备用防火墙状态的一致性。
如上图所示:
① 假设USG(防火墙)A和USG(防火墙) B的VRRP状态一致,即USG A的所有接口均为主用状态,USG B的所有接口均为备用状态。
此时,Trust区域的PC1访问Untrust区域的PC2,报文的转发路线为(1)-(2)-(3)-(4)。USG A转发访问报文时,动态生成会话表项。当PC2的返回报文经过(4)-(3)到达USG A时,由于能够命中会话表项,才能再经过(2)-(1)到达PC1,顺利返回。同理,当PC2和DMZ区域的Server也能互访。
② 假设USG(防火墙)A和USG(防火墙)B的VRRP状态不一致,例如当USG B与Trust区域相连的接口为备用状态,但与Untrust区域的接口为主用状态。
此时,PC1的报文通过USG A设备到达PC2后,在USG A上动态生成会话表项。PC2的返回报文通过路线(4)-(9)返回。此时由于USG B上没有相应数据流的会话表项,在没有其他报文过滤规则允许通过的情况下,USG B将丢弃该报文,导致会话中断。
分析问题产生的原因:路由器与防火墙的报文转发机制不同。
对于路由器:每个报文都需经过查询路由表,当匹配上后才进行转发。当链路切换后,后续报文不会受到影响,继续进行转发。
对于状态检测防火墙:如果首包允许通过后,会建立一条五元组的会话连接(会话表项)。只有命中该会话表项的后续报文(包括返回报文)才能够通过防火墙;如果链路切换后,后续报文找不到正确的表项,会导致业务中断。
Tips:
当路由器配置NAT后也会存在同样的问题,因为在进行NAT后会形成一个NAT转换后的表项。
(3)VRRP用于防火墙多区域备份时的改进与扩展
为了保证所有VRRP备份组切换的一致性,在VRRP的基础上进行了扩展。
推出了VGMP(VRRP Group Management Protocol)来弥补此局限。
VRRP在防火墙中应用的要求:
① VRRP状态的一致性
② 会话表状态备份
VGMP提出VRRP管理组的概念,将同一台防火墙上的多个VRRP备份组都加入到一个VRRP管理组,由管理组统一管理所有VRRP备份组。通过统一控制各VRRP备份组状态的切换,来保证管理组内的所有VRRP备份组状态都是一致的。
VGMP(虚拟路由冗余组管理协议)简述
(1)VGMP基本原理
通过指定VGMP组的状态来决定谁将成为主用防火墙或备用防火墙。
当防火墙上的VGMP为Active/Standby状态时,组内所有VRRP备份组状态统一为Active/Standby状态。VGMP状态为Active时,所有报文都将从该防火墙上通过,该防火墙成为主用防火墙。此时另外的防火墙上对应的VGMP为备状态,该防火墙成为备用防火墙。
① VGMP的状态保持(Hello报文)
VGMP中状态为Active的端会定期向对端发送HELLO报文,通知Standby端本身的运行状态(包括优先级、VRRP成员状态等)。
与VRRP不同的是,Standby端收到HELLO报文后,会回应一个ACK消息,该消息中也会携带本身的优先级、VRRP成员状态等。
VGMP HELLO报文发送周期缺省为1秒。当Standby端经过三个HELLO报文周期没有收到对端发送的HELLO报文时,会认为对端出现故障,从而将自己切换到Active状态。
② VGMP的优先级
防火墙的VGMP优先级有一个初始优先级,当防火墙的接口或者单板等出现故障时,会在初始优先级基础上减去一定的降低值。
VGMP的优先级会根据组内的成员的状态动态调整,以此完成两台防火墙的主备倒换。
Tips:华为系统防火墙USG6000和NGFW Module的初始优先级为45000。USG9500的VGMP组的初始优先级与LPU板(接口板)上的插卡个数和SPU板(业务板)上的CPU个数有关。
(2)VGMP组管理方式
① 状态一致性管理
VGMP管理组控制所有的VRRP备份组统一切换。
各备份组的主/备状态变化都需要通知其所属的VGMP管理组,由VGMP管理组决定是否允许VRRP备份组进行主/备状态切换。如果需要切换,则VGMP管理组控制所有的VRRP备份组统一切换。VRRP备份组加入到管理组后,状态不能自行单独切换。
② 抢占管理
当原来出现故障的主设备故障恢复时,其优先级也会恢复,此时可以重新将自己的状态抢占为主。
VRRP备份组本身具有抢占功能。即当原来出现故障的主设备故障恢复时,其优先级也会恢复,此时可以重新将自己的状态抢占为主。
VGMP管理组的抢占功能和VRRP备份组类似,当管理组中出现故障的备份组故障恢复时,管理组的优先级也将恢复。此时VGMP可以决定是否需要重新抢占称为主设备。
当VRRP备份组加入到VGMP管理组后,备份组上原来的抢占功能将失效,抢占行为发生与否必须由VGMP管理组统一决定。
华为冗余协议HRP简述
(1)HRP基本概念
HRP(Huawei Redundancy Protocol)协议,用来实现防火墙双机之间动态状态数据和关键配置命令的备份。
在双机热备组网中,当主防火墙出现故障时,所有流量都将切换到备防火墙。因为USG防火墙是状态防火墙,如果备防火墙上没有原来主防火墙上的会话表等连接状态数据,则切换到备防火墙的流量将无法通过防火墙,造成现有的连接中断,此时用户必须重新发起连接。
HRP模块提供了基础的数据备份机制和传输功能。各个应用模块收集本模块需要备份的数据,提交给HRP模块,HRP模块负责将数据发送到对端防火墙的对应模块,应用模块需要再将HRP模块提交上来的数据进行解析,并加入到防火墙的动态运行数据池中。
① 备份内容:要备份的连接状态数据包括TCP/UDP的会话表、ServerMap表项、动态黑名单、NO-PAT表项、ARP表项等。
② 备份方向: 防火墙上有状态为主的VGMP管理组,向对端备份。
③ 备份通道:一般情况下,在两台设备上直连的端口作为备份通道,有时也称为“心跳线”(VGMP也通过该通道进行通信)。
(2)HRP心跳接口
两台FW之间备份的数据是通过心跳口发送和接收的,是通过心跳链路(备份通道)传输的。
心跳口必须是状态独立且具有IP地址的接口,可以是一个物理接口(GE接口),也可以是为了增加带宽,由多个物理接口捆绑而成的一个逻辑接口Eth-Trunk。
通常情况下,备份数据流量约为业务流量的20%~30%,请根据备份数据量的大小选择捆绑物理接口的数量。
(3)HRP心跳接口状态
HRP心跳接口共有五种状态:invalid,down,peerdown,ready,running
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状态的心跳口依次(按配置先后顺序)接替当前心跳口处理业务。
综上所述,心跳链路探测报文的作用是检测对端设备的心跳口能否正常接收本端设备的报文,以确定心跳链路是否可用的。只要本端心跳接口的物理和协议状态up就会向对端心跳口发送心跳链路探测报文进行探测。
而我们在前面讲到的HRP心跳报文是用于探测和感知对端设备(VGMP组)是否正常工作的。HRP心跳报文只有主用设备的VGMP组通过状态为running的心跳口发出。
双机热备的备份方式
(1) 自动备份
自动备份功能缺省为开启状态,能够自动实时备份配置命令和周期性地备份状态信息,适用于各种双机热备组网。
启用自动备份功能后,在一台FW上每执行一条可以备份的命令时,此配置命令就会被立即同步备份到另一台FW上。
启用自动备份功能后,主用设备会周期性地将可以备份的状态信息备份到备用设备上。即主用设备的状态信息建立后不会立即备份,而是在建立一段时间(10秒左右)之后才会备份到备用设备。
自动备份不会备份以下类型的会话:
① 到防火墙自身的会话,例如管理员登录防火墙时产生的会话。
② 未完成3次握手的TCP半连接会话(快速备份支持备份此会话)。
③ 只为UDP首包创建,而不被后续包匹配的会话(快速备份支持备份此会话)。
(2) 手工批量备份
手工批量备份需要管理员手工触发,每执行一次手工批量备份命令,主用设备就会立即同步一次配置命令和状态信息到备用设备。因此手工批量备份主要适用于主备设备之间配置不同步,需要手工同步的场景。
执行手工批量备份命令后,主用(配置主)设备会立即同步一次可以备份的配置命令和状态信息到备用(配置备)设备。而不必等到自动备份周期的到来。
(3) 会话快速备份
会话快速备份功能,适用于负载分担的工作方式,以应对报文来回路径不一致的场景。
负载分担组网下,由于两台防火墙都是主用设备,都能转发报文,所以可能存在报文的来回路径不一致的情况,即来回两个方向的报文分别从不同的防火墙经过。这时如果两台防火墙的会话没有及时相互备份,则回程报文会因为没有匹配到会话表项而被丢弃,从而导致业务中断。所以为防止上述现象发生,需要在负载分担组网下配置会话快速备份功能,使两台防火墙能够实时的相互备份会话,使回程报文能够查找到相应的会话表项,从而保证内外部用户的业务不中断。
启用会话快速备份功能后,主用设备会实时地将可以备份的会话(包括上面提到的自动备份不支持的会话)都同步到备用设备上。即在主用设备会话建立的时候立即将其实时备份到备用设备。
(4) 设备重启后主备FW的配置自动同步
双机热备组网中,如果一台FW重启,重启期间业务都是由另一台FW承载。在此期间,承载业务的FW上可能会新增、删除或修改配置。为了保证主备FW配置一致,在FW重启完成后,会自动从当前承载业务的FW上进行一次配置同步。
配置同步仅会同步支持备份的配置,如安全策略、NAT策略等。不支持备份的配置,如OSPF、BGP等,还继续沿用原有的配置。
配置同步需要一定的时间。同步的时间与配置量有关,配置量越大同步配置所需时间也越长,最长可能需要1个小时左右。在配置同步期间,FW上无法执行支持备份的配置命令。