#yyds干货盘点# HCIE-Security Day11:初步学习防火墙双机热备和VGMP概念
Posted 小梁L同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#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 |
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 |
ip address | vrrp备份组中虚拟ipv4地址 | 取消 |
vtype | 表示vgmp hello报文 | |
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.
心跳线不要跑业务数据。
今天没有实验,明天会贴实验出来 :)
以上是关于#yyds干货盘点# HCIE-Security Day11:初步学习防火墙双机热备和VGMP概念的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# HCIE-Security Day6:5个实验搞定源NAT
#yyds干货盘点# HCIE-Security Day11:初步学习防火墙双机热备和VGMP概念
#yyds干货盘点#HCIE-Security Day15:防火墙双机热备实验防火墙透明接入,上下行连接交换机
#yyds干货盘点#HCIE-Security Day14:防火墙双机热备实验防火墙直路部署,上下行连接路由器