欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

华为网络----防火墙双机热备实验(VGMP、HRP协议)

程序员文章站 2024-03-20 15:16:58
...

前言:

  • 传统组网中,只有一台防火墙部署在出口,当防火墙出现故障后,内部网络中所有以防火墙作为默认网关的主机与外部网络之间的通讯中断,通讯可靠性无法保证。
  • 双机热备份技术的出现改变了可靠性难以保证的尴尬状态,通过在网络出口位置部署两台或多台网关设备,保证了内部网络于外部网络之间的通讯畅通。
  • USG防火墙作为安全设备,一般会部署在需要保护的网络和不受保护的网络之间,即位于业务接口点上。在这种业务点上,如果仅仅使用一台USG防火墙设备,无论其可靠性多高,系统都可能会承受因为单点故障而导致网络中断的风险。为了防止一台设备出现意外故障而导致网络业务中断,可以采用两台防火墙形成双机备份。解决单点故障,从而实现业务的平滑过渡(会话表需要同步的)

一、华为防火墙双机热备概述

1.1 防火墙双机热备概念
  • 平常多个VRRP备份组会存在状态不一致的问题,于是华为防火墙引入了VGMP来实现对VRRP备份组的统一管理,保证多个VRRP备份组状态的一致性
  • VGMP(VRRP Group Management Protocol)组管理协议:由于双机热备导致设备出问题时可能会来回路径不一致,因此,我们将防火墙上的所有VRRP备份组都加入到一个VGMP组中,由VGMP组来集中监控并管理所有的VRRP备份组状态。如果有一个VRRP备份组有状态变化,则全部VRRP备份组进行状态切换,保证各VRRP备份组状态的一致性
    • 实现VRRP备份组的统一管理
    • 保证设备在各个备份组中的状态一致性
  • HRP(Huawei Redundancy Protocol)双机热备协议(华为冗余协议):协议是承载在VGMP报文上进行传输的,用于主设备出现问题时,备能快速切换至主,同时保证了主备之间的配置命令和会话表状态信息同步。
  • VGMP、HRP是华为私有协议
1.2 防火墙双机热备特点
  • VGMP组的状态决定了VRRP备份组的状态
  • VGMP组的状态通过比较优先级决定
  • 默认情况下,VGMP组的优先级为45000
  • 通过心跳线协商VGMP状态信息
  • 一旦检测到备份组的状态变成Initialize状态,VGMP组的优先级会自动减2
1.2.1 VGMP的优先级
  • 中低端:Active设备优先级为65001,Standby设备优先级为6500
  • 高端:VGMP组初始优先级=45000+1000 LPU板上的插卡个数+2SPU 板上的CPU个数
  • USG6000,NGFW Module的初始化优先级都为45000
1.3 华为防火墙双机热备方式
  • ① 自动备份

    该模式下,和双机热备有关的配置命令只能再主用设备上配置,并自动同步到备用设备中,主用设备自动将装填信息同步到备设备中。该模式是华为防火墙默认开启模式,主要用于热备模式 hrp auto-sync

  • ② 手工批量备份

    该模式下,主要设备上所有的配置命令和状态信息,只有在手工执行执行批量备份命令时才会自动同步到备用设备,该模式主要用于主备设备配置不同步,需要立即进行同步的场景中

  • ③ 快速备份

    该模式下,不同步配置命令,只同步状态信息,在负载均衡方式的双机热备环境中,该模式必须启动,以快速更新状态信息

1.4 VGMP的状态转换与工作过程
  • 启用双机热备功能后,各VGMP组进入Initialize(初始化)状态。
  • 启用Active组后,Active组的状态由Initialize切换成Active。
  • 启用Standby组后,Standby组的状态由Initialize切换成Standby。
  • 本端VGMP组监控的接口故障时,状态由Active切换成A to S,并发送VGMP请求报文给对端设备的VGMP组。
  • 本端VGMP组收到对端的VGMP请求报文,发现自身优先级高,则将状态由Standby切换成Acitve,并发送VGMP确认报文给对端设备的VGMP组。
  • 本端VGMP组收到对端的VGMP确认报文,确认本端需要进行状态切换,则本端的VGMP组状态由A to S切换成Standby。
  • 对端VGMP组确认本端的VGMP组不需要进行状态切换或连续三次没有回应本端的VGMP请报文,则本端的VGMP组状态由A to S切换成Active。
  • 本端VGMP组监控的接口故障恢复后,如果本端VGMP组优先级高于对端且配置了抢占功能,则本端VGMP组状态由Standby切换成S to A,并向对端发送VGMP请求报文。
  • 本端VGMP组收到对端的VGMP请求报文,发现对端优先级高,则将状态由Active切换成Standby,并发送VGMP确认报文给对端设备的VGMP组。
  • 本端VGMP组收到对端的VGMP确认报文,确认本端需要进行状态切换,则本端的VGMP组状态由S to A切换成Active,完成抢占过程。
  • 对端VGMP组确认本端的VGMP组不需要进行状态切换或连续三次没有回应本端的VGMP请报文,则本端的VGMP组状态由S to A切换成Standby。
1.5 VGMP的工作原理(主备模式下)
  • 指定设备为Active和Standby
  • 将VGMP组内所有VRRP备份组状态为指定的Active standby(VRRP备份组状态的一致性)
  • Active设备发送免费ARP,刷新交换机MAC地址表(引导流量)
  • 周期性发送HRP心跳报文(周期1s 死亡3s),监控Active和Standby
1.6 HRP协议基本原理
  • HRP协议实现备份会话表等状态信息和关键的配置

  • HRP报文实际是一种VGMP报文,承载在VGMP报文的Data区域,即存在两种封装方式

  • 管理面上的HRP报文会携带:指定自动备份还是批量备份、指定发送还是应答备份的数据类型,两种方式如下
    华为网络----防火墙双机热备实验(VGMP、HRP协议)

  • 转发层面的两种方式
    华为网络----防火墙双机热备实验(VGMP、HRP协议)

  • 封装VRRP,组播224.0.0.18,不需要考虑安全策略监控

  • 封装UDP,单播,需要考虑安全策略

  • 配置心跳线的时候需要考虑remote

1.7 HRP的备份方式
  • 自动备份,默认方式
  • 手动备份,批量方式(hrp sync config 手动触发批量备份)
  • 快速备份,针对分载分担
1.8 备份通道状态
  • 当设备两边均配置心跳口,防火墙会判断心跳接口的物理与协议状态。心跳链路一共存在五种状态

    ① running:正常运行,能够发送报文

    ② ready:正常运行,此接口为备份通道,当前未使用

    ③ peerdown:本段正常,但是收不到对端的心跳报文

    ④ invaild:未指定心跳地址的IP地址,心跳口工作在二层

    ⑤ down:心跳接口的物理状态与协议状态都为DOWN

当有多根心跳线时,哪个接口先配置的心跳线,即哪个接口的状态先成为ready,当两端心跳线通信时,先成为ready的接口就会成为running

当本端running接口down时,第二成为ready的接口会代替down的接口成为本端设备的running口。

继承顺序按照成为ready的时间,没有比较优先级等。只看时间戳。

当两端心跳有多根时,如果两端的running口不是一根链路,也可以正常通信
1.9 心跳线
  • 双机热备组网中,心跳线是两台FW交互消息了解对端状态以及备份配置命令和各种表项的通道。心跳线两端的接口通常称为“心跳接口”

  • 心跳线主要传递如下消息

    心跳报文(hello报文):两台FW通过定期(默认周期为1秒)互相发送心跳报文检测对端设备是否存活

    VGMP报文:了解对端设备的VGMP组状态,确定本端和对端设备当前状态是否稳定,是否要进行故障切换

    配置和表项备份报文:用于两台FW同步配置命令和状态信息

    心跳链路探测报文:用于检测对端设备的心跳口能否正常接收本端设备的报文,确定是否有心跳接口可以使用

    配置一致性检查报文:用于检测两台FW的关键配置是否一致,比如安全策略、NAT等

二、防火墙双机热备实验

2.1 实验拓扑图

华为网络----防火墙双机热备实验(VGMP、HRP协议)

2.2 路由器R1配置
<Huawei>sys
[Huawei]sysname R1

#配置物理接口和环回接口IP地址
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.1.1.1 24
[R1-GigabitEthernet0/0/0]undo shut
[R1-GigabitEthernet0/0/0]q
[R1]int loo 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q

#配置指向
[R1]ip route-static 192.168.10.0 24 10.1.1.100
2.3 防火墙FW1配置
<USG6000V1>sys
[USG6000V1]sysname FW1

#配置接口地址
[FW1]int g1/0/0
[FW1-GigabitEthernet1/0/0]ip add 10.1.1.101 24
[FW1-GigabitEthernet1/0/0]undo shut
[FW1-GigabitEthernet1/0/0]q
[FW1]int g1/0/2
[FW1-GigabitEthernet1/0/2]ip add 192.168.10.101 24
[FW1-GigabitEthernet1/0/2]undo shut
[FW1-GigabitEthernet1/0/2]q
[FW1]int g1/0/1
[FW1-GigabitEthernet1/0/1]ip add 172.16.1.1 24
[FW1-GigabitEthernet1/0/1]undo shut

#配置untrust区域
[FW1]firewall zone untrust 
#将g1/0/0接口加入到untrust区域
[FW1-zone-untrust]add in g1/0/0

#配置dmz区域
[FW1-zone-untrust]firewall zone dmz
#将g1/0/1接口加入到dmz区域
[FW1-zone-dmz]add int g1/0/1

#配置trust区域
[FW1-zone-dmz]firewall zone trust
#将g1/0/2接口加入到trust区域
[FW1-zone-trust]add in g1/0/2
[FW1-zone-trust]q

#配置通往路由器的静态路由
[FW1]ip route-static 0.0.0.0 0.0.0.0 10.1.1.1 

#配置安全策略
[FW1]security-policy 
#定义规则 (permit_heat)心跳线安全规则
[FW1-policy-security]rule name permit_heat
#源区域--本地
[FW1-policy-security-rule-permit_heat]source-zone local
#目的区域--DMZ
[FW1-policy-security-rule-permit_heat]destination-zone dmz
#允许通过
[FW1-policy-security-rule-permit_heat]action permit
[FW1-policy-security-rule-permit_heat]q

#定义规则(规则名:permit_trust_untrust
[FW1-policy-security]rule name permit_trust_untrust
#源区域--trust
[FW1-policy-security-rule-permit_trust_untrust]source-zone trust
#目的区域--untrust
[FW1-policy-security-rule-permit_trust_untrust]destination-zone untrust
#允许通过
[FW1-policy-security-rule-permit_trust_untrust]action permit 
[FW1-policy-security-rule-permit_trust_untrust]q

#定义下连口VRRP主用组和虚拟IP地址
[FW1-policy-security]int g1/0/2
[FW1-GigabitEthernet1/0/2]vrrp vrid 1 virtual-ip 192.168.10.100 active
[FW1-GigabitEthernet1/0/2]undo shut
[FW1-GigabitEthernet1/0/2]q
#定义上连口VRRP主用组和虚拟IP地址
[FW1]int g1/0/0	
[FW1-GigabitEthernet1/0/0]vrrp vrid 2 virtual-ip 10.1.1.100 active 
[FW1-GigabitEthernet1/0/0]un shut
[FW1-GigabitEthernet1/0/0]q

#配置心跳接口(remote 远程连接的地址未172.16.1.2)
[FW1]hrp interface g1/0/1 remote 172.16.1.2

#启动双机热备
[FW1]hrp enable 
#定义双机热备方式为自动备份
HRP_S[FW1]hrp auto-sync
#查看双机热备状态信息	
HRP_S[FW1]display hrp state
2020-02-26 04:05:06.200 
 Role: standby, peer: unknown
 Running priority: 45000, peer: unknown
 Backup channel usage: 0.00%
 Stable time: 0 days, 0 hours, 0 minutes
 Last state change information: 2020-02-26 4:04:29 HRP core state changed, old_s
tate = initial, new_state = abnormal(standby), local_priority = 45000, peer_prio
rity = unknown.

#查看心跳接口状态信息
HRP_S[FW1]dis hrp int
2020-02-26 04:05:19.470 
             GigabitEthernet1/0/1 : negotiation failed
2.4 防火墙FW2配置
<USG6000V1>sys	
[USG6000V1]sysname FW2

#配置物理接口地址
[FW2]int g1/0/0
[FW2-GigabitEthernet1/0/0]ip add 10.1.1.102 24
[FW2-GigabitEthernet1/0/0]undo shut
[FW2-GigabitEthernet1/0/0]q
[FW2]int g1/0/1
[FW2-GigabitEthernet1/0/1]ip add 172.16.1.2 24
[FW2-GigabitEthernet1/0/1]undo shut
[FW2-GigabitEthernet1/0/1]q
[FW2]int g1/0/2
[FW2-GigabitEthernet1/0/2]ip add 192.168.10.102 24
[FW2-GigabitEthernet1/0/2]undo shut
[FW2-GigabitEthernet1/0/2]q

#定义防火墙untrust区域
[FW2]firewall zone untrust 
#讲接口加入到untrust区域
[FW2-zone-untrust]add int g1/0/0
[FW2-zone-untrust]q
#定义防火墙dmz区域
[FW2]firewall zone dmz
#将接口加入到dmz区域
[FW2-zone-dmz]add int g1/0/1
[FW2-zone-dmz]q
#定义trust区域
[FW2]firewall zone trust 
#将接口加入到trust区域
[FW2-zone-trust]add in g1/0/2
[FW2-zone-trust]q

#配置往路由器放向的静态路由
[FW2]ip route-static 0.0.0.0 0.0.0.0 10.1.1.1

#定义安全策略
[FW2]security-policy 
#定义规则名(permit_heat)
[FW2-policy-security]rule name permit_heat
#源区域--本地
[FW2-policy-security-rule-permit_heat]source-zone local
#目标区域--dmz
[FW2-policy-security-rule-permit_heat]destination-zone dmz	
#允许通行
[FW2-policy-security-rule-permit_heat]action permit 
[FW2-policy-security-rule-permit_heat]q

#定义规则名(permit_trust_untust)
[FW2-policy-security]rule name permit_trust_untrust
#源区域--trust
[FW2-policy-security-rule-permit_trust_untrust]source-zone trust
#目标区域--untrust
[FW2-policy-security-rule-permit_trust_untrust]destination-zone untrust 	
#允许通行
[FW2-policy-security-rule-permit_trust_untrust]action permit 
[FW2-policy-security-rule-permit_trust_untrust]q
#定义上连口VRRP主用组和虚拟IP地址
[FW2-policy-security]int g1/0/2
#定义下连口VRRP主用组和虚拟IP地址(standby 备用)
[FW2-GigabitEthernet1/0/2]vrrp vrid 1 virtual-ip 192.168.10.100 standby 
[FW2-GigabitEthernet1/0/2]undo shut
[FW2-GigabitEthernet1/0/2]q
#定义上连口VRRP主用组和虚拟IP地址
[FW2]int g1/0/0	
[FW2-GigabitEthernet1/0/0]vrrp vrid 2 virtual-ip 10.1.1.100 standby 
[FW2-GigabitEthernet1/0/0]undo shut
[FW2-GigabitEthernet1/0/0]q
#配置心跳接口(remote 远程连接的地址未172.16.1.1)
[FW2]hrp int g1/0/1 remote 172.16.1.1
#启动双机热备
[FW2]hrp enable	
#定义双机热备方式为自动备份
HRP_S[FW2]hrp auto-sync 
#查看双机热备状态信息
HRP_S[FW2]dis hrp state
2020-02-26 04:56:37.580 
 Role: standby, peer: active
 Running priority: 45000, peer: 45000
 Backup channel usage: 0.00%
 Stable time: 0 days, 0 hours, 0 minutes
 Last state change information: 2020-02-26 4:56:21 HRP link changes to up.

#查看心跳接口状态信息
HRP_S[FW2]dis hrp int
2020-02-26 04:56:54.370 
             GigabitEthernet1/0/1 : running
2.5 验证
2.5.1 使用PC1ping R1环回口
  • 先在LSW2的e0/0/1接口抓包
    华为网络----防火墙双机热备实验(VGMP、HRP协议)

  • PC 1 PING R1e0/0/1接口、查看抓包信息
    华为网络----防火墙双机热备实验(VGMP、HRP协议)

2.5.2 模拟故障
  • 切断FW1下连口,再次使用PC1 ping R1环回口

华为网络----防火墙双机热备实验(VGMP、HRP协议)

  • 查看FW1双机热备状态

华为网络----防火墙双机热备实验(VGMP、HRP协议)

2.5.3 模拟故障修复
  • 开启关闭的的接口,模拟故障修复、查看双机热备状态

华为网络----防火墙双机热备实验(VGMP、HRP协议)

  • 故障修复后,由于抢占机制,FW1由standby变为active
相关标签: 华为网络