华为防火墙HCIA学习笔记03_双机热备
双机热备技术原理
双机热备技术产生的原因
解决单点故障的问题。
路由器冗余部署方案
-
路由器组网中通过 VRRP协议实现设备冗余:
-
为了避免路由器传统组网所引起的单点故障的发生,通常情况可以采用多条链路的保护机制,依靠动态路由协议进行链路切换。但这种路由协议来进行切换保护的方式存在一定的局限性,当不能使用动态路由协议时,仍然会导致链路中断的问题,因此推出了另一种保护机制VRRP(虚拟路由冗余协议)来进行。采用VRRP的链路保护机制比依赖动态路由协议的广播报文来进行链路切换的时间更短,同时弥补了不能使用动态路由情况下的链路保护。
-
VRRP(Virtual Router Redundancy Protocol)是一种基本的容错协议。
-
备份组:同一个广播域的一组路由器组织成一个虚拟路由器, 备份组中的所有路由器一起,共同提供一个虚拟IP地址,作为内部网络的网关地址。
-
主(Master)路由器:在同一个备份组中的多个路由器中,只有一台处于活动状态,只有主路由器能转发以虚拟IP地址作为下一跳的报文。
-
备份(Backup)路由器:在同一个备份组中的多个路由器中,除主路由器外,其他路由器均为备份路由器,处于备份状态。
-
主路由器通过 组播方式定期向备份路由器发送通告报文(HELLO),备份路由器则负责监听通告报文,以此来确定其状态。由于VRRP HELLO报文为组播报文,所以要求 备份组中的各路由器通过二层设备相连,即启用VRRP时上下行设备必须具有二层交换功能,否则备份路由器无法收到主路由器发送的HELLO报文。如果组网条件不满足,则不能使用VRRP。
-
VRRP在多区域防火墙组网中的应用
-
当防火墙上多个区域需要提供双机备份功能时,需要在一台防火墙上配置多个VRRP备份组。
-
由于USG防火墙是状态防火墙,它要求报文的来回路径一致。为了满足这个限制条件,就要求在同一台防火墙上的所有VRRP备份组状态保持一致,即需要保证在 主防火墙上所有VRRP备份组都是 主状态,这样所有报文都将从此防火墙上通过,而另外一台防火墙则充当备份设备。
VRRP在防火墙应用中存在的缺陷
-
传统VRRP方式无法实现主、备用防火墙状态的一致性。
-
如图所示,假设USG A和USG B的VRRP状态一致,即USG A的所有接口均为主用状态,USG B的所有接口均为备用状态。
-
此时,Trust区域的PC1访问Untrust区域的PC2,报文的转发路线为(1)-(2)-(3)-(4)。USG A转发访问报文时,动态生成会话表项。当PC2的返回报文经过(4)-(3)到达USG A时,由于能够命中会话表项,才能再经过(2)-(1)到达PC1,顺利返回。同理,当PC2和DMZ区域的Server也能互访。
-
假设USG A和USG B的VRRP状态不一致,例如,当USG B与Trust区域相连的接口为备用状态,但与Untrust区域的接口为主用状态,则PC1的报文通过USG A设备到达PC2后,在USG A上动态生成会话表项。PC2的返回报文通过路线(4)-(9)返回。此时由于USG B上没有相应数据流的会话表项,在没有其他报文过滤规则允许通过的情况下,USG B将丢弃该报文,导致会话中断。
-
-
问题产生的原因:报文的转发机制不同。
-
路由器:每个报文都会查 路由表,当匹配上后才进行转发,当链路切换后,后续报文不会受到影响,继续进行转发。
-
状态检测防火墙:如果首包允许通过会建立一条五元组的会话连接,只有命中该会话表项的后续报文(包括返回报文)才能够通过防火墙;如果链路切换后,后续报文找不到正确的表项,会导致业务中断。
-
-
注意:当路由器配置NAT后也会存在同样的问题,因为在进行NAT后会形成一个NAT转换后的表项。
VRRP用于防火墙多区域备份
-
为了保证所有VRRP备份组切换的一致性,在VRRP的基础上进行了扩展,推出了 VGMP(VRRP Group Management Protocol)来弥补此局限。
-
VRRP在防火墙中应用的要求:
-
VRRP状态的一致性
-
会话表状态备份
-
-
VGMP提出VRRP管理组的概念, 将同一台防火墙上的多个VRRP备份组都加入到一个VRRP管理组,由管理组统一管理所有VRRP备份组。通过统一控制各VRRP备份组状态的切换,来保证管理组内的所有VRRP备份组状态都是一致的。
VGMP基本原理
-
当防火墙上的 VGMP为Active状态时,此防火墙组内所有 VRRP备份组的状态统一为Active状态,所有报文都将从该防火墙上通过,该防火墙成为 主用防火墙。此时另外一台防火墙上对应的VGMP为备状态,该防火墙成为备用防火墙。
-
通过指定VGMP组的状态来决定谁将成为主用防火墙或备用防火墙。
-
防火墙的VGMP优先级有一个初始优先级,当防火墙的接口或者单板等出现故障时,会在初始优先级基础上减去一定的降低值。
-
USG6000和NGFW Module的 初始优先级为45000。
-
与VRRP不同的是,Standby端收到HELLO报文后,会回应一个ACK消息,该消息中也会携带本身的优先级、VRRP成员状态等。
-
VGMP HELLO报文发送周期缺省为 1秒。当Standby端 3个HELLO报文周期没有收到对端发送的HELLO报文时,会认为对端出现故障,从而将自己切换到Active状态。
-
VGMP只有两个组:
-
Active
-
Standby
-
VGMP组管理
-
状态一致性管理
-
各备份组的主/备状态变化都需要通知其所属的VGMP管理组,由VGMP管理组决定是否允许VRRP备份组进行主/备状态切换。如果需要切换,则 VGMP管理组控制所有的VRRP备份组统一切换。VRRP备份组加入到管理组后,状态不能自行单独切换。
-
-
抢占管理
-
VRRP备份组本身具有抢占功能。即当原来出现故障的主设备故障恢复时,其优先级也会恢复,此时可以重新将自己的状态抢占为主。
-
VGMP管理组的抢占功能和VRRP备份组类似,当管理组中出现故障的备份组故障恢复时,管理组的优先级也将恢复。此时VGMP可以决定是否需要重新抢占称为主设备。
-
当VRRP备份组加入到VGMP管理组后, 备份组上原来的抢占功能将失效,抢占行为发生与否必须由VGMP管理组统一决定。
-
HRP基本概念
-
HRP(Huawei Redundancy Protocol)协议, 实现防火墙双机之间动态状态数据和关键配置命令的备份。
-
在双机热备组网中,当主防火墙出现故障时,所有流量都将切换到备防火墙。因为USG防火墙是状态防火墙,如果备防火墙上没有原来主防火墙上的会话表等连接状态数据,则切换到备防火墙的流量将无法通过防火墙,造成现有的连接中断,此时用户必须重新发起连接。
-
HRP模块提供了基础的数据备份机制和传输功能。各个应用模块收集本模块需要备份的数据,提交给HRP模块,HRP模块负责将数据发送到对端防火墙的对应模块,应用模块需要再将HRP模块提交上来的数据进行解析,并加入到防火墙的动态运行数据池中。
-
备份内容:要备份的连接状态数据包括 TCP/UDP的会话表、ServerMap表项、动态黑名单、NO-PAT表项、ARP表项等。
-
备份方向:状态为 主的VGMP管理组,向对端备份。
-
备份通道:一般情况下,在两台设备上直连的端口作为备份通道,有时也称为" 心跳线"(VGMP也通过该通道进行通信)。
HRP心跳接口
-
两台FW之间备份的数据是通过 心跳口发送和接收的,是通过 心跳链路(备份通道)传输的。
-
心跳口必须是状态独立且 具有IP地址的接口,可以是一个物理接口(GE接口),也可以是逻辑接口Eth-Trunk。
-
-
通常情况下,备份数据流量约为业务流量的20%~30%,请根据备份数据量的大小选择捆绑物理接口的数量
心跳接口的状态
-
HRP心跳接口共有五种状态:
-
Invalid
-
Down
-
Peerdown
-
Ready
-
running
-
-
invalid:当本端FW上的心跳口 配置错误时显示此状态(物理状态up,协议状态down),例如指定的心跳口为二层接口或未配置心跳接口的IP地址。
-
down:当本端FW上的心跳口的 物理与协议状态均为down时,则会显示此状态。
-
peerdown:当本端FW上的心跳口的物理与协议状态均为up时,则心跳口会向对端对应的心跳口发送心跳链路探测报文。如果 收不到对端响应的报文,那么FW会设置心跳接口状态为peerdown。但是心跳口还会不断发送心跳链路探测报文,以便当对端的对应心跳口up后,该心跳链路能处于连通状态。
-
ready:当本端FW上的心跳口的物理与协议状态均为up时,则心跳口会向对端对应的心跳口发送心跳链路探测报文。如果对端心跳口能够响应此报文(也发送心跳链路探测报文),那么FW会设置本端心跳接口状态为ready, 随时准备发送和接受心跳报文。这时心跳口依旧会不断发送心跳链路探测报文,以保证心跳链路的状态正常。
-
running:当本端FW有多个处于ready状态的心跳口时,FW会选择最先配置的心跳口形成心跳链路,并设置此心跳口的状态为running。如果只有一个处于ready状态的心跳口,那么它自然会成为状态为running的心跳口。 状态为running的接口负责发送HRP心跳报文、HRP数据报文、HRP链路探测报文、VGMP报文和一致性检查报文。
-
这时其余处于ready状态的心跳口处于备份状态,当处于running状态的心跳口或心跳链路故障时,其余处于ready状态的心跳口依次(按配置先后顺序)接替当前心跳口处理业务。
-
综上所述, 心跳链路探测报文的作用是检测对端设备的心跳口能否正常接收本端设备的报文,以确定心跳链路是否可用的。只要本端心跳接口的物理和协议状态up就会向对端心跳口发送心跳链路探测报文进行探测。
-
HRP心跳报文只有主用设备的VGMP组通过状态为running的心跳口发出。
双机热备的备份方式
-
自动备份
-
自动备份功能缺省为开启状态,能够自动 实时备份配置命令和 周期性地备份状态信息,适用于各种双机热备组网。
-
启用自动备份功能后,在一台FW上每执行一条可以备份的命令时,此配置命令就会被立即同步备份到另一台FW上。
-
启用自动备份功能后,主用设备会周期性地将可以备份的状态信息备份到备用设备上。即主用设备的状态信息建立后不会立即备份,而是在建立一段时间( 10秒左右)之后才会备份到备用设备。
-
自动备份不会备份以下类型的会话:
-
到防火墙自身的会话,例如管理员登录防火墙时产生的会话。
-
未完成3次握手的TCP半连接会话(快速备份支持备份此会话)。
-
只为UDP首包创建,而不被后续包匹配的会话(快速备份支持备份此会话)。
-
-
-
手工批量备份
-
手工批量备份需要管理员手工触发,每执行一次手工批量备份命令,主用设备就会立即同步一次配置命令和状态信息到备用设备。因此手工批量备份主要适用于主备设备之间配置不同步,需要手工同步的场景。
-
执行手工批量备份命令后,主用(配置主)设备会立即同步一次可以备份的配置命令到备用(配置备)设备。
-
执行手工批量备份命令后,主用设备会立即同步一次可以备份的状态信息到备用设备,而不必等到自动备份周期的到来。
-
-
会话快速备份
-
会话快速备份功能, 适用于负载分担的工作方式,以应对报文来回路径不一致的场景。负载分担组网下,由于两台防火墙都是主用设备,都能转发报文,所以可能存在报文的来回路径不一致的情况,即来回两个方向的报文分别从不同的防火墙经过。这时如果两台防火墙的会话没有及时相互备份,则回程报文会因为没有匹配到会话表项而被丢弃,从而导致业务中断。所以为防止上述现象发生,需要在负载分担组网下配置会话快速备份功能,使两台防火墙能够实时的相互备份会话,使回程报文能够查找到相应的会话表项,从而保证内外部用户的业务不中断。
-
启用会话快速备份功能后, 主用设备会实时地将可以备份的会话(包括上面提到的自动备份不支持的会话)都同步到备用设备上。即在主用设备会话建立的时候立即将其实时备份到备用设备。
-
-
设备重启后主备FW的配置自动同步
-
双机热备组网中,如果一台FW重启,重启期间业务都是由另一台FW承载。在此期间,承载业务的FW上可能会新增、删除或修改配置。为了保证主备FW配置一致,在FW重启完成后, 会自动从当前承载业务的FW上进行一次配置同步。
-
配置同步仅会同步支持备份的配置,如安全策略、NAT策略等。不支持备份的配置,如OSPF、BGP等,还继续沿用原有的配置。
-
配置同步需要一定的时间。同步的时间与配置量有关,配置量越大同步配置所需时间也越长,最长可能需要1个小时左右。在配置同步期间,FW上无法执行支持备份的配置命令。
-
双机热备基本组网与配置
双机热备基本组网
-
上下行业务接口工作在三层模式,连接二层设备时,需要在上下行的业务接口上配置VRRP备份组,使VGMP管理组能够通过VRRP备份组监测三层业务接口。
-
双机热备组网最常见的是 防火墙采用路由模式, 下行交换机双线上联到防火墙,正常情况下防火墙A作为主,当防火墙A上行或下行链路down掉后,防火墙B自动切换为主设备,交换机流量走向防火墙B。
VRRP备份组配置命令 – CLI
-
Master管理组默认情况下会每隔 1秒发送一次vrrp报文,可以在接口视图下调整vrrp报文发送间隔。接口视图下修改vrrp报文发送时间:
-
vrrp vrid virtual-router-ID timer advertise adver-interval
-
-
vrrp也可以与ip-link进行配合,当上行链路断掉后使vrrp能够进行主备切换。在接口视图下配置ip-link:
-
vrrp vrid virtual-router-id ip-link link-id
-
-
缺省情况下,VGMP管理组的抢占功能为启用状态,抢占延迟时间为 60s。配置VGMP管理组的抢占延迟时间命令如下:
-
hrp preempt [ delay interval ]
-
HRP配置命令 – CLI
-
HRP两台USG心跳口的接口类型和编号必须相同,且 心跳口不能为二层以太网接口。USG支持使用Eth-Trunk接口做为心跳口,既提高了可靠性,又增加了备份通道的带宽。主备USG的心跳口可以直接相连,也可以通过中间设备,如交换机或路由器连接。 当心跳口通过中间设备相连时,需要配置remote参数来指定对端IP地址。
-
当两台设启用备HRP备份功能之后,会进行主备状态的协商,最后得到一个主用设备(显示时以HRP_A表示),一个备用设备(显示时以HRP_S表示)。两端首次协商出主备后,主用设备将向备用设备备份配置和连接状态等信息。
-
启用允许配置备用设备的功能后,所有可以备份的信息都可以直接在备用设备上进行配置,且备用设备上的配置可以同步到主用设备。如果主备设备上都进行了某项配置,则从时间上来说,后配置的信息会覆盖先配置的信息。
-
USG工作于负载分担组网时,报文的来回路径可能会不一致,务必启用会话快速备份功能,使一台USG的会话信息立即同步至另一台USG,保证内外部用户的业务不中断。
-
VRRP配置举例 – CLI
-
USG_A关于VRRP组2配置:
-
[USG_A]interface GigabitEthernet 1/0/3
-
[USG_A-GigabitEthernet 1/0/3 ]ip address 10.3.0.1 24
-
[USG_A-GigabitEthernet 1/0/3 ] vrrp vrid 2 virtual-ip 10.3.0.3 active
-
-
USG_B关于VRRP组2的配置:
-
[USG_B]interface GigabitEthernet 1/0/3
-
[USG_B-GigabitEthernet 1/0/3 ]ip address 10.3.0.2 24
-
[USG_B-GigabitEthernet 1/0/3 ] vrrp vrid 2 virtual-ip 10.3.0.3 standby
-
HRP配置举例 – CLI
-
USG_B关于HRP的配置:
-
[USG_B]hrp enable
-
[USG_B]hrp mirror session enable
-
[USG_B]hrp interface GigabitEthernet 1/0/6
-
-
hrp enable //使能hrp协议。
-
hrp mirror session enable //开启会话快速备份功能。
-
hrp interface GigabitEthernet 1/0/6 //指定心跳接口为G1/0/6。
查看VRRP状态 – CLI
查看HRP状态 – CLI
-
查看处于Slave状态防火墙的状态信息如下:
HRP_S[USG_B] display hrp state
The firewall's config state is: Standby
Current state of virtual routers configured as standby:
GigabitEthernet1/0/1 vrid 1 : standby
GigabitEthernet1/0/3 vrid 2 : standby
防火墙配置界面 – Web
-
点击"系统 > 高可靠性 > 双机热备 > 配置"进行双机热备相关配置。
-
点击"配置"进入双机热备配置界面,在配置界面中可以配置HRP的基本参数,以及对接口、VLAN、IP-Link、BFD的监视;
-
点击"详细"按钮可以查看HRP的历史切换信息;
-
点击"一致性检查"按钮可以对主备防火墙的配置做一致性检查。
双机热备主用设备配置 – Web
-
在双机热备配置界面点击"配置"按钮对主用设备USG_A的配置,在配置虚拟IP地址下点击"新建"建立相应VRRP备份组。
双机热备备用设备配置 - Web
查看双机热备历史切换信息 – Web
-
在双机热备界面,点击"详细"可以查看双机热备主备切换信息。
查看双机热备状态信息 – Web
-
在双机热备界面确认运行模式、角色及VRRP备份组的状态信息。
实验
需求:
使用双机热备技术,PC1能够访问PC2。FW1为主,FW2为备。FW1出现问题,PC1能够正常访问PC2
双击热备配置思路:
1. 基础配置,ip地址、区域划分、ping通(完成)
2. 配置VRRP(VGMP)
3. 配置心跳接口(HRP)
4. 设置备份方式
5. 安全策略(关于双机热备的安全策略不需要, 单独配置)
命令行:
2. VRRP配置:
FW1:
[Active-GigabitEthernet1/0/0]vrrp vrid 1 virtual-ip 10.1.1.254 active
//此接口为组1,虚拟IP为10.1.1.254
//active:启动VGMP协议,使FW1为主防火墙
[Active-GigabitEthernet1/0/1]vrrp vrid 2 virtual-ip 20.1.1.254 active
FW2:
[Standby-GigabitEthernet1/0/0]vrrp vrid 1 virtual-ip 10.1.1.254 standby
[Standby-GigabitEthernet1/0/1]vrrp vrid 2 virtual-ip 20.1.1.254 standby
3. 配置心跳接口:
FW1
[Active]hrp enable
//心跳线的启动命令
[Active]hrp interface GigabitEthernet 1/0/6 remote 192.168.1.2
//在g1/0/6上配置心跳接口,对端IP:192.168.1.2
FW2
[Standby]hrp enable
[Standby]hrp interface g1/0/6 remote 192.168.1.1
4. 配置备份方式:默认启动自动备份
FW1
HRP_M[Active]hrp mirror session enable
//开启快速备份(镜像备份),负载均衡防火墙需要开启。
5. 追踪链路状态命令:
HRP_M[Active]hrp track interface g1/0/0
HRP_M[Active]hrp track interface g1/0/1
6. 强制切换主备:
HRP_M[Active]hrp switch standby
HRP_S[Active]hrp switch active
查看命令:
[Active]display vrrp brief
2020-05-07 07:19:19.940
Total:2 Master:1 Backup:1 Non-active:0
VRID State Interface Type Virtual IP
----------------------------------------------------------------
1 Master GE1/0/0 Vgmp 10.1.1.254
2 Backup GE1/0/1 Vgmp 20.1.1.254
[Active]display vrrp
查看VRRP状态改变
[Standby]dis vrrp state-change interface g1/0/0 vrid 1
2020年05月07日 07:30:30.110
Time SourceState DestState Reason
-------------------------------------------------------------------------------
2020-05-07 07:24:50 Initialize Backup Interface up
HRP_M[Active]display hrp state
2020年05月07日 07:57:55.480
本端角色:主用,对端角色:备份
运行优先级:45000,对端优先级:45000
备份通道带宽使用率:0.00%
稳定运行时间:0 天,0 小时,5 分钟
最后一次状态切换信息:2020-05-07 7:52:03 HRP link changes to up.
查看心跳口:
HRP_M[Active]dis hrp interface
2020年05月07日 08:03:53.420
GigabitEthernet1/0/6 : 运行
HRP_M[Active]dis hrp state verbose
2020年05月07日 08:22:02.790
本端角色:主用,对端角色:备份
运行优先级:45000,对端优先级:45000
备份通道带宽使用率:0.00%
稳定运行时间:0 天,0 小时,30 分钟
最后一次状态切换信息:2020-05-07 7:52:03 HRP link changes to up.
配置信息:
hello interval: 1000ms
preempt: 60s
mirror configuration: 关闭
mirror session: 开启
track trunk member: 开启
auto-sync configuration: 开启
auto-sync connection-status: 开启
adjust ospf-cost: 开启
adjust ospfv3-cost: 开启
adjust bgp-cost: 开启
nat resource: 关闭
详细信息:
GigabitEthernet1/0/0 vrrp vrid 1:主状态
GigabitEthernet1/0/1 vrrp vrid 2:主状态
GigabitEthernet1/0/0:正常
GigabitEthernet1/0/1:正常
来源:oschina
链接:https://my.oschina.net/u/4330033/blog/4287290