#yyds干货盘点# HCIE-Security Day11(初步学习防火墙双机热备和VGMP概念)

追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述#yyds干货盘点# HCIE-Security Day11:初步学习防火墙双机热备和VGMP概念相关的知识,希望能为你提供帮助。


 
基本概念防火墙的高可靠性可以通过双机热备等方式实现,相比于路由器和交换机,有了一些不一样的东西,主要总结就是:
通过VGMP协议和HRP协议实现防火墙之间主备切换,会话表项和配置命令的同步。
VGMP协议是对vrrp协议的补充和针对防火墙部署特性的适应性改进,实现主备防火墙上下行接口同步切换状态。
HRP协议实现了防火墙双机之间动态状态数据和关键配置命令的备份。
产生目的传统备份方案在接入点部署多台路由器形成主备备份,并通过vrrp或者动态路由等方式进行链路切换。但是如果接入点部署的是状态检测防火墙时,由于它是基于连接状态的,维护会话表,高效转发非首包。如果还是仅仅使用vrrp的话,虽然流量可以在主备之间切换,但是新的master的会话表项需要重新引导建立,原有连接中断,造成业务中断。



状态检测防火墙是基于连接状态的,会对一条流量的首包(第一个报文)进行完整的检测,并建立会话来记录报文的状态信息(包括哦报文的源目地址、源目端口和协议号等),而这条流量的后续报文只需匹配会话就可以通过防火墙并完成转发,如果不匹配则会被丢弃。


针对这一情况,开发了防火墙的双机热备功能。其最大特点就是通过在主备防火墙之间部署专用心跳线,用来同步防火墙主备状态、会话表项以及配置信息,使得流量无缝切换。
?
工作模式主备备份
正常情况下,两台防火墙根据配置形成一主一备,master会处理业务,并将设备上的会话、server-map表等重要信息以及配置信息通过心跳线实时同步到backup。backup不会处理业务,只是接收master传递的这些表项和配置命令。
master故障后,backup升主,处理业务,业务流量被上下行设备的路由信息引导到新的master上,由于新的master之前已经同步了各种会话表项和配置信息,所以业务的切换是无感的。
负载分担
如果希望backup闲置,或者业务流量较多,对master产生较大压力,可以考虑采用负载分担模式,该模式下,两台fw都是master,都建立会话,都处理业务流量,同时又作为对方的backup设备,接受对方备份的会话和配置信息。
正常情况下,两台fw各自负责不同类型的流量转发,当某一fw故障后,流量全部切换到另外一台fw。
相比主备备份方式,组网方案和配置比较复杂。也有更多需要注意的地方,比如nat地址池的分配啦、流量的来回路径不一致啦,峰值流量啦,总之让人头大,后面通过实验再讲吧。
注意事项目前只支持两台完全一致防火墙之间部署。完全一致的意思看起来简单,但是实际上不好给定。硬件的一致指的是型号必须要一样,安装的单板类型、数量以及单板安装的位置必须相同,在更高版本的防火墙中,比如USG6680E等,还要求同型号设备的BomID version匹配,可以通过display version检查。但是硬盘的有无不包括在内。
软件的一致包括系统软件版本、系统补丁版本、动态加载的组件包、特征库版本、HASH选择CPU模式以及HASH因子等。但实际上,两台fw可以暂时运行不同版本的系统软件。
VGMP组vrrp组管理协议,VRRP Group Management Protocol,华为私有协议。
防火墙的双机热备功能是在VRRP的基础上拓展而来的,vrrp上一篇已经系统学习过了,总的来说就是保证了当主机的默认网关出现故障时,由备份路由器自动代替出现故障的路由器完成报文转发任务,从而保持网络通信的连续性和可靠性。
vrrp的主备指的是作为主机的默认网关的主备,解决的是网关的可靠性问题。而作为防火墙,则需要对上下行接口均进行主备。
所以就需要给上行接口也配置vrrp,这样,两台防火墙的下行接口加入vrrp备份组1,上行接口加入vrrp备份组2,正常情况下,一台防火墙的上下行接口要么都是主,要么都是备。比如fw1是vrrp备份组1中的master设备,也是vrrp备份组2中的master设备,内外网之间的业务报文都会通过fw1来转发。
如果fw1的下行接口故障,则vrrp备份组1发生主备切换,fw2成为vrrp备份组1的master设备,并且通过发送免费arp的方式引导上行流量通过自己转发,但是fw1的上行接口依然是正常的,它仍是vrrp备份组2的master设备,所以回程流量一定会流向fw1,企图通过fw1做转发。但是fw1的下行接口是故障的,所以它没有办法完成这项使命,只好抱歉的把这些流量全部丢掉。此时,我们的业务流量就中断了。
这并不是我们希望看到的样子,所以我们希望vrrp协议聪明一点,多个vrrp备份组之间步调一致,不要各自为战,免得防火墙对上是主,对下是备,欺上瞒下。
为了让vrrp不要各自为战,解决多个vrrp备份组状态不一致的问题,华为防火墙引入VGMP(vrrp组管理协议),实现对vrrp备份组的统一管理,保证多个vrrp备份组状态的一致性。把防火墙上所有的vrrp备份组都加入到同一个vgmp组中,由vgmp组来集中监控并管理所有的vrrp备份组状态。如果vgmp组检测到其中一个vrrp备份组的状态变化,则vgmp组会控制组中的所有vrrp备份组统一进行状态切换,保证各vrrp备份组状态的一致性。
vgmp组的优先级决定了vgmp组的状态,高优先级的是active,低优先级的是standby。
vgmp组的状态决定了组内vrrp备份组的状态,也决定了防火墙的主备状态。
vgmp组的初始优先级是根据cpu个数自动生成的,后续会根据vrrp状态变化进行调整,vrrp状态变init,vgmp组的优先级下调2.
?
有了vgmp,在fw1上将vrrp备份组1和备份组2都加入active的vgmp组,在fw2上将vrrp备份组1和备份组2都加入standby的vgmp组。由于vgmp组的状态决定了组内vrrp备份组的状态,也决定了防火墙的主备状态,所以fw1是主设备,fw2是从设备,fw1的上下行接口都是master,fw2的上下行接口都是backup,这时如果fw1的下行接口故障,则fw1的vgmp组优先级下调,成为standby状态,而fw2上的vgmp组成了active状态,即fw1是备设备,fw2是主设备。vgmp组内vrrp备份组状态也被调整,fw1的上行接口成为backup,fw2的上行接口成为master,此时上行流量通过fw2转发,下行流量也通过fw2转发,流量不会丢失。
两台防火墙的VGMP组之间通过交互VGMP报文来传递状态和优先级信息。
VGMP报文结构
vgmp报文由改造后的vrrp报头封装。
标准vrrp报头
version
type
virtual rtr id
priority
count ip addrs
【#yyds干货盘点# HCIE-Security Day11(初步学习防火墙双机热备和VGMP概念)】auth type
adver int
checksum
ip address1
ip addressn
auth data1
auth data2


Version:2
Type:1,表示advertisement
Vrid:虚拟路由器id ,从1到255
Priority:缺省100,越大越优,0表示停止参与备份组,主动放弃master地位,不必等到计时器超时,255保留给ip地址拥有者
Count ip addrs:备份组中虚拟ipv4地址个数
Auth type:0不认证,1明文认证,2md5认证
Adver int:通告报文发送间隔,默认1s
Checksum:16位校验和,检测vrrp报文完整性
Ipaddr1:第一个vrrp备份组中虚拟ipv4地址
Ipaddrn:第n个vrrp备份组中虚拟ipv4地址
Auth data:明文认证和md5认证使用
 


然后把vgmp报文也放这里
version
type
virtual rtr id
type2
count ip addrs
auth type
adver int
checksum
auth data1
auth data2
version
vtype
mode
vgmpid
vpriority
checkcode
datalen
data
比较
字段
标准vrrp头
改造vrrp头
type
恒为1,表示vrrp通告
为1表示标准vrrp通告报文,为2表示改造vrrp通告报文
virtual rtr id
表示vrrp备份组id
恒为0
priority/type2
priority,表示优先级
type2
为1时,表示携带心跳链路探测报文
为5时,表示携带一致性检查报文
为2时,携带vgmp报文
ip address
vrrp备份组中虚拟ipv4地址
取消
vtype


表示vgmp hello报文
或hrp hello报文
或hrp数据报文
mode


请求报文/应答报文
vgmpid


表示vgmp组是active组还是standy组
vpriority


表示vgmp组的优先级
data


包含vgmp组的状态信息
vgmp报文类型心跳链路探测报文
检测对端设备的心跳口能否正常接收本段设备的报文,以确定是否有心跳口可以使用
一致性检查报文
检测双机热备状态下的两台防火墙的双机热备和策略配置是否一致,如安全策略、NAT等。
vgmp hello报文
两台防火墙之间的vgmp组协商主备。
hrp hello报文
探测对端的vgmp组是否处于工作状态,状态为active的vgmp组会每隔一段时间(缺省1s)向对端的vgmp组发送hrp心跳报文,用来通知本端的vgmp组状态和优先级。如果状态为standby的vgmp在三个周期内没有收到对端发送的hrp心跳报文,就认为对端vgmp组故障,将自身状态切换到active。
hrp数据报文
在vgmp报文头后增加hrp报文头,才能封装成hrp数据报文,hrp数据报文用来在主备设备之间的数据备份,包括命令行配置的备份和各种状态信息的备份。
特别注意:上述报文均不受FW的安全策略控制。因此,不需要针对这些报文配置安全策略!
VGMP报文交互通道双机热备组网中,心跳线是两台fw交互消息了解对端状态以及备份配置命令和各种表项的通道。心跳线两端的接口叫做心跳接口。vgmp报文就是通过心跳线来交互的。
心跳接口最好使用防火墙的ha接口,如果没有ha接口,可以多个以太网接口绑成eth-trunk接口。
心跳接口一般光纤或网线直连,也可以通过交换机或者路由器连接。
心跳接口必须加入相同的安全区域。
心跳接口的mtu不要小于1500.
心跳线不要跑业务数据。
今天没有实验,明天会贴实验出来 :)



    推荐阅读