目录

​​

基本概念

产生目的

工作模式

主备备份

负载分担

注意事项

VGMP组

VGMP状态

VGMP报文结构

标准vrrp报头

vgmp报文类型

心跳链路探测报文

一致性检查报文

vgmp hello报文

hrp hello报文

hrp数据报文

VGMP报文交互通道

HRP

心跳口

心跳口状态

双机热备备份方式

手工批量备份

自动备份

会话快速备份

设备重启后主备fw的配置自动同步


基本概念

防火墙的高可靠性可以通过双机热备等方式实现,相比于路由器和交换机,有了一些不一样的东西,主要总结就是:

通过VGMP协议和HRP协议,心跳线实现防火墙之间主备切换,会话表项(状态信息)关键配置的同步。

VGMP协议是对vrrp协议的补充和针对防火墙部署特性的适应性改进,实现主备防火墙上下行接口同步切换状态。

HRP协议实现了防火墙双机之间动态状态数据和关键配置命令的备份。

产生目的

传统备份方案在接入点部署多台路由器形成主备备份,并通过vrrp或者动态路由等方式进行链路切换。但是如果接入点部署的是状态检测防火墙时,会有两个问题:第一由于防火墙是基于会话表禁止转发的,高效转发非首包。如果还是仅仅使用vrrp的话,虽然流量可以在主备之间切换,但是新的master的会话表项需要重新引导建立,原有连接中断,造成业务中断。第二vrrp是在链路上生效,防火墙上下行接口没有同时故障的情况下,无法保证上下行链路的vrrp组同时切换,导致流量来回路径不一致甚至丢包。

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

针对这一情况,开发了防火墙的双机热备功能。其最大特点就是通过在主备防火墙之间部署专用心跳线,通过HRP协议,用来同步防火墙主备状态、会话表项以及配置信息,使得流量无缝切换。

工作模式

主备备份

正常情况下,两台防火墙根据配置形成一主一备,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可以暂时运行不同版本的系统软件。

协议架构

vrrp(可选)

基本的容错协议,将同一个广播域中的一组路由器组织成一个虚拟路由器,称之为一个备份组,(vrrp group)。负责单个接口的故障检测和流量引导。每一个vrrp备份组拥有一个虚拟IP地址,作为网络的网关地址,在vrrp主备倒换时通过发送免费arp来刷新对接设备的mac转发表来引导流量。在双机热备中并不是一定存在,如果fw的上下行接的是路由器,就不能配置vrrp了。vrrp要求在同一个广播域中,组播224.0.0.18可达。

vgmp

vrrp组管理协议,华为私有,将系统中所有的vrrp备份组集中管理,控制状态统一切换,保证出现故障时上下行流量能同步切换到备用防护墙。

hrp

华为冗余协议,华为私有,负责双机之间的数据同步。

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管理组,由VGMP管理组决定是否允许vrrp备份组进行主备状态切换。如果需要切换,则vgmp管理组控制所有的vrrp备份组统一切换,vrrp备份组加入到管理组后,状态不能自行单独切换。

抢占管理

vrrp备份组本身具有抢占功能,即当原来出现故障的主设备故障恢复时,其优先级也会恢复,此时可以重新将自己的状态抢占为主。

vgmp管理组的抢占功能和vrrp备份组类似,当管理组中出现故障的备份组故障恢复时,管理组的优先级也将恢复,此时vgmp可以决定是否需要重新抢占成为主设备。

当vrrp备份组加入到vgmp管理组后,备份组上原来的抢占功能将失效,抢占行为发生与否必须由vgmp管理组统一决定。

VGMP状态

VGMP组有四种状态:initializeload-balanceactivestandby。其中,initialize是初始化状态,设备未启用双机热备功能时,VGMP组处于这个状态。其他三个状态则是设备通过比较自身和对端设备VGMP组优先级大小确定的。设备通过心跳线接收对端设备的VGMP报文,了解对端设备的VGMP组优先级。
  • 设备自身的VGMP组优先级等于对端设备的VGMP组优先级时,设备的VGMP组状态为load-balance
  • 设备自身的VGMP组优先级大于对端设备的VGMP组优先级时,设备的VGMP组状态为active
  • 设备自身的VGMP组优先级小于对端设备的VGMP组优先级时,设备的VGMP组状态为standby
  • 设备没有接收到对端设备的VGMP报文,无法了解到对端VGMP组优先级时,设备的VGMP组状态为active。例如,心跳线故障。(双主)
问题:一开始两台防火墙的优先级是相同的,那么怎么判断主备呢?
华为需要人为指定。
interface g0/0/0
vrrp vrid 1 virtual-ip 10.1.1.10 standby

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
为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.

心跳线不要跑业务数据。

HRP

实现防火墙双机之间动态状态数据和关键配置命令的备份。

在双机热备组网中,当主防火墙出现故障时,所有流量都将切换到备防火墙。

通常情况下,备份数据流量约为业务流量的20%-30%,因此需要合理配置链路聚合控制心跳通道带宽。

备份内容:tcp/udp会话表、server-map表项、动态黑名单、no-pat表项、arp表项等以及关键配置

HRP数据备份范围
特性大类 特性

策略

安全策略、nat策略、带宽管理、认证策略、攻击防范、黑名单、aspf
对象

地址、服务、应用、用户、认证服务器、时间段、url分类、关键字组、邮件地址组、签名、安全配置文件(反病毒、入侵防御、url过滤、文件过滤、内容过滤、应用行为控制、邮件过滤)

网络 新建逻辑接口、安全策略、dns、ipsec、ssl 、tsm联动
系统 管理员、日志配置
不能配置的配置命令
大类 命令
维护命令 display、reset、debugging等命令都不支持备份
系统

data-flow loghost  ip-address x.x.x.x

data-flow loghost source ip-address x.x.x.x

注意动态路由协议比如ospf是不能同步的。

备份方向:主备冗余情况下,主向备备份,即只能在主用设备上配置,不能在备用设备上配置;负载分担情况下,同时备份。

备份方式:批量备份、实时备份、快速备份

备份通道:心跳线。在两台设备上直连的端口作为备用通道,vgmp也通过该通道进行通信。

心跳口

心跳口必须是状态独立且具有ip地址的接口,可以是一个千兆物理接口也可以是一个eth-trunk接口。

心跳口状态

invalid:本端FW上的心跳口配置错误时显示此状态(物理状态up,协议状态down),例如指定的心跳口为二层接口或者未配置心跳接口的ip地址。

down:本端fw上的心跳口物理链路down。

peerdown:本端fw上的心跳口的物理与协议状态均为up,则心跳口会想对端对应的心跳口发送心跳链路探测报文。如果收不到对端响应的报文,那么fw会设置心跳接口状态为peerdown,但是心跳口还会不断发送心跳链路探测报文,以便当对端的对应心跳口up后,该心跳链路能处于连通状态。

ready:当本端fw上的心跳口的物理与协议状态均为up时,则心跳口会向对端对应的心跳口发送心跳链路探测报文。如果对端心跳口能够响应此报文,即也发送了心跳链路探测报文,那么fw会设置本端心跳接口状态为ready,随时准备发送和接受心跳报文。这时心跳口依旧会不断发送心跳链路探测报文,以保证心跳链路的状态正常。可以理解为是running接口的备份,当处于running状态的心跳口或者心跳链路故障时,其余处于ready状态的心跳口依次(按照配置先后顺序)接替当前心跳口处理业务。

running:当本端fw有多个处于ready状态的心跳口时,fw会选择最先配置的心跳口形成心跳链路,并设置此心跳口的状态为running,如果只有一个处于ready状态的心跳口,那么它自然会成为状态为running的心跳口,状态为running的接口负责发送hrp心跳报文、hrp数据报文、hrp链路探测报文、vgmp报文和一致性检查报文。

基于VRRP的双机热备

FW的业务接口工作在三层并连接交换机时,可以在FW上配置VRRP实现双机热备。

双机热备备份方式

手工批量备份

管理员手工触发,每执行一次手工批量备份命令,主用设备就会立即同步一次配置命令和状态信息到备用设备,因此手工批量备份主要适用于主备设备之间配置不同步,需要手工同步的场景。(设置双机热备前配置的命令不会自动备份)

自动备份

缺省开启,能够自动实时备份配置命令周期性地备份状态信息,适用于各种双机热备组网。启用后,在fw上每执行一条可以备份的命令时,此命令就会被立即同步备份到另一台fw上。主用设备会周期性地将可以备份的状态信息备份到备用设备上,即主用设备的状态信息建立后不会立即备份,而是在建立一段时间之后才会备份到备用设备。
不会备份以下类型的会话
到防火墙自身的会话,如管理员登录防火墙时产生的会话
未完成三次握手的tcp半连接会话(快速备份支持备份此类型的会话)
只为udp首包创建,而不被后续包匹配的会话(快速备份支持备份此类型的会话))

会话快速备份

默认关闭,当采用负载分担方式时建议启用,非常快。以应对报文来回路径不一致的场景。负载分担组网下,由于两台防火墙都是主用设备,都能转发报文,所以可能存在报文的来回路径不一致的情况,这时如果两台防火墙的会话没有及时相互备份,则回程报文会因为没有匹配到会话表项而被丢弃,从而导致业务中断,所以为了防止上述 现象的发生,需要在负载分担组网下配置会话快速备份功能,使两台防火墙能够实时的相互备份会话,使回程报文能够查找到相应的会话表项,从而保证内外部用户的业务不中断。
启用会话快速备份功能后,主用设备会实时将可以备份的会话,包括自动备份不支持的会话 ,都同步到备用设备上,即在主用设备会话建立的时候立即将其实时备份到备用设备上。

设备重启后主备fw的配置自动同步

如果一台fw重启,重启期间业务都是由另一台fw承载,在此期间,承载业务的fw上可能会新增,删除或者修改配置。为了保证主备fw配置一致,在fw重启完成后,会自动从当前承载业务的fw上进行依次配置同步。
配置同步仅会同步支持备份的配置,如安全策略、nat策略等。不支持备份的配置,如ospf、bgp等,还继续沿用原有的配置。
配置同步需要一定的时间,同步的时间与配置量有关,配置量越大同步配置所需时间也越长,最长可能需要一个小时左右,在配置同步期间,fw上无法执行支持备份的配置命令。

今天没有实验,明天会贴实验出来 :)

HCIE-Security Day11:双机热备,从VRRP到VGMP相关推荐

  1. 双机热备篇 VRRP与VGMP的故事(2)

    上篇我们在学习了VRRP的实现原理,以及如何通过VGMP解决VRRP问题后,提出了两个问题.第一个问题是"两台防火墙的VGMP组是如何传递VGMP的优先级信息的?".答案是防火墙的 ...

  2. ESXI中设置高格作为旁路由并设置双机热备(VRRP)

    因为高格没有ipv6,作为主路由在一些特殊场景下不太好,所以将其设置成旁路由充当网关发挥流控作用是不错的.但经过实验发现,高格的流控只有对其LAN网段的客户端才起作用.所以使用双机热备实现即使关闭高格 ...

  3. 华为防火墙双机热备技术:HRP、VGMP、VRRP,三大技术值得一学!

    防火墙双机热备,主要是提供冗余备份的功能,在网络发生故障的时候避免业务出现中断.防火墙双机热备组网根据防火墙的模式, 分路由模式下的双机热备组网和透明模式下的双机热备组网,下面分别根据防火墙的不同模式 ...

  4. 华为防火墙VRRP双机热备的配置

    双机热备 概念 一.华为双机热备的两种模式 二.相关术语 三.配置 概念 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备,双机高可用按工作中的切 ...

  5. 安全防御(二)--- 防火墙域间双向NAT、域内双向NAT、基于VRRP的双机热备

    目录 一.防火墙支持那些NAT技术,主要应用场景是什么? 二.当内网PC通过公网域名解析访问内网服务器时,会存在什么问题,如何解决?请详细说明 三.防火墙使用VRRP实现双机热备时会遇到什么问题,如何 ...

  6. H3C-IRF堆叠-VRRP双机热备-IPSecvpan

    第一部分: VRRP双机热备 1:链路聚合 [H3C]sys Sw1 [Sw1]int GigabitEthernet 1/0/6 [Sw1-GigabitEthernet1/0/6]port lin ...

  7. 双机热备实验——(VRRP技术+HSRP技术)讲解+配置

    目录 一.双机热备(冗余技术)简介: 二.HSRP 技术简介: 三.VRRP技术简介: 四.HSRP配置: 五.VRRP配置: 一.双机热备(冗余技术)简介: 两核心交换机,业务流量优先从主核心交换机 ...

  8. ensp华为防火墙的VRRP、HRP、双机热备配置

    作业十三:防火墙的双机热备 实验环境 实验思路 规划并配置IP 安全区域划分 配置静态路由 配置VRRP 配置心跳接口 配置安全策略 检验连通性 主备切换 备用设备抢占 实验步骤 规划并配置IP R1 ...

  9. 利用MSTP+VRRP+HRP+IP-LINK实现双机热备

    华为防火墙.核心双机热备实例 1.1 项目实训目的 实现两个运营商专线接入,分别接入到FW1.FW2实现主备 实现防火墙实现双机热备. 实现核心交换机双机热备. 掌握MSTP(二层).VRRP.HRP ...

  10. Keepalived - Keepalived 实现 tomcat双机热备

    文章目录 Pre 环境信息 官网 原理 keepalived 安装 137 安装 keepalived 138 安装 keepalived 配置keepalived的配置文件/etc/keepaliv ...

最新文章

  1. Git 历险记(三)——创建一个自己的本地仓库
  2. Reactive Extensions入门(5):ReactiveUI MVVM框架
  3. 通过源码详解 Servlet
  4. Apache CXF实现WebService发布和调用
  5. Navigation Drawer详解-Google推出的用来取代Sliding Menu的控件(一
  6. 常用网站URL规划分析
  7. 45. PHP 过滤器(Filter)
  8. unity3d Crease效果分析
  9. 【预测模型】Logistic 人口阻滞增长模型
  10. 点击a标签实现下载文件
  11. 现代信号处理——盲信号分离(盲信号分离的基本理论)
  12. 百度地图聚合找房开发
  13. 网站中网页最优色彩搭配方案学习--Java免费学习网
  14. Python 与金融科技6|上证50的收盘价汇总
  15. 你一定要知道长痘痘的注意点!!!
  16. 华为面试题(小朋友高矮排序,要求移动距离最小)-java版
  17. 关于VMware Desktone中的Slony和数据库
  18. tcpdump进行DNS抓包
  19. 新年将至, 程序员如何以代码送出新春祝福
  20. 程序员跳槽B站遭老东家索赔200万,法院判定无需赔偿,竞业限制不应阻碍工程师再就业...

热门文章

  1. 学术分享 | 没有导师的指导,研究生如何阅读文献、提出创见、写论文?
  2. 【开学福利】13本python+AI书籍,快拿去
  3. 如何不出国门走进NLP学术前沿
  4. NLP—5.word2vec论文精读
  5. 《Effective Java 3rd》读书笔记——创建和销毁对象
  6. Matplotlib Toolkits:python高级绘图库seaborn
  7. Scikit-learn:主要模块和基本使用方法
  8. 编程之美读书笔记2.15 - 子数组之和的最大值(二维)
  9. 建立一个中文名字的文件夹Python
  10. vba窗体 点击增加减少_EXCEL之VBA-窗体实例多页控件的基础应用