文章目录
- 一、为什么要用HRP主备?
- 二、HRP的核心原理
- 三、完整配置流程
- 四、验证配置是否生效
-
- [1. 查看HRP状态](#1. 查看HRP状态)
- [2. 验证配置同步](#2. 验证配置同步)
- [3. 验证主备切换](#3. 验证主备切换)
- 五、高级配置与优化
-
- [1. 配置HRP会话同步过滤](#1. 配置HRP会话同步过滤)
- [2. 配置HRP批量同步](#2. 配置HRP批量同步)
- [3. 配置HRP状态检测](#3. 配置HRP状态检测)
- 六、常见坑点与排查思路
-
- [1. HRP状态一直处于"Negotiating"](#1. HRP状态一直处于"Negotiating")
- [2. 主备切换后业务中断](#2. 主备切换后业务中断)
- [3. 配置不同步](#3. 配置不同步)
一、为什么要用HRP主备?
当网络是单台防火墙扛流量,一旦设备挂了,整个业务网段直接瘫痪,恢复时间按小时算。后来华为推出HRP主备模式,两台防火墙共用一个业务IP,主设备故障时,备用设备能在秒级内接管业务,RTO(恢复时间目标)能控制在100ms以内,完全满足金融、运营商这类高可用场景的要求。
和VRRP不同,HRP不仅能实现网关冗余,还能同步防火墙的会话表、NAT表、攻击防御策略这些业务配置。VRRP只是网关层面的切换,切换后新的主设备需要重新建立会话,会导致业务中断几秒钟;而HRP是会话级别的同步,切换后业务几乎无感知。

二、HRP的核心原理
HRP主备模式下,两台防火墙分为主用设备(Active)和备用设备(Standby):
主用设备处理所有业务流量,同时把会话表、NAT表、用户配置这些数据通过心跳链路同步到备用设备- 备用设备处于热备状态,实时接收主用设备的同步数据,但不处理业务流量
- 当主用设备故障(接口down、设备断电、CPU利用率100%),备用设备会在检测到故障后自动切换为主用,接管所有业务
HRP有两种心跳链路:
- 专用心跳链路:用单独的物理接口连接两台防火墙,只传输HRP同步数据,不处理业务流量,可靠性最高(现网的主要模式)
- 业务心跳链路:复用业务接口传输HRP数据,适合没有多余物理接口的场景,但会占用业务带宽,可靠性不如专用心跳
华为HRP用的是VRRP作为状态检测机制,通过VRRP的Master/Backup状态来决定HRP的主备角色。所以配置HRP前,必须先配置VRRP。

三、完整配置流程
0.参数规划
- 物理接口:
- 主设备:G0/0/0(业务口,连接核心交换机)、G0/0/1(心跳口,连接备用设备G0/0/1)、G0/0/2(管理口)
- 备用设备:G0/0/0(业务口,连接核心交换机)、G0/0/1(心跳口,连接主设备G0/0/1)、G0/0/2(管理口)
- IP规划:
- 业务网段:192.168.1.0/24,VRRP虚拟IP:192.168.1.254
- 心跳网段:10.0.0.0/30,主设备心跳IP:10.0.0.1,备用设备心跳IP:10.0.0.2
- 管理网段:172.16.0.0/24,主设备管理IP:172.16.0.10,备用设备管理IP:172.16.0.11

1.配置基础网络
先把两台设备的接口IP、路由、管理配置好,确保两台设备能互相通信,主设备能访问核心交换机。
主设备配置:
bash
# 配置管理口
interface GigabitEthernet 0/0/2
ip address 172.16.0.10 255.255.255.0
service-manage all permit
# 配置业务口
interface GigabitEthernet 0/0/0
ip address 192.168.1.1 255.255.255.0
# 配置心跳口
interface GigabitEthernet 0/0/1
ip address 10.0.0.1 255.255.255.252
# 配置静态路由,指向核心交换机
ip route-static 0.0.0.0 0.0.0.0 192.168.1.253
service-manage all permit 命令在华为防火墙中用于允许管理员通过该接口使用所有管理协议访问防火墙设备。
备用设备配置相同(IP根据规划),就不再列出。
2.配置VRRP
VRRP是HRP主备切换的触发机制,必须在业务口和心跳口都配置VRRP组。
主设备配置:
bash
# 业务口VRRP组1,优先级120(比备用设备高20,确保成为主用)
interface GigabitEthernet 0/0/0
vrrp vrid 1 virtual-ip 192.168.1.254
vrrp vrid 1 priority 120
# 配置抢占模式,延迟30秒抢占,避免网络抖动导致频繁切换
vrrp vrid 1 preempt-mode timer delay 30
quit
# 心跳口VRRP组2,优先级120
interface GigabitEthernet 0/0/1
vrrp vrid 2 virtual-ip 10.0.0.3
vrrp vrid 2 priority 120
vrrp vrid 2 preempt-mode timer delay 30
quit
备用设备配置:
bash
# 业务口VRRP组1,优先级100(默认值)
interface GigabitEthernet 0/0/0
vrrp vrid 1 virtual-ip 192.168.1.254
vrrp vrid 1 priority 100
vrrp vrid 1 preempt-mode timer delay 30
quit
# 心跳口VRRP组2,优先级100
interface GigabitEthernet 0/0/1
vrrp vrid 2 virtual-ip 10.0.0.3
vrrp vrid 2 priority 100
vrrp vrid 2 preempt-mode timer delay 30
quit
这里要注意,VRRP的抢占延迟一定要配置,否则当主设备恢复后,会立刻抢占回主用角色,导致业务再次切换,影响用户体验。一般配置30秒以上,给网络足够的恢复时间。
3.启用HRP并配置心跳链路
现在开始配置HRP,先启用HRP功能,然后指定心跳链路。
主设备配置:
bash
# 启用HRP功能
hrp enable
# 指定心跳链路为G0/0/1,同时启用会话同步、配置同步
hrp interface GigabitEthernet 0/0/1 remote 10.0.0.2
# 同步所有配置,包括接口IP、路由、策略等
hrp config sync all
# 同步会话表、NAT表、ASPF表这些业务数据
hrp session enable
# 配置HRP优先级和VRRP联动,当VRRP组1故障时,HRP优先级降低20,触发切换
hrp track vrrp vrid 1 reduce 20
备用设备配置:
bash
# 启用HRP功能
hrp enable
# 指定心跳链路为G0/0/1,指向主设备的心跳IP
hrp interface GigabitEthernet 0/0/1 remote 10.0.0.1
# 同步所有配置
hrp config sync all
# 同步会话表
hrp session enable
# 配置HRP优先级和VRRP联动
hrp track vrrp vrid 1 reduce 20
如果用业务接口作为心跳链路,必须在业务接口上配置HRP的心跳IP,同时要确保业务接口的安全策略允许HRP协议通过。HRP用的是UDP 10000端口,所以安全策略要允许这个端口的流量。
4.配置业务接口联动
为了避免主设备业务口故障但设备本身正常的情况,需要配置HRP和业务接口的联动。当主设备的业务口down了,HRP会自动降低优先级,触发主备切换。
主设备配置:
bash
# 当G0/0/0接口down时,HRP优先级降低20
hrp interface GigabitEthernet 0/0/0 track priority 20
备用设备配置:
bash
# 备用设备同样配置接口联动
hrp interface GigabitEthernet 0/0/0 track priority 20
四、验证配置是否生效
配置完成后,一定要验证主备状态、配置同步、切换功能是否正常。
1. 查看HRP状态
在主设备上执行:
bash
display hrp state
正常输出应该是:
bash
HRP_Mdis hrp state
HRP Work Mode: Active
HRP Connection Status: Up
HRP Peer IP: 10.0.0.2
HRP Sync Status: Success
HRP Priority: 120
HRP Preempt Delay: 30s
HRP Track Interface: GigabitEthernet 0/0/0 (Up)
HRP Track VRRP: Vrid 1 (Master)
在备用设备上执行:
bash
display hrp state
正常输出应该是:
HRP_Sdis hrp state
HRP Work Mode: Standby
HRP Connection Status: Up
HRP Peer IP: 10.0.0.1
HRP Sync Status: Success
HRP Priority: 100
HRP Preempt Delay: 30s
HRP Track Interface: GigabitEthernet 0/0/0 (Up)
HRP Track VRRP: Vrid 1 (Backup)
注意状态:Active/Standby,同时VRRP的状态是:Master/Backup
2. 验证配置同步
在主设备上新增一条安全策略:
bash
security-policy
rule name permit_business
source-zone trust
destination-zone untrust
source-address 192.168.1.0 255.255.255.0
action permit
quit
然后在备用设备上执行display security-policy rule name permit_business,如果能看到这条策略,说明配置同步正常。
3. 验证主备切换
手动断开主设备的业务口G0/0/0,然后在备用设备上查看HRP状态:
bash
display hrp state
如果备用设备的状态变为HRP Work Mode: Active,说明切换成功。然后恢复主设备的业务口,等待30秒后,主设备会自动抢占回主用角色。
五、高级配置与优化
1. 配置HRP会话同步过滤
如果不需要同步所有会话,可以配置会话同步过滤,只同步指定的会话类型,减少心跳链路的带宽占用:
bash
# 只同步TCP和UDP会话
hrp session filter tcp udp
2. 配置HRP批量同步
当备用设备刚上线时,主设备会把所有配置和会话同步过去,如果会话数很多,会占用大量带宽。可以配置批量同步的速率限制:
bash
# 限制批量同步的速率为1000个会话/秒
hrp session batch sync speed-limit 1000
3. 配置HRP状态检测
可以配置HRP的状态检测间隔和超时时间,调整故障检测的灵敏度:
bash
# 配置HRP心跳包发送间隔为1秒,超时时间为3秒
hrp timer hello 1
hrp timer hold 3
间隔越短,故障检测越快,但会增加心跳链路的负担;间隔越长,故障检测越慢,但占用带宽少。一般默认的3秒间隔和9秒超时时间就足够了。
六、常见坑点与排查思路
1. HRP状态一直处于"Negotiating"
- 原因:两台设备的HRP配置不一致,或者心跳链路不通
- 排查步骤 :
- 用
ping命令测试两台设备的心跳IP是否能通 - 检查两台设备的HRP配置是否一致,尤其是
hrp interface和hrp remote参数 - 检查心跳接口的安全策略是否允许UDP 10000端口的流量
- 用
2. 主备切换后业务中断
- 原因:会话同步没有生效,或者备用设备的路由配置不正确
- 排查步骤 :
- 在主设备上执行
display hrp session sync status,查看会话同步是否正常 - 在备用设备上执行
display ip routing-table,检查路由配置是否和主设备一致 - 检查备用设备的安全策略是否和主设备一致
- 在主设备上执行
3. 配置不同步
- 原因 :
hrp config sync参数配置不正确,或者两台设备的版本不一致 - 排查步骤 :
- 执行
display hrp config sync status,查看配置同步的状态 - 检查两台设备的系统版本是否一致,华为HRP要求两台设备的版本必须完全相同
- 执行
hrp config sync all手动触发一次全量同步
- 执行
华为HRP主备模式是目前企业网络中最常用的高可用方案,配置不难,但细节很多,尤其是心跳链路的配置和VRRP的联动,稍微不注意就会踩坑。
另外,现在华为已经推出了HRP多主模式,适合分布式部署的场景,多台防火墙可以同时处理业务流量,性能更高,但配置也更复杂。如果是单中心的高可用场景,主备模式完全足够,而且配置简单,维护方便。
如果觉得这些经验对你有用,不妨动动手指点赞,再顺手收藏起来,方便后续回看或分享给有需要的朋友 ------ 您的每一份支持,都是我继续分享的动力,感谢阅读!