
在严格遵循国家的《网络安全法》之上,很多企业(金融、政府、电信)的等保测评标准中网络可靠性往往会是重点,为此企业的运维人员需要为本企业提供高冗余网络质量,使它们互为备份!避免发生利益丢失。
华为的防火墙提供了这类功能----双机热备。这过程涉及到了很多技术点,我今天开始逐一分享!这次分享的思路是:先避开介绍繁琐的概念,以实际操作对每个技术点进行详解!
华为防火墙双机热备先决条件
这是工程师在提供双机热备的方案前提条件,别等到设备买回来,发现条件不满足,导致自己失责!
①华为最大支持两台防火墙。
②两台防火墙的产品型号和硬件配置必须一致(接口板、业务办,主控板的位置,类型和数目。)
查看两台防火墙产品型号、软件版本是否一致:
HRP_S<F1>display version

查看两台防火墙的接口卡类型和安装位置:

使用相同的心跳线接口

还有很多检查项,在项目实施前可以查看华为官方文档...这里不一一列举。


目前中小企业组网的面临的网络冗余问题
在大多中小企业中,为提高网络安全内外网之间的网络传输都会通过防火墙进行转发,如果防火墙出现了问题,我列举有无冗余方案的例子进行对比。
随着移动办公,购物、即时通讯、互联网金融、互联网教育的蓬勃发展,我们的网络承载的业务越来越多,越来越重要,如何去解决网络高效的传输,成为重要话题。如图所示:双机部署会提升网络的可靠性!


防火墙业务接口工作在三层,连接交换机的双机热备演示
实验拓扑:
这个拓扑大部分是中小企业,省去多余链路费用,存在两台防火墙的应用场景。

防火墙基础配置
两个防火墙的接口配置IP地址、按照拓扑相应的接口加入区域(心跳线接口我这里归属到DMZ区域)、相应接口权限暂时放开。属于基础配置,之前分享过,这里不做详细分享。

主设备网络接口

从设备网络接口配置


安全策略暂时配置成全部允许(两台)后续文章会讲解安全策略对HRP VGMP报文的过滤。


双机热备配置
在传统的网络转发设备中(路由器、三层交换机),只需要在两台设备上做好路由备份就可以保证业务的可靠性,而换成状态检测的防火墙,就有本质上的区别。区别在于:状态检测是基于连接状态,它会对一条流量的首包进行完整的检测,并建立会话来记录报文的状态信息,后续的流量只有陪陪会话才能通过防火墙完成转发,不匹配就会丢弃!
如何解决两台防火墙会话备份,在防火墙主备状态切换时,保证已建立的业务不中断,如图所示:防火墙的双机热备功能就可以解决这样的问题。(防火墙双机热备功能最大的特点在于提供一条专门备份通道称之为心跳线,用于两台防火墙之间协商主备状态,备份会话、server-map表等重要的状态信息和配置信息)

当启用双机热备功能,默认情况下,两台防火墙会根据管理员的配置运行角色分为:
主用:根据拓扑,我F1的防火墙选择主用,它会处理业务,并将设备上的会话、server-map表等重要状态信息及配置通过心跳线实施同步给第二台防火墙。
备用:不会处理业务,只是通过心跳线接收来自主用设备的状态信息和配置信息。

双机热备的运行模式:这里我选用主备备份。
①主备备份:由主用设备处理业务,备用设备空闲;当主用设备接口、链路或整机故障,备用设备切换为主用设备,接替主用设备处理业务。
②负载分担:(初学者请勿理解成负载均衡)又称互为备份,两台设备同时处理业务,,其中一台发生故障,另外一台立即承担其业务,保证原来需要通过这台设备转发的业务不中断。

心跳接口:
两台防火墙之间备份的数据是通过防火墙的心跳口发送和接收(通过心跳链路的备份通道传输),这里我们填写的心跳口的状态必须是独立且具有IP地址的接口,可以是一个物理接口,可以使为了增加带宽形成Eth-Trunk口,在实施时注意备份数据的流量占业务流量的20%-25%,关于心跳口的5种状态,我们下文会单独讨论。
Hello报文周期:
这里是1000毫秒发送一次心跳链路探测报文。心跳链路探测报文作用是检测对端设备的心跳口能否正常接收本段设备的报文,以确定心跳链路可用。
关于心跳链路探测报文格式,它是由新VRRP报文头封装,我们下文讨论VRRP会介绍。

配置虚拟IP地址
这个虚拟IP地址,就代表了下面文章介绍的VRRP协议中的虚拟网关。


VRRP与VGMP的故事
进入这一环节,我的思路是先了解VRRP协议,然后再从多个VRRP备份组状态不一致的问题,后续文章引出VGMP协议。
熟悉路由器和交换机的运维同行,一提到双机部署,首先想到的是VRRP协议,其实防火墙的双机热备功能也是在VRRP协议的基础上扩展而来的。(关于VRRP如何进行选举的报文级技术点,暂时不做分享。后续文章会详细介绍。)
如图所示:和心跳线作用于两台设备同步会话配置不同,我们的VRRP协议会引导流量沿着图中所标注的线路,互相探测对方是否有回应。

VRRP(虚拟IP地址)配置
VRRP是一种容错协议,他保证当主机的下一跳路由器(默认网关)出现故障时,由备份路由器自动替代出现故障的路由器完成报文转发任务,从而保证网络通信的连续性和可靠性。
如图所示:新建一个VRRP协议,组名为1,虚拟出的IP地址为10.0.0.1

虚拟的IP地址和接口的IP地址可不再同一网段,这种情况会出现在外网接口配置,将两个私网地址(必须在一个网段)共用一个真实的公网地址。
在中大型网中,组网具有三层交换机存在时,回程的路由也必须指向这个虚拟的IP地址,不能指向实际的物理接口。

主设备配置完毕后,还需要在从设备上配置双机热备功能:

并且配置VRRP组1:填写 虚拟网关。

配置完成后,点击一致性检查:也可刷新。

如图所示:站在主设备上看到虚拟IP中是主状态就表示VRRP协议配置成功!

站在从设备上能看到备状态:

当配置完双机热备功能,意味着虚拟IP状态成功,代表VRRP协议已启用。这个时候,我们查看拓扑中PC1的ARP表项:发现了一个虚拟的00-00-5E-00-01-01的Mac地址,是被主设备掌控!这个地址叫做VRID
是由VRRP虚拟路由器生成

在交换机中,我们也能看到这个虚拟的Mac地址,并且附着在G0/0/1接口,为什么不附着在G0/0/2口呢?
因为这就验证了这个Mac地址是由主设备控制,是从主设备的G1/0/0接口发出。

如何证明呢是从主设备上发出的呢?
这就引出VRRP的工作原理。如图所示:抓取交换机的G0/0/2口的报文,然后断掉主设备的G1/0/1,这样的话从设备会立马切换到主设备,我们通过抓取报文来观察下。

抓取的报文中,会出现一个无故(免费)ARP的报文,它的作用在于当备设备成为主设备的时候,由Master路由器发送免费的ARP报文,将VRRP备份组的虚拟MAC地址和虚拟IP地址,通知给与他连接的交换价,为的就是将流量引到自己的链路上来!
这个无故ARP目标地市是全F,告知所相连的交换机10.0.0.1的mac地址是多少。

这个ARP是由成为了主设备的G1/0/0接口发出,这样的话,所相连的交换相应的端口就会被这个arp地址映射进去,可以查看交换机的mac地址表,因此来自内网的数据到达交换机的时候,交换机会根据mac地址表进行转发,从而改变了数据流的方向。


在实验过程中,我的主设备意外停机,我在从设备的命令行界面发现了以下变化的情况:
在CLI界面中出现HRP_M(官方书上标识的是HRP-A----active,也没有错,针对老款)代表此防火墙成为主用设备,出现HRP_S代表成为备用设备。

接下来,配置另外一组((拓扑中两个设备的外网接口)VRRP。

在主设备的防火墙双机热备功能中再新增一个VRRP组2:
在从设备的防火墙双机热备功能中再新增一个VRRP组2:

配置完成后,站在从设备上可以看到两个虚拟IP为备状态(主设备同样也是)

站在主设备上能看到两个虚拟网关的状态是主状态,代表了内网客户端发向10.0.0.1的所有流量都会由这台主设备进行转发。

站在内网PC1上进行通讯测试,ping虚拟网关10.0.0.1,如图所示:
网关可达。

NAT映射测试:(前提不要忘记在主从设备上配置静态路由)
HRP_M[F1]ip route-static 0.0.0.0 0.0.0.0 79.0.1.50
路由条目是无法互相同步的,因此不要忘记在从设备上配置这条静态路由HRP_S[F2]ip route-static 0.0.0.0 0.0.0.0 79.0.1.50

关于在双机热备的组网环境中源NAT部署,可以用虚拟IP地址转换,可以用接口,这里我先用接口地址演示,只要主设备配置了,备墙就会同步配置。


从设备上的NAT配置也被备份过来:(不仅仅备份NAT ,你修改的设备密码都会同步。)你在从设备上删除这条策略的话,主设备的这条策略也是会被删除的。

在双机热备成功建立好,我们要部署常见的安全业务策略(NAT、安全策略、攻击防范、VPN等)都是由主设备备份到备设备,缺省情况下不需要在备用设备上配置,否则会出现图中报错。
华为引入这个配置主和配置从的概念,为了避免两台设备命令相互覆盖冲突的问题,利于统一管理。

在命令行同样也会报错的。

如果业务需要在备设备上配置,可在CLI界面中输入:
HRP_M[F1]hrp standby config enable(在主设备上配置)不建议开启,保持默认。。

在主设备定义策略的时候,CLI界面中,如图所示:出现这个(+B)的意思指这条指令已经同步到备设备中去。
HRP_M[F1]security-policy (+B)
HRP_M[F1-policy-security]rule name local_any (+B)
HRP_M[F1-policy-security-rule-local_any]source-zone local (+B)
HRP_M[F1-policy-security-rule-local_any]destination-zone any (+B)
HRP_M[F1-policy-security-rule-local_any]action permit (+B)

站在从设备上去看:证明是同步过来的。
HRP_S[F2]display security-policy rule local_any

在配置源NAT策略之后,我们站在PC1上ping 219.0.1.250,网络测试通过

为了确保这个数据流是从主设备这条线路发出,我们需要利用跟踪命令来跟踪路由。
缺省情况下,防火墙是拒绝 tracert 路径,需要手动允许:
HRP_M[F1]icmp ttl-exceeded send (+B)

站在PC1跟踪路由节点:发现数据流是走的图中的方向。
PC>tracert 219.0.1.250

当我断开主设备的G1/0/0,数据流量会从下面走,证明了双机热备功能的作用。

用户是感觉不到断网的,可以说是丢包率非常低,甚至不丢包。如图所示:
证明不会影响其业务。

在主设备的双机热备显示中:我们可以看到虚拟IP这个项目呈现出备状态。

而在备设备上,我们可以看到状态切换为了主状态。

在主设备上查看vrrp状态也发生了变化:
看到G1/0/0接口状态变为了初始化,本应该这个接口状态是Master状态的。

这时候,我就可以介绍VGMP协议了,如图所示:
当主设备的G1/0/0发生故障,VRRP.1和VRRP.2 会同时进行切换,会让来自PC1的数据流走下面出去同时也从下面返回,避免了路径不一致的问题。
那么是什么协议在让他们同时切换呢?
答案就是VGMP协议。

在恢复链路的时候,发现数据流的方向依然是没有切换过来。
原因在于:抢占时间没有到,默认抢占时间是60S。

当然,也可以修改这个抢占时间,这里我修改成20秒(注意的是,修改抢占时间要双台设备都要同样,否则会出现抢占问题。)
HRP_M[F1]hrp preempt delay 20

时间到后,主设备会抢占回来。

再次观察主设备上的Vrrp协议状态:都变为了了Master

再来测试下会话状态的同步情况,因为会话基于TCP流量的连接,需要将拓扑中的server 开启HTTP服务。

客户端1访问外网的219.0.1.250,如图访问成功。

断掉上面的链路,测试客户端是否能能够继续访问,如图所示:客户端依旧能够访问,在实验的过程会出现两次等待,并不会无缝连接。

需要很快的去抓取备设备的会话状态,会发现有这主设备留下的会话信息。


HRP协议概述
HRP 全称 Huawei Redundancy Protocol 协议,华为冗余协议。实现防火墙双机之间动态状态数据和关键配置命令的备份。
注意的是:防火墙的网络基本配置(接口地址、路由)均不能进行备份,现场实施时需要在双机热备状态建立前实施。
能够备份的配置如下:

除了会话,还能够备份的状态信息如下:






