双机热备技术原理
双机热备技术产生的原因:
传统组网中,只有一台防火墙部署在出口,当防火墙出现故障后,内部网络中所有以防火墙作为默认网关的主机与外部网络之间的通讯中断,通讯可靠性无法保证。
双机热备份技术的出现改变了可靠性难以保证的尴尬状态,通过在网络出口位置部署两台或多台网关设备,保证了内部网络于外部网络之间的通讯畅通。
USG防火墙作为安全设备,一般会部署在需要保护的网络和不受保护的网络之间,即位于业务接口点上。在这种业务点上,如果仅仅使用一台USG防火墙设备,无论其可靠性多高,系统都可能会承受因为单点故障而导致网络中断的风险。为了防止一台设备出现意外故障而导致网络业务中断,可以采用两台防火墙形成双机备份。
双机热备在路由器上部署:
为了避免路由器传统组网所引起的单点故障的发生,通常情况可以采用多条链路的保护机制,依靠动态路由协议进行链路切换。但这种路由协议来进行切换保护的方式存在一定的局限性,当不能使用动态路由协议时,仍然会导致链路中断的问题,因此推出了另一种保护机制VRRP(虚拟路由冗余协议)来进行。采用VRRP的链路保护机制比依赖动态路由协议的广播报文来进行链路切换的时间更短,同时弥补了不能使用动态路由情况下的链路保护。
VRRP(Virtual Router Redundancy Protocol)是一种基本的容错协议。
- 备份组:同一个广播域的一组路由器组织成一个虚拟路由器,备份组中的所有路由器一起,共同提供一个虚拟IP地址,作为内部网络的网关地址。
- 主(Master)路由器:在同一个备份组中的多个路由器中,只有一台处于活动状态,只有主路由器能转发以虚拟IP地址作为下一跳的报文。
- 备份(Backup)路由器:在同一个备份组中的多个路由器中,除主路由器外,其他路由器均为备份路由器,处于备份状态。
主路由器通过组播方式定期向备份路由器发送通告报文(HELLO),备份路由器则负责监听通告报文,以此来确定其状态。由于VRRP HELLO报文为组播报文,所以要求备份组中的各路由器通过二层设备相连,即启用VRRP时上下行设备必须具有二层交换功能,否则备份路由器无法收到主路由器发送的HELLO报文。如果组网条件不满足,则不能使用VRRP。
VRRP在多区域防火墙组网中的应用:
当防火墙上多个区域需要提供双机备份功能时,需要在一台防火墙上配置多个VRRP备份组。
由于USG防火墙是状态防火墙,它要求报文的来回路径通过同一台防火墙。为了满足这个限制条件,就要求在同一台防火墙上的所有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将丢弃该报文,导致会话中断。
问题产生的原因:报文的转发机制不同。
- 路由器:每个报文都会查路由表当匹配上后才进行转发,当链路切换后,后续报文不会受到影响,继续进行转发。
- 状态检测防火墙:如果首包允许通过会建立一条五元组的会话连接,只有命中该会话表项的后续报文(包括返回报文)才能够通过防火墙;如果链路切换后,后续报文找不到正确的表项,会导致业务中断。
注意:当路由器配置NAT后也会存在同样的问题,因为在进行NAT后会形成一个NAT转换后的表项。
VRRP用于防火墙多区域备份:
VRRP在防火墙中应用的要求:
- VRRP状态的一致性。
- 会话表状态备份
VGMP提出VRRP管理组的概念,将同一台防火墙上的多个VRRP备份组都加入到一个VRRP管理组,由管理组统一管理所有VRRP备份组。通过统一控制各VRRP备份组状态的切换,来保证管理组内的所有VRRP备份组状态都是一致的。
VGMP基础
VFMP基本原理:
- 当防火墙上的VGMP为Master状态时,组内所有VRRP备份组的状态统一为Master状态,所有报文都将从该防火墙上通过,该防火墙成为主用防火墙。此时另外一台防火墙上对应的VGMP为备状态,该防火墙成为备用防火墙。
- 通过指定VGMP组的优先级来决定谁将成为主防火墙或备用防火墙。 VGMP的优先级会根据组内的VRRP备份组成员的状态动态调整,以此完成两台防火墙的主备倒换。
- 与VRRP类似,状态为Master的VGMP也会定期向对端发送HELLO报文,通知Slave端本身的运行状态(包括优先级、VRRP成员状态等)。与VRRP不同的是,Slave端收到HELLO报文后,会回应一个ACK消息,该消息中也会携带本身的优先级、VRRP成员状态等。
- VGMP HELLO报文发送周期缺省为1秒。当Slave端三个HELLO报文周期没有收到对端发送的HELLO报文时,会认为对端出现故障,从而将自己切换到Master状态。
VGMP组管理:
状态一致性管理
- 各备份组的主/备状态变化都需要通知其所属的VGMP管理组,由VGMP管理组决定是否允许VRRP备份组进行主/备状态切换。如果需要切换,则VGMP管理组控制所有的VRRP备份组统一切换。**VRRP备份组加入到管理组后,状态不能自行单独切换。**
抢占管理
- VRRP备份组本身具有抢占功能。即当原来出现故障的主设备故障恢复时,其优先级也会恢复,此时可以重新将自己的状态抢占为主。
- VGMP管理组的抢占功能和VRRP备份组类似,当管理组中出现故障的备份组故障恢复时,管理组的优先级也将恢复。此时VGMP可以决定是否需要重新抢占称为主设备。
- 当VRRP备份组加入到VGMP管理组后,备份组上原来的抢占功能将失效,抢占行为发生与否必须由VGMP管理组统一决定。
HRP基本
HRP基本概念:
HRP(Huawei Redundancy Protocol)华为冗余协议,用来将主防火墙关键配置和连接状态等数据向备份防火墙上同步。
在双机热备组网中,当主防火墙出现故障时,所有流量都将切换到备防火墙。因为USG防火墙是状态防火墙,如果备防火墙上没有原来主防火墙上的会话表等连接状态数据,则切换到备防火墙的流量将无法通过防火墙,造成现有的连接中断,此时用户必须重新发起连接。
HRP模块提供了基础的数据备份机制和传输功能。各个应用模块收集本模块需要备份的数据,提交给HRP模块,HRP模块负责将数据发送到对端防火墙的对应模块,应用模块需要再将HRP模块提交上来的数据进行解析,并加入到防火墙的动态运行数据池中。
备份内容:要备份的连接状态数据包括TCP/UDP的会话表、ServerMap表项、动态黑名单、NO-PAT表项、ARP表项等。
备份方向:防火墙上有状态为主的VGMP管理组,向对端备份。
备份方式:分为三种
- 批量备份:在两台设备第一次协商完成后,批量备份所有信息
- 实时备份:在设备运行过程中,新建或者刷新的数据实时备份
- 配置批量备份需要消耗较多的资源,缺省情况下是关闭的。
备份通道:一般情况下,在两台设备上直连的端口作为备份通道,有时也称为“心跳线”(VGMP也通过该通道进行通信)。
HRP会话快速备份:
首包会话快速备份。
更新报文会话快速备份。
在来回路径不一致的组网中,业务流的来回报文有可能不会从同一个防火墙上经过。为了支持来回路径不一致的组网,防火墙增加了会话快速备份功能。即在首包创建会话时,立即将会话数据打包备份到对端,然后再将报文转发出去,保证了当回应的报文到达对端防火墙时,对端防火墙上已经接收到备份过来的会话数据并加入到会话表中。比如对于TCP三次握手的报文,SYN+ACK报文从另一台设备回来时,由于查不到会话,报文会被丢弃,导致连接建立失败。对于UDP会话,第一个反向报文过来时,在另一台上也会因为查不到会话,需要走包过滤流程,有可能会被丢弃。
通常情况下,对于TCP连接、状态改变的报文命中会话之后立即备份到对端,包括三次握手报文和fin、rst报文;对于UDP会话,快速备份是创建会话之后立即备份到对端,后续报文也进行备份以避免会话信息的老化。
参考资料:华为HedEx文档