防火墙双机热备01(主备模式)

知识背景

VRRP是通用的、标准的三层冗余协议;HRP是华为防火墙专用的、深度的状态与配置同步协议。 防火墙使用VRRP是基础,但仅靠VRRP无法实现真正的业务不中断。


VRRP的定位与局限(在防火墙场景下)

VRRP是一个网络层协议,它的核心目标很简单:让一组路由器(或防火墙的三层接口)虚拟成一个网关,实现网关的冗余备份。

  • 作用:当主设备故障时,备用设备接管虚拟IP地址,保证用户的上行网关不中断。

  • 在防火墙上的局限

    1. 只同步IP和MAC :VRRP只同步虚拟IP和MAC地址,不关心防火墙的核心状态信息

    2. 无状态同步 :防火墙是"状态化"设备。每一个通过的连接(如一个HTTP访问、一次FTP下载)都会在防火墙上生成一条 "会话表项(Session)" 。如果主备机只有VRRP,备用防火墙没有这些会话表,当主防火墙宕机切换后,所有已建立的连接都会中断,需要客户端重新发起。这对于企业关键业务(如视频会议、在线交易)是不可接受的。

    3. 配置不同步:主备防火墙需要管理员手动配置几乎完全相同的安全策略、NAT规则、路由等。配置复杂且容易出错,不利于维护。


华为HRP协议的强大之处(专为状态化防火墙设计)

HRP是华为防火墙双机热备的"大脑"和"数据同步通道"。它建立在VRRP(或等价网关协议)之上,解决了上述所有问题。HRP协议的核心是状态与配置的实时同步

HRP同步的关键内容包括:

  1. 会话表同步 :这是最重要的功能。主防火墙上的所有动态会话表会实时同步到备用防火墙。当主设备故障时,备用设备能立即接管所有正在进行的数据流,用户完全无感知。

  2. Server-Map表同步:用于NAT Server、ASPF等生成的静态映射表,确保NAT等转换规则在切换后依然有效。

  3. 配置同步 :管理员只需要在主设备 上配置,HRP会自动将配置(安全策略、对象、NAT、路由等)同步到备用设备。这实现了配置统一管理,极大减少了配置错误和运维工作量。

  4. 动态表项同步:包括ARP表、黑名单、白名单等。

  5. 心跳与故障检测:HRP通过专用的心跳链路(通常与数据链路分开)进行快速的心跳检测,能够比VRRP更早、更准确地感知对端设备的状态(如整机故障、接口故障、链路故障等)。


总结与考试要点

特性 VRRP (标准协议) HRP (华为私有协议)
协议层次 网络层(三层) 应用层(为防火墙定制)
主要目的 网关冗余,解决IP切换 状态化业务冗余,解决业务无缝接管
同步内容 虚拟IP、MAC地址 会话表、Server-Map、配置、ARP等
配置管理 主备设备需独立配置 主设备配置,自动同步到备机
业务影响 切换时所有连接中断 切换时已有连接不断(状态化业务)
应用场景 普通路由器、三层交换机网关备份 华为防火墙/UTM等安全设备双机热备

标准VRRP的"接口级"限制

标准VRRP确实是以接口为单位工作的:

  • 每个物理接口可以运行独立的VRRP组

  • 每个VRRP组独立选举Master/Backup

  • 一台设备可以在这个接口上是Master,在另一个接口上是Backup

问题所在 :对于防火墙这种状态化、需要看到双向流量的设备,这种接口级主备分离会导致:

  1. 三角流量问题(如上个问题解释)

  2. 状态不一致:出向流量走设备A,入向流量走设备B,防火墙会话无法建立

  3. 无法进行整机故障切换


华为防火墙双机热备技术的核心三层架构

防火墙会运行VGMP,VGMP会统一管理VRRP。

  1. VRRP - 虚拟路由器冗余协议(标准协议)

  2. VGMP - VRRP组管理协议(华为私有)

  3. HRP - 华为冗余协议(华为私有)

协议对比表格

特性 VRRP VGMP HRP
协议类型 标准协议 (RFC 3768) 华为私有协议 华为私有协议
功能定位 网关冗余 整机状态管理 业务状态同步
工作层次 网络层(接口级) 应用层(设备级) 应用层(数据级)
主要作用 虚拟IP切换 统一优先级控制 会话/配置同步
监控范围 仅VRRP心跳 接口/链路/CPU等 心跳与数据通道
切换粒度 接口级切换 整机切换 业务无缝切换
同步内容 会话表、配置、Server-Map等

"VGMP统一管理VRRP,HRP同步业务状态,三者协同实现防火墙的整机、无缝、状态化热备。"

实验拓扑

bash 复制代码
# FW1配置
user-interface console 0
idle-timeout 0    # 设置为永久不超时

interface g1/0/2
vrrp vrid 10 virtual-ip 192.168.1.200

VGMP接管VRRP选举权

1. 为什么"VRRP的优先级没有作用了"?

在标准VRRP中,选举Master的公式是:

bash 复制代码
比较优先级(priority) → 优先级相同则比较IP地址

但在华为防火墙双机热备中,VGMP会覆盖这个规则

  • 当VGMP启用后,它接管了所有VRRP组的优先级控制权

  • VGMP会动态修改每个VRRP组的优先级值

  • 实际的选举变成了:VGMP决定哪台设备是Active,然后该设备上的所有VRRP组都成为Master

示例:

bash 复制代码
# 你在接口上配置的VRRP优先级
interface GigabitEthernet1/0/1
 vrrp vrid 1 virtual-ip 192.168.1.1
 vrrp vrid 1 priority 120  # ← 这个值会被VGMP覆盖!

# VGMP运行后,实际上:
# - 如果本机VGMP状态=Active,则VRRP优先级被改为255(最高)
# - 如果本机VGMP状态=Standby,则VRRP优先级被改为1(最低)

VGMP优先级45000的含义

"优先级都是45000"指的是VGMP组本身的优先级,不是VRRP优先级。

bash 复制代码
双机热备配置示例:
FW1:
  - VGMP组优先级: 45000 (默认值)
  - VGMP状态: 由比较决定
  - 所有VRRP组: 由VGMP状态决定

FW2:
  - VGMP组优先级: 45000 (默认值)
  - VGMP状态: 由比较决定
  - 所有VRRP组: 由VGMP状态决定

选举规则:

  1. 先比较VGMP组优先级(默认都是45000,所以进入下一步)

  2. 比较HRP心跳接口的IP地址(较大者获胜)

  3. 胜者成为Active,败者成为Standby


"负载分担"的两种实现方式

方式一:基于VGMP组的负载分担(真正的负载分担)

这是通过创建两个VGMP组实现的:

bash 复制代码
# 负载分担模式配置逻辑
VGMP组1(用于内网段):
  - FW1: 优先级=45000, 状态=Active
  - FW2: 优先级=45000, 状态=Standby

VGMP组2(用于外网段):
  - FW1: 优先级=45000, 状态=Standby
  - FW2: 优先级=45000, 状态=Active

结果:
- 对于内网流量:FW1是Master,FW2是Backup
- 对于外网流量:FW2是Master,FW1是Backup
- 两台设备同时处理不同流量 → 真正的负载分担

方式二:主备模式下的"虚拟负载分担"

主备模式 下,实际上只有一台设备处理流量。但华为为了优化选举过程,默认设置VGMP优先级为45000,并通过IP地址决定主备。这不是真正的负载分担,而是主备选举的默认状态


重点看:关于华为防火墙配置HRP的主备跟负载均衡的具体方法

https://chat.deepseek.com/share/tvguhd2vv01h4wzxiz


老师上课的实验

VGMP的默认优先级是45000,所以是LB(负载分担)模式,那么怎么实现主备呢? --- 看配置

先配置双机热备

bash 复制代码
# FW1配置

# 划分安全区域
firewall zone dmz
add interface GigabitEthernet 1/0/6
q


# 按道理这里是需要去放行安全策略的,但是对于VGMP和HHRP报文在心跳线上传递的时候,是不需要放安全策略的


int g1/0/6
ip add 100.1.1.1 24


# 配置心跳线
hrp interface GigabitEthernet 1/0/6 remote 100.1.1.2

# 开启HRP
hrp enable


===========================================================================

# FW2配置

# 划分安全区域
firewall zone dmz
add interface GigabitEthernet 1/0/6


int g1/0/6
ip add 100.1.1.2 24

hrp interface GigabitEthernet 1/0/6 remote 100.1.1.1

# 开启HRP
hrp enable

查看hrp状态

bash 复制代码
display hrp state

优先级都是45000,并且状态都是active(活跃的)

这种模式就是负载分担方式(两边都可以转发数据的)

这里仅仅是配置上的主跟备,跟VGMP没有关系


1. 什么是HRP_M和HRP_S?

  • HRP_M:HRP Master(配置主设备)

  • HRP_S:HRP Slave(配置备设备)

这两个状态仅仅表示配置上的主备关系,即:

  • 配置在哪里做? 在HRP_M设备上做

  • 配置同步方向? 从HRP_M → HRP_S单向同步

2. VGMP的Active/Standby是什么?

  • Active:流量转发主设备(负责实际转发流量)

  • Standby:流量转发备设备(不转发流量,只做备份)

bash 复制代码
"配置主备(HRP_M/HRP_S) ≠ 转发主备(Active/Standby)"

场景一:正常情况(配置与转发一致)

bash 复制代码
# 这是我们期望的正常状态:
FW1: 
  - HRP状态: HRP_M    (配置主设备)
  - VGMP状态: Active   (转发主设备)
  
FW2:
  - HRP状态: HRP_S    (配置备设备)  
  - VGMP状态: Standby  (转发备设备)

特点

  • 配置在FW1上做 → 自动同步到FW2

  • 流量由FW1转发

  • 逻辑清晰,运维方便

场景二:配置与转发分离(老师强调的情况)

bash 复制代码
# 可能出现的情况:
FW1:
  - HRP状态: HRP_M    (配置主设备)
  - VGMP状态: Standby  (转发备设备) ← 注意这里!
  
FW2:
  - HRP状态: HRP_S    (配置备设备)
  - VGMP状态: Active   (转发主设备) ← 注意这里!

发生了什么?

  • 配置:仍在FW1上做,同步给FW2

  • 流量转发:由FW2负责(因为FW2是VGMP Active)

  • 业务:FW2上实际运行的配置是FW1同步过来的

为什么会这样?原因分析

1. 选举机制不同

bash 复制代码
HRP_M/HRP_S决定方式:
  - 手工配置或自动选举
  - 通过命令设置:`hrp config master` 或自动协商

VGMP Active/Standby决定方式:
  - VGMP优先级比较(`hrp priority`)
  - 如果优先级相同,比较心跳口IP地址
  - 完全独立于HRP_M/HRP_S

2. 故障切换后的状态

假设初始状态是正常的(FW1是HRP_M和Active):

  1. FW1故障(如断电)

  2. VGMP切换:FW2成为Active(转发主设备)

  3. 但HRP配置状态不变:FW1仍然是HRP_M,FW2仍然是HRP_S

  4. 当FW1恢复后,需要重新选举VGMP状态

设计哲学:职责分离

  1. 配置管理职责:HRP_M/HRP_S

    • 解决"配置在哪里维护"的问题

    • 确保配置的一致性

  2. 流量转发职责:Active/Standby

    • 解决"流量由谁转发"的问题

    • 确保转发的高可用性

实际优势

  1. 配置稳定性:即使转发设备切换,配置源不变

  2. 运维明确性:管理员始终知道应该在哪个设备上做配置

  3. 故障恢复:主设备恢复后,配置不会混乱


HRP的作用就是同步配置(安全策略、NAT策略、带宽策略),同步表项(会话表,server-map表)

配置的IP地址,静态路由,debug信息,登录设备的管理会话等信息是不需要同步。

bash 复制代码
# FW1上配置
[HRP_M]

firewall zone untrust
add interface GigabitEthernet 1/0/0
q

firewall zone trust
add interface GigabitEthernet 1/0/2

这些在HRP_M上做的配置都是(+B)同步到HRP_S上的

放行安全策略

bash 复制代码
# FW1上配置
HRP_M

security-policy 
rule name icmp
source-zone  trust
destination-zone untrust
service icmp
source-address 192.168.1.0 24
destination-address 172.16.1.0 24
action permit

如果在备配置防火墙上配置了这个命令,那么备防火墙也可以进行配置

但是我们一般都不会这么去做,防止手工配置出现冲突的情况。

bash 复制代码
# FW1上配置
HRP_M

int g1/0/0
ip address 172.16.1.254 24


int g1/0/2
ip address 192.168.1.254 24


# 配置vrrp
# 不需要配置优先级,因为现在vrrp的优先级没有用了,全部都是由VGMP统一管理
int g1/0/0
vrrp vrid 10 virtual-ip 172.16.1.200 24 active

int g1/0/2
vrrp vrid 20 virtual-ip 192.168.1.200 24 active



=================================================================

# FW2上配置
HRP_S

int g1/0/0
ip address 172.16.1.253 24


int g1/0/2
ip address 192.168.1.253 24


# 配置vrrp
# 不需要配置优先级,因为现在vrrp的优先级没有用了,全部都是由VGMP统一管理
int g1/0/0
vrrp vrid 10 virtual-ip 172.16.1.200 24 standby

int g1/0/2
vrrp vrid 20 virtual-ip 192.168.1.200 24 standby

现在优先级还是一样的

查看hrp状态

现在FW1是active,FW2是standby

因为FW1的两个口都是active,FW2的两个口都是standby

VGMP会监听所有开启vrrp的接口,如果接口的vrrp状态变为Initial,VRRP会通告给VGMP,VGMP会将优先级减2。

查看HRP状态

角色FW2变成主了,配置也变成了主了 -- 配置主备是跟设备的VGMP的active和standby有关。

相关推荐
OpsEye2 小时前
监控 100 问(四):如何实现 IT 监控自动化
运维·网络·it运维·it·监控·监控系统
九成宫2 小时前
计算机网络期末复习——第4章:网络层 Part Two
网络·笔记·计算机网络·软件工程
Godspeed Zhao2 小时前
现代智能汽车中的无线技术20——Wi-Fi(8)
网络·汽车·智能路由器
qq_254674412 小时前
HTTP/3
网络
予枫的编程笔记2 小时前
【Java进阶】Spring Security详解
java·spring security·security
状元岐2 小时前
C#上位机通信故障排查步骤手l
网络·c#
小李独爱秋2 小时前
计算机网络经典问题透视:媒体播放器与媒体服务器的AB面
运维·服务器·网络协议·计算机网络·媒体
Yyyyy123jsjs2 小时前
外汇数据接入经验分享:WebSocket实时行情实战思路
经验分享·websocket·网络协议
北海速度网络2 小时前
广东IP持续刷量攻击难根治?深度剖析PCDN流量劫持与JA3/JA4精准防护方案
服务器·网络·tcp/ip