双机热备篇你所不知道的HRP.docx
- 文档编号:9771810
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:12
- 大小:360.06KB
双机热备篇你所不知道的HRP.docx
《双机热备篇你所不知道的HRP.docx》由会员分享,可在线阅读,更多相关《双机热备篇你所不知道的HRP.docx(12页珍藏版)》请在冰豆网上搜索。
双机热备篇你所不知道的HRP
【防火墙技术连载41】强叔侃墙双机热备篇你所不知道的HRP强叔在前几篇中讲解了双机热备的核心VGMP。
在介绍VGMP报文结构时我们看到了几种HRP协议定义的报文,本期强叔就要为大家解析HRP协议和这几种HRP报文。
有的小伙伴儿们会说:
“HRP不就是负责双机的数据备份嘛。
有什么难度?
”其实HRP在备份时还是大有文章的,现在强叔就为大家揭秘这些HRP鲜为人知的细节。
1为什么需要HRP?
1.1备份配置命令防火墙通过执行命令(通过Web配置实际上也是在执行命令)来实现用户所需的各种功能。
如果备用设备切换为主用设备前,配置命令没有备份到备用设备,则备用设备无法实现主用设备的相关功能,从而导致业务中断。
如下图所示,主用设备FW1上配置了允许内网用户访问外网的安全策略。
如果主用设备FW1上配置的安全策略没有备份到备用设备FW2上,那么当主备状态切换后,新的主用设备FW2将不会允许内网用户访问外网(因为防火墙缺省情况下禁止所有报文通过)。
1.2备份会话
防火墙属于状态检测防火墙,对于每一个动态生成的连接,都有一个会话表项与之对应。
主用设备处
理业务过程中创建了很多动态会话表项;而备用设备没有报文经过,因此没有创建会话表项。
如果备用设
备切换为主用设备前,会话表项没有备份到备用设备,则会导致后续业务报文无法匹配会话表,从而导致业务中断。
如下图所示,主用设备FW1上创建了PC1访问PC2的会话(源地址为10.1.1.10,目的地址为200.1.1.10),PC1与PC2之间的后续报文会按照此会话转发。
如果主用设备FW1上的会话不能备份到
备用设备FW2上,那么当主备状态切换后,PC1访问PC2的后续报文在FW2上匹配不到会话。
这样就会导致PC1访问PC2的业务中断。
因此为了实现主用设备出现故障时备用设备能平滑地接替工作,必须在主用和备用设备之间备份关键配置命令和会话表等状态信息。
为此华为防火墙引入了HRP(HuaweiRedundancyProtocol)协议,实
现防火墙双机之间动态状态数据和关键配置命令的备份。
如下图所示,主用设备FW1上配置了允许内网用户访问外网的安全策略,所以FW1会允许内网PC1访问外网PC2的报文通过,并且会建立会话。
由于在FW1和FW2上都使用了HRP协议(配置了双机热备中的HRP功能),因此主用设备FW1上配置的安全策略和创建的会话都会备份到备用设备FW2上。
这样当主备状态切换后,由于备用设备上已经存在允许内网用户访问外网的安全策略以及PC1访问PC2的会话,所以PC1访问PC2业务报文不会被禁止或中断。
2HRP是如何实现备份的?
防火墙通过心跳口(HRP备份通道)发送和接收HRP数据报文来实现配置和状态信息的备份。
如下
图所示,HRP数据报文从外到内依次封装了VRRP报文头、VGMP报文头和HRP报文头。
其中VRRP报文头中Type=2,Type2=2。
VGMP报文头中的“vType”字段对应为“HRP数据报文”的取值。
HRP报文头中的关键参数解释如下:
SourceModuleID和SourceSubModuleID表示本端防火墙哪些特性模块和子模块的数据需要备份。
DestModuleID和和DestSubModuleID表示需要向对端防火墙的哪些特性模块和子模块备份数据。
HRP数据备份的过程如下图所示:
1、FWA在发送HRP数据报文时,会将ASPF特性模块的ID写入HRP报文头的“SourceModuleID”和“DestModuleID”字段中,并将ASPF模块的配置和表项信息封装到HRP数据报文中。
2、FWA将HRP数据报文通过备份通道(心跳线)发送给FWB。
3、FWB收到HRP数据报文后,会根据HRP报文头中的“SourceModuleID”和“DestModuleID”字段将报文中的配置和表项信息发送到本端的ASPF特性模块,并进行配置与表项的下发。
在前面双机热备的第二篇中我们讲到USG6000系列防火墙和USG2000/5000系列V3R1版本防火墙还支持将各种VGMP报文和HRP报文封装成UDP报文。
当然这里介绍的HRP数据报文,以及下面讲的心跳链路探测报文和一致性检查报文都支持这种UDP方式的封装。
这种方式的封装方法就是在VRRP报文头上再封装一个UDP头。
HRP数据报文的UDP封装结构如下图所示。
UDP封装的好处前面我们也讲过:
UDP封装后的报文是单播报文,只要路由可达就可以跨越网段传输,而且能够被安全策略控制。
3HRP能够备份哪些配置与状态信息?
防火墙能够备份的配置如下(以HUAWEIUSG6000系列V100R001版本为例):
策略:
安全策略、NAT策略、带宽管理、认证策略、攻击防范、黑名单、ASPF
对象:
地址、地区、服务、应用、用户、认证服务器、时间段、URL分类、关键字组、邮件地址组、签名、安全配置文件(反病毒、入侵防御、URL过滤、文件过滤、内容过滤、应用行为控制、邮件过滤)
网络:
新建逻辑接口、安全区域、DNS、IPSec、SSLVPN、TSM联动
系统:
管理员、日志配置
说明:
一般情况下,display、reset、debugging命令都不支持备份。
根据上面的描述我们可以看到,防火墙的网络基本配置如接口地址和路由等都不能够备份,这些配置需要在双机热备状态成功建立前配置完成。
而上面支持备份的配置可以在双机热备状态成功建立后,只在主用设备上配置。
防火墙能够备份的状态信息如下:
会话表
SeverMap表
IP监控表
分片缓存表
GTP表
黑名单
PAT方式端口映射表
NO-PAT方式地址映射表
4HRP的备份方向是怎样的?
什么是配置主和配置从设备?
在主备备份组网下,配置命令和状态信息都由主用设备备份到备用设备。
在负载分担组网下,配置命令只能由“配置主设备”备份到“配置备设备”。
状态信息则是两台设备相互备份的。
那么什么是配置主和配置备设备呢?
在负载分担组网下,两台防火墙都是主用设备(都有状态为Active的VGMP组)。
因此如果允许两台主用设备之间能够相互备份命令,那么可能就会造成两台设备命令相互覆盖或冲突的问题。
所以为了方便管理员对两台防火墙配置的统一管理,避免混乱,我们引入配置主和配置从设备的概念。
我们定义负载分担组网下,发送备份配置命令的防火墙称为配置主设备(命令行提示符前有HRP_A前缀),接收备份配置命令的防火墙称为配置从设备(命令行提示符前有HRP_S前缀)。
那么在负载分担组网下,如何确定配置主和配置备设备呢?
在负载分担组网下,最先建立双机热备状态的防火墙会成为配置主设备。
也就是最先启用双机热备功能的防火墙会成为配置主设备。
5HRP的几种备份方式有什么区别?
双机热备的HRP支持以自动备份、手工批量备份和快速备份三种方式。
这三种备份方式的描述和区别下面我们一一来介绍。
5.1自动备份
自动备份功能(命令为hrpauto-sync[config|connection-status])缺省为开启状态,能够自动
实时备份配置命令和周期性地备份状态信息,适用于各种双机热备组网。
启用自动备份功能后,主用(配置主)设备上每执行一条可以备份的命令时,此配置命令就会被立即同
步备份到备用(配置备)设备上。
如果在主用(配置主)设备上执行不可以备份的命令,则该命令仅在主用(配置主)设备上执行。
对于可以备份的配置命令,只能在主用(配置主)设备上配置,备用(配置备)设备上不能配置。
对于不可以备份的配置命令,备用(配置备)设备上可以配置。
关于哪些配置命令可以备份或不可以备份请参见“3HRP能够备份哪些配置与状态信息?
”。
启用自动备份功能后,主用设备会周期性的将可以备份的状态信息备份到备用设备上。
即主用设备的状态信息建立后不会立即备份,需要经过一个周期后才会备份到备用设备。
自动备份不会备份以下类型的会话(只快速会话备份支持):
到防火墙自身的会话,例如管理员登录防火墙时产生的会话未完成3次握手的TCP半连接会话
只为UDP首包创建,而不被后续包匹配的会话
5.2手工批量备份
手工批量备份需要管理员手工触发,每执行一次手工批量备份命令(hrp
sync[config|connection-status]),主用设备就会立即同步一次配置命令和状态信息到备用设备。
因此手工批量备份主要适用于主备设备之间配置不同步,需要手工同步的场景。
我们可以在防火墙上配置一致性检查功能,检查两台防火墙的配置是否同步。
一致性检查功能需要用到HRP一致性检查报文,这个我们最后会讲到。
执行手工批量备份命令后,主用(配置主)设备会立即同步一次可以备份的配置命令到备用(配置备)设备。
执行手工批量备份命令后,主用设备会立即同步一次可以备份的状态信息到备用设备,而不必等到自动备份周期的到来。
5.3快速备份
快速会话备份功能(命令为hrpmirrorsessionenable),适用于负载分担的工作方式,以应对报
文来回路径不一致的场景。
为了保证状态信息的及时同步,快速备份功能只是备份状态信息,不备份配置的命令。
配置命令的备份由自动备份功能实现。
启用快速备份功能后,主用设备会实时的将可以备份的状态信息(包括上面提到的自动备份不支持的会话)都同步到备用设备上。
即在主用设备状态信息建立的时候立即将其实时备份到备用设备。
综上所示,三种备份方式的使用方式通常是:
自动备份(hrpauto-sync[config|
connection-status])默认开启,不要关闭;如果主备设备之间配置不同步,需要执行手工批量备份的命令(hrpsync[config|connection-status]);如果是负载分担组网,一般需要开启快速会话备份功能
(hrpmirrorsessionenable)。
下面来讲解为什么快速会话备份特别适用于负载分担组网?
负载分担组网下,由于两台防火墙都是主用设备,都能转发报文,所以可能存在报文的来回路径不一致的情况,即来回两个方向的报文分别从不同的防火墙经过。
这时如果两台防火墙的状态信息没有及时相互备份,则回程报文会因为没有匹配到状态信息而被丢弃,从而导致业务中断。
为防止上述现象发生,需要在负载分担组网下配置快速会话备份功能,使两台防火墙能够实时的相互备份状态信息,使回程报文能够查找到相应的状态信息表项,从而保证内外部用户的业务不中断。
下面举个例子来说明。
如下图所示,FW1和FW2形成双机热备的负载分担组网。
内网PC访问外网Server的报文通过FW1转发,并建立会话。
由于来回路径不一致,Server返回给PC的回程报文转发到FW2。
这时如果只启用了自动备份功能,则FW1的会话还没有来得及备份到FW2上。
这就导致回程报文无法在FW2上匹配会话而被FW2丢弃,从而造成业务中断。
这时如果启用了会话快速备份功能,则FW1上产生的会话会立即备份到FW2上。
这样回程报文就能在FW2上匹配到会话,从而被正常转发到PC。
6什么是心跳链路探测报文?
与HRP心跳报文有什么区别?
两台防火墙之间备份的数据是通过防火墙的心跳口发送和接收的,是通过心跳链路(备份通道)传输的。
心跳口必须是状态独立且具有IP地址的接口,可以是一个物理接口GE,也可以是为了增加带宽,由多个GE接口捆绑而成的一个逻辑接口Eth-Trunk(通常情况下,备份数据流量约为业务流量的20%~25%,请根据备份数据量的大小选择捆绑GE接口的数量)。
如下图所示,我们经常会配置多个心跳口(多个GE或者多个Eth-Trunk接口),从而形成多条心跳链路,以保证备份数据的可靠传输。
两台防火墙通过心跳口相互发送心跳链路探测报文,来检测对端设备的心跳口能否正常接收本端设备的报文,以确定是否有心跳口可以使用。
心跳链路探测报文也是由VRRP
报文头封装的,当VRRP报文头中Type=2,Type2=2时,报文封装成心跳探测链路报文。
如上图所示,心跳接口有五种状态(执行命令displayhrpinterface可以查看):
invalid:
当本端防火墙上的心跳口配置错误时显示此状态(物理状态up,协议状态down),例如指定的心跳口为二层接口或未配置心跳接口的IP地址。
down:
当本端防火墙上的心跳口的物理与协议状态均为down时,则会显示此状态。
peerdown:
当本端防火墙上的心跳口的物理与协议状态均为up时,则心跳口会向对端对应的心跳口发送心跳链路探测报文。
如果收不到对端响应的报文,那么防火墙会设置心跳接口状态为peerdown。
但是心跳口还会不断发送心跳链路探测报文,以便当对端的对应心跳口up后,该心跳链路能处于连通状态。
ready:
当本端防火墙上的心跳口的物理与协议状态均为up时,则心跳口会向对端对应的心跳口发送心跳链路探测报文。
如果对端心跳口能够响应此报文(也发送心跳链路探测报文),那么防火墙会设置本端心跳接口状态为ready,随时准备发送和接受心跳报文。
这时心跳口依旧会不断发送心跳链路探测报文,以保证心跳链路的状态正常。
running:
当本端防火墙有多个处于ready状态的心跳口时,防火墙会选择最先配置的心跳口形成心跳链路,并设置此心跳口的状态为running。
状态为running的接口负责发送和HRP心跳报文、HRP数据报文、HRP一致性检查报文和VGMP报文。
这时其余处于ready状态的心跳口处于备份状态,当处于running状态的心跳口或心跳链路故障时,其余处于ready状态的心跳口依次(按配置先后顺序)接替当前心跳口处理业务。
如上图所示,由于两台防火墙心跳接口的配置顺序与接口编号顺序相同,所以先配置的处于ready状态的心跳口GE1/0/3成为running状态,而后配置的处于ready状态的心跳口GE1/0/4处于备份状态。
下面我们来看一种特殊情况:
两台防火墙的心跳口配置顺序不一致时的情况。
如下图所示,两台防火墙的GE1/0/2、GE1/0/3、GE1/0/4接口都是能够正常工作的心跳口(处于ready状态)。
由于FW1先配置GE1/0/3为心跳口,而FW2先配置GE1/0/2为心跳口,所以FW1的GE1/0/3心跳口状态为running,而FW2的GE1/0/2心跳口状态为running。
这样FW1的HRP数据报文会从GE1/0/3发送,而FW2的
HRP数据报文会从GE1/0/2发送。
虽然HRP数据报文的发送和接收接口不一致,但这并不会影响双机热
备的正常工作。
最后来总结下心跳链路探测报文和HRP心跳报文的区别。
心跳链路探测报文用于检测对端设备的心跳口能否正常接收本端设备的报文,以确定心跳口是否可用的。
只要本端心跳接口的物理和协议状态up就会向对端心跳口发送心跳链路探测报文进行探测。
HRP心跳报文是用于探测和感知对端设备(VGMP组)是否正常工作的。
HRP心跳报文只有主用设备的VGMP组通过状态为running的心跳口发出。
7HRP一致性检查报文能够检查哪些内容?
是如何实现的?
HRP一致性检查报文用于检测双机热备状态下的两台防火墙的双机热备配置是否一致以及策略配置是否相同。
双机热备配置的一致性检查包括两台防火墙是否监控了相同的业务接口,是否配置了相同的心跳接口等。
策略配置一致性检查主要检查两台防火墙是否配置了相同的策略,包括安全策略、带宽策略、
NAT策略、认证策略和审计策略。
HRP一致性检查报文也是由VRRP报文头封装的,当VRRP报文头中Type=2,Type2=5时,报文封装成HRP一致性检查报文。
HRP一致性检查的实现原理如下:
1.执行一致性检查命令(hrpconfigurationcheck{all|audit-policy|auth-policy|hrp|nat-policy|security-policy|traffic-policy})后,执行此命令的设备会发送一致性检查请求报文给对端,并且
同时收集自身的相关模块的配置信息摘要。
2.对端设备收到请求后,会收集自身相关模块的配置信息摘要,然后封装到一致性检查报文中返回给本端设备。
3.本端设备会对比自身的配置摘要和对端设备的配置摘要,并记录比较信息。
客户可以执行命令displayhrpconfigurationcheck查看一致性检查结果。
例如下面的结果表示双机热备配置一致。
HRP_A[FWA]displayhrpconfigurationcheckhrp
ModuleStateStart-timeEnd-timeResult
hrpfinish2008/09/0814:
21:
562008/09/0814:
21:
56sameconfiguration
至此,双机热备篇圆满结束,感谢各位小伙伴的观看~下周强叔将为大家带来本季的收官之作——防火墙出口选路篇,大家敬请期待!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 双机 热备篇 知道 HRP