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