VGMP统一管理VRRP
知识点一:华为防火墙双机热备接口要求
在配置华为防火墙双机热备时,主设备和备用设备的业务接口、心跳接口在类型、编号、位置等方面都必须完全一致。这不是一个可有可无的建议,而是双机热备能够正常工作的强制性前提条件。
🧠 核心原因:配置是"照搬"过去的
理解这个问题,首先要明白华为双机热备的配置备份机制。
两台防火墙之间通过心跳线连接,运行HRP(华为冗余协议)。当在主用设备上执行一条命令时,这条命令会通过心跳线实时同步到备用设备上。
HRP协议备份的是配置命令本身,而不是根据配置产生的转发逻辑。
⚙️ 接口不一致会引发什么问题?
如果接口不一致,HRP协议在"照搬"配置时就会遇到麻烦。
🔧 问题一:配置命令无法"落地"
场景示例:
主用设备:业务接口是
GigabitEthernet 1/0/1备用设备:对应的业务接口是
GigabitEthernet 1/0/5
当主用设备上执行了配置interface GigabitEthernet1/0/1后,HRP协议会将这条命令原封不动地发送给备用设备。备用设备收到后,会在自己的系统里寻找名为GigabitEthernet1/0/1的接口。如果找不到(例如它的接口叫GigabitEthernet1/0/5),这条配置就会应用失败。
🔄 问题二:状态信息"索引"错乱
这个问题比配置命令无法落地更隐蔽,也更严重。防火墙内部会为接口、VLAN、安全区域等生成一个内部的索引号(ID)。
华为官方的技术案例文档中明确指出:即使两台防火墙上接口的数量和类型相同,但如果创建顺序不同,它们的内部索引号也可能不一致,导致主备设备的状态信息无法同步。
案例说明:
在某项目中,工程师发现所有配置都已同步,但双机热备状态仍不正常。研发人员定位后发现,原因是两台防火墙上的子接口和域(Zone)的内部索引号不完全一致。即使删除了多余的配置,这个内部索引号也不会自动重新分配,最终只能将两台防火墙的所有子接口和域配置全部删除后重新配置,才解决问题。
这个案例说明了一个关键点:接口一致不仅仅是"有没有",还包括"怎么有"——配置的顺序和方式都需要保持一致。
📋 接口一致的具体要求
华为官方文档对"接口一致"提出了非常具体的要求:
| 一致性要求 | 具体说明 |
|---|---|
| 硬件物理一致 | 两台设备型号相同,接口卡(单板)的类型、数量、安装槽位完全相同 |
| 接口编号一致 | 主用设备的G1/0/1对应备用设备的G1/0/1,依此类推 |
| 接口类型一致 | 同为三层路由口或同为二层交换口。如果使用Eth-Trunk,成员接口也必须相同 |
| 安全区域一致 | G1/0/1在A设备加入Trust区域,在B设备也必须加入Trust区域 |
| 心跳接口一致 | 心跳接口的编号、IP地址、MTU(必须为1500)等配置必须完全对应 |
知识点二:VGMP,VRRP的状态区分
一句话先给结论:
VRRP 负责“接口级”的虚拟 IP 通断,VGMP 负责“设备级”的主备决策并强制统一所有 VRRP 组的状态,HRP 负责“数据级”的会话同步。
下面用“总指挥 — 各地执行员 — 后勤部”的比喻,把三者的关系彻底讲清楚。
一、为什么会有两套状态?—— 因为防火墙是“有状态”的设备
普通路由器/交换机做 VRRP,只需要让 Master 响应虚拟 IP 即可,设备本身没有“连接状态”需要同步。
但防火墙不同:每一个经过的 TCP/UDP 连接都会生成会话表。如果主备切换后新设备没有会话表,之前所有连接都会断。
因此防火墙需要:
VRRP:保证虚拟 IP 和虚拟 MAC 正确接管(标准功能)。
VGMP:统一控制所有 VRRP 组的状态,避免“内网 Master 在 A,外网 Master 在 B”的状态分裂。
HRP:将主设备的会话表、Server-map 等状态同步到备设备。
这三者角色不同,所以各自有各自的状态。
二、VGMP 的状态:Active / Standby(设备级)
VGMP(VRRP Group Management Protocol)是华为私有的,用来管理整台防火墙的主备角色。
Active:本机是“主用设备”,负责转发流量、响应所有 VRRP 组的 ARP。
Standby:本机是“备用设备”,不转发流量,只接收 HRP 同步的数据,随时准备切换。
VGMP 状态是如何决定的?
通过心跳线协商,比较两台设备的VGMP 优先级(初始相同;当某个业务接口 down、故障等会降低优先级)。优先级高的成为 Active,低的成为 Standby。
VGMP 的核心权力:它强制将自己管理的所有 VRRP 备份组的状态与自己保持一致。
如果本机 VGMP = Active → 强制本机上所有 VRRP 组变成Master。
如果本机 VGMP = Standby → 强制本机上所有 VRRP 组变成Backup。
三、VRRP 的状态:Master / Backup(接口级)
VRRP 是标准协议,负责单个接口上的虚拟 IP 冗余。在没有 VGMP 的普通设备上,VRRP 组独立选举 Master。
但在华为双机热备模式下,VRRP 的选举结果被 VGMP 覆盖:
VGMP 会篡改 VRRP 通告报文中的优先级(Active 设备通告极高优先级,Standby 设备通告极低优先级),从而使得 Active 设备上的所有 VRRP 组都成为 Master,Standby 设备上的都成为 Backup。
所以 VRRP 的状态实际上是 VGMP 状态的“投影”,两者永远一致(Active ↔ Master,Standby ↔ Backup)。只是作用范围不同:VGMP 是整机,VRRP 是每个接口。
四、HRP 的状态:与 VGMP 联动,没有独立状态
HRP(华为冗余协议)负责数据同步:会话表、Server-map、用户状态等。
当本机 VGMP = Active 时,HRP 处于“发送”模式:将新产生的会话表项实时发送给对端。
当本机 VGMP = Standby 时,HRP 处于“接收”模式:接收并学习 Active 发来的状态数据,不主动发送。
HRP 没有独立的 Master/Backup 状态,它只是 VGMP 的“马仔”,跟随 VGMP 的角色行动。
五、三者的决策链条(从大到小)
心跳线协商 → 决定 VGMP 状态 (Active / Standby) │ ├── 强制控制 → 所有 VRRP 状态 (Master / Backup) │ └── 触发 HRP 同步方向 (发送 / 接收)VGMP:总指挥,决定设备主备。
VRRP:各地执行员,确保虚拟 IP 在主设备上生效。
HRP:后勤部,将主设备的会话数据同步到备设备。
VGMP 是老板(决定整机谁说了算),VRRP 是员工(各接口听老板指挥),HRP 是秘书(把老板的数据同步给副手)。
知识点三:负责分担模式
在主备备份模式下,VGMP Active 的设备在所有 VRRP 组中都是 Master,VGMP Standby 的设备在所有 VRRP 组中都是 Backup —— 两者完全一致。
在负载分担模式下,VGMP 依然会选举出一个 Active 和一个 Standby(设备级),但是VGMP 允许手工或自动地将某些 VRRP 组的角色“反转”,使得:
VGMP Active 的设备,在部分 VRRP 组中故意变成Backup。
VGMP Standby 的设备,在部分 VRRP 组中故意变成Master。
结果:一台设备同时拥有 Active(设备级)和 Backup(接口级)的身份,另一台同时拥有 Standby(设备级)和 Master(接口级)的身份
VGMP 如何实现“Active 设备也可以是 Backup”?
VGMP 有一个关键特性:它可以强制指定某个 VRRP 备份组是否“与 VGMP 状态保持一致”。
默认情况下,VGMP Active 的设备,其所有 VRRP 组都是 Master;VGMP Standby 的设备,所有 VRRP 组都是 Backup(主备模式)。
在负载分担模式下,通过配置
vrrp vrid <id> track或vgmp-group下的vrrp-group配置,可以设置某些 VRRP 组为“备份增强”或“对等”模式,使其角色与 VGMP 状态相反。
知识点三:主备备份模式
VGMP的默认优先级是45000,所以是负载分担模式,怎么实现主备模式: [FW1]firewall zone dmz [FW1]add interface g1/06 [FW1]int g1/0/6 [FW1]ip add 100.1.1.1 24 [FW1]hrp interface g1/0/6 remote 100.1.1.2 [FW1]hrp enable [FW2]firewall zone dmz [FW2]add interface g1/06 [FW2]int g1/0/6 [FW2]ip add 100.1.1.2 24 [FW2]hrp interface g1/0/6 remote 100.1.1.1 [FW2]hrp enable VGMP和HRP报文在心跳线上传递是不需要放安全策略的,上面这种方式是负载分担模式,两边都可以转发数据的,FW1出现的HRP_M,跟FW2出现HRP_S这是配置主跟配置备,配置主是可以配置安全策略的,FW2是不能配置的,仅仅是配置,这里的主备跟VGMP没有关系,HRP可以同步配置(安全策略,NAT策略,带宽策略)跟表项(会话表,server map表) 然后在FW1上放行安全策略 HRP_M[FW1]security-policy HRP_M[FW1]rule name icmp HRP_M[FW1]source-zone trust HRP_M[FW1]destionation-zone untrust HRP_M[FW1]service icmp HRP_M[FW1]source-address 192.168.1.0 24 HRP_M[FW1]destionation-address172.16.1.0 24 HRP_M[FW1]action permit 这个安全策略会同步到[FW2],配置的IP地址,路由,是不会同步过去的 HRP_M[FW1]int g1/0/0 HRP_M[FW1]ip add 172.16.1.254 24 HRP_M[FW1]int g1/0/2 HRP_M[FW1]ip add 192.168.1.254 24 HRP_M[FW1]int g1/0/0 HRP_M[FW1]vrrp vrid 10 virtual-ip 172.16.1.200 active(不需要配置优先级,优先级没有用,全部都是由VGMP管理) HRP_M[FW1]int g1/0/2 HRP_M[FW1]vrrp vrid 20 virtual-ip 192.168.1.200 active HRP_M[FW2]int g1/0/0 HRP_M[FW2]ip add 172.16.1.253 24 HRP_M[FW2]int g1/0/2 HRP_M[FW2]ip add 192.168.1.253 24 HRP_M[FW2]int g1/0/0 HRP_M[FW2]vrrp vrid 10 virtual-ip 172.16.1.200 standby HRP_M[FW1]int g1/0/2 HRP_M[FW1]vrrp vrid 20 virtual-ip 192.168.1.200 standby 现在dis hrp state ,两台防火墙的优先级还都是一样的45000 但是FW1变成active,FW2变成standby FW1的两个口都是active,那么肯定认为FW1是主,对端FW2的两个口是standby,就认为是备。 VGMP会侦听开启VRRP的接口,如果接口的VRRP状态变为inital,VRRP会通告给VGMP,VGMP会对应讲优先级减少2,这样的话主备就会切换过来,配置主备的角色也会发生转变,配置主备是跟VGMP的active跟standby有关。华为防火墙双机热备的核心机制:VGMP + HRP + VRRP
一、先厘清三个核心角色及其关系
| 角色 | 全称 | 作用 | 层级 | 状态/模式 |
|---|---|---|---|---|
| VGMP | VRRP Group Management Protocol | 管理设备上所有VRRP组,决定整台设备的主备角色(active/standby) | 设备级 | 优先级比较(默认45000),高者active |
| HRP | Huawei Redundancy Protocol | 负责主备设备之间的配置同步和状态表项同步(会话表、Server-map等) | 数据同步层面 | 跟随VGMP:active端可配置(HRP_M),standby端只接收(HRP_S) |
| VRRP | Virtual Router Redundancy Protocol | 在接口上虚拟一个网关IP,决定单个接口的虚拟网关由谁响应(active/standby,老师用了这两个词,实际是master/backup) | 接口级 | 通过配置指定为active(主)或standby(备) |
关键理解:
VGMP 是“老板”,它定了整台设备是主(active)还是备(standby)。
VRRP 是“员工”,每个接口的VRRP角色本可以独立选举,但在双机热备模式下,VGMP会强制覆盖接口的VRRP角色(除非特意配置为反向)。
HRP 是“秘书”,主设备上的配置和会话表会自动抄送给备设备。
二、优先级
1. “VGMP的默认优先级是45000,所以是负载分担模式”
VGMP优先级:两台设备初始都是45000,相等。此时如何决定谁是active?通常比较设备本身的优劣势(例如设备硬件序列号、IP地址等),或者等第一个VRRP接口协商结果。在默认优先级相等的情况下,可以通过配置让两台设备各自主导一部分VRRP组,从而实现负载分担。如果希望主备模式(一台永远active,另一台永远standby),则需要人为抬高其中一台的VGMP优先级(例如通过
hrp priority命令),或者直接使用“配置主备”概念。实际上,负载分担模式的实现并不依赖VGMP优先级的不同,而是依赖在每个接口VRRP配置中分别指定
active和standby(老师配置中用了vrrp vrid 10 virtual-ip ... active和standby)。即便VGMP优先级相等,只要接口VRRP角色配置成“你主我备、我主你备”,流量就能自动分担。
| 配置场景 | 能否 ping 通 | 原因 |
|---|---|---|
| 无 HRP,有安全策略 + service-manage | ✅ 能通 | 正常处理流程 |
| 无 HRP,缺少任一条件 | ❌ 不通 | 要么被安全策略拦截,要么被 service-manage 拦截 |
| 有 HRP 配置(指定 hrp interface) | ❌ 不通(即使配了所有策略) | HRP 接口底层过滤非 HRP 报文,优先级最高 |
VRRP是被VGMP统一管理的
知识点四:心跳线如果出现故障,会出现双主
心跳线很重要,一般都会做链路聚合
心跳口的状态
心跳接口的状态,可以直接用display hrp state命令来查看。下面是一张速查表,涵盖了5种可能的HRP状态及对应含义
HRP状态(State) | 核心含义与对业务的影响 |
|---|---|
Active | 主用角色,工作正常。心跳链路是通的。这台设备是“主角”,专心处理业务即可。 |
Standby | 备用角色,工作正常。心跳链路通的。它是“配角”,随时待命(Standby)。 |
INITIALIZE | 双机热备功能未完全就绪。可能原因包括:1. 未启用hrp enable;2. 未正确配置心跳接口;3. 两台设备配置不一致。此时配置和会话不会同步,系统处于“亚健康”状态。 |
RUNNING | “运行中”,但主备角色未确定。设备刚启动或心跳刚恢复时可能出现。此时业务可能还未完全接管。 |
UNKNOWN | 完全无法建立心跳联系。这是最严重的故障状态,主备角色冲突,系统可能无法稳定工作。 |
知识点五:HRP
知识点六:主要场景分析
防火墙工作在路由模式
(1)上下接交换机
(2)上接交换机下接路由器
(3)上下接路由器
防火墙工作在透明模式
华为防火墙双机热备核心知识点系统梳理
VGMP 的 Active/Standby与VRRP 配置中的 active/standby是两个不同层次、不同作用的概念,却用了相同的英文单词。下面把整个知识体系按“从高到低、从全局到局部”的顺序重新搭建,保证逻辑清晰。
一、先记住三个核心角色
| 角色 | 全称 | 作用范围 | 核心职责 | 层级关系 | 状态标识 |
|---|---|---|---|---|---|
| VGMP | 虚拟网关管理协议 | 整台设备(全局) | 决定设备主备(Active/Standby),统一管控所有 VRRP 组,触发故障切换,管理 HRP 同步方向 | 最高决策者(总经理) | Active/Standby |
| HRP | 华为冗余协议 | 两台设备间(数据链路) | 保活检测、会话表 / ARP/Server-map 同步、配置同步、故障通知 | 执行者(秘书) | HRP_M(主)/HRP_S(备) |
| VRRP | 虚拟路由冗余协议 | 单个接口 / 子接口(局部) | 为每个 VLAN 提供虚拟网关,决定该网关的 Master/Backup,转发终端流量 | 被管理者(部门经理) | Master/Backup |
核心关系铁律(必须刻在脑子里)
- VGMP 状态决定 HRP 角色:VGMP=Active → 设备为 HRP_M(配置主,可写配置);VGMP=Standby → 设备为 HRP_S(配置备,只读配置)
- VRRP 状态默认跟随 VGMP:华为防火墙默认开启VRRP 强制绑定 VGMP,VGMP=Active 的设备上所有 VRRP 组自动为 Master,Standby 设备上所有 VRRP 组自动为 Backup
- HRP 是 VGMP 的底层支撑:没有 HRP 心跳,VGMP 无法协商状态,会导致双主冲突(两台设备都认为自己是 Active)
二、VGMP 如何分出 Active 和 Standby?(设备级主备选举)
VGMP 通过 HRP 心跳线交换通告报文,按 “优先级→健康状态→IP 地址” 三步选举,规则清晰无歧义:
1. 选举三要素(优先级最高)
- 基础优先级:手动配置,取值 1–50000,默认 45000,数值越大越优先
- 健康状态:优先级相同时,比较故障接口数量,故障少的优先
- 心跳 IP 地址:前两项都相同,比较心跳接口 IP,IP 地址大的成为 Active
2. 优先级动态调整(故障触发切换的核心)
VGMP 会监控所有开启 VRRP 的业务接口,当接口故障导致 VRRP 状态变为 Initialize 时:
- 默认优先级自动减 2(可通过
hrp track interface配置调整减值)- 多次故障累减,直到低于对端优先级,触发主备切换
3. 查看与验证命令
# 查看VGMP状态、HRP角色、优先级 display hrp state # 查看VRRP组状态(验证是否跟随VGMP) display vrrp brief三、主备模式 vs 负载分担模式 — 本质区别
两种模式的核心差异在于VRRP 组是否与 VGMP 状态强制绑定,而非 VGMP 是否存在(两种模式都有 VGMP 选举):
① 主备模式(单 VGMP 组,经典热备)
- 核心配置:所有 VRRP 组不配置
active/standby,默认跟随 VGMP 状态- 状态表现:VGMP Active 设备上所有 VRRP 组 = Master,Standby 设备上所有 VRRP 组 = Backup
- 流量转发:单台设备承载全部业务,备机仅同步数据,不转发流量
- 适用场景:小流量、高稳定需求,配置简单,可靠性高
- 优点:切换速度快,无流量乱序风险;缺点:设备利用率低(50%)
② 负载分担模式(多 VGMP 组或 VRRP 独立配置)
- 核心配置:手动为不同 VRRP 组配置
active/standby,并关闭部分 VRRP 组的 VGMP 强制绑定(undo vrrp vrid X gmp bind)- 状态表现:不同 VRRP 组在两台设备上交叉成为 Master(如 FW1 的 VRID10=Master,VRID20=Backup;FW2 则相反)
- 流量转发:两台设备同时转发不同网段流量,互为主备
- 适用场景:多网段、大流量,需要提高设备利用率
- 优点:资源利用率高(接近 100%);缺点:配置复杂,需避免来回路径不一致
两种模式对比表
| 对比项 | 主备模式 | 负载分担模式 |
|---|---|---|
| VGMP 与 VRRP 关系 | VRRP 强制跟随 VGMP | 部分 VRRP 组独立于 VGMP |
| 配置要点 | 不写 VRRP active/standby | 写 VRRP active/standby + 解绑 VGMP |
| 设备状态 | 一主一备全局统一 | 交叉主备,局部独立 |
| 流量分布 | 单台承载所有流量 | 两台分担不同网段流量 |
| 切换行为 | 整机切换,所有 VRRP 组同步 | 局部切换,仅故障网段切换 |
| 配置复杂度 | 低 | 高 |
| 设备利用率 | 低(50%) | 高(100%) |
四、多网段 VRRP 组区分与配置
1. 多网段区分核心:VRID + 子接口
- VRID:虚拟路由器 ID,同一广播域内唯一,建议与 VLAN ID 一致(如 VLAN10→VRID10,VLAN20→VRID20)
- 子接口:每个 VLAN 对应一个子接口,配置独立 IP 和 VRRP 组,实现网段隔离
2. 主备模式完整配置示例
网络拓扑(先明确环境)
| 设备 | 心跳口(G1/0/0) | 业务口(G1/0/1) | 业务子接口 |
|---|---|---|---|
| FW1 | 10.0.0.1/24 | 物理口,连接交换机 | G1/0/1.10(VLAN10,192.168.1核心目标0.254/24)、G1/0/1.20(VLAN20,192.168.20.254/24) |
| FW2 | 10.0.0.2/24 | 物理口,连接交换机 | G1/0/1.10(VLAN10,192.168.10.253/24)、G1/0/1.20(VLAN20,192.168.20.253/24) |
核心目标
- FW1 正常情况下为VGMP Active(主设备),所有 VRRP 组为 Master
- FW2 正常情况下为VGMP Standby(备设备),所有 VRRP 组为 Backup
- 故障时自动切换,切换后业务无感知
FW1 配置(整机主设备 Active)
FW2 配置(整机备设备 Standby)
# 1.心跳接口配置 interface GigabitEthernet 1/0/0 ip address 10.0.0.2 255.255.255.0 firewall zone hrp add interface GigabitEthernet 1/0/0 # 2.VGMP核心配置(保留默认45000) hrp preempt enable hrp preempt delay 30 hrp session enable hrp enable # 3.业务VRRP配置,虚拟IP和FW1完全一致,实IP不同 interface GigabitEthernet 1/0/1.10 vlan-type dot1q 10 ip address 192.168.10.253 255.255.255.0 vrrp vrid 10 virtual-ip 192.168.10.1 interface GigabitEthernet 1/0/1.20 vlan-type dot1q 20 ip address 192.168.20.253 255.255.255.0 vrrp vrid 20 virtual-ip 192.168.20.1 # 4.链路监控 hrp track interface GigabitEthernet 1/0/13. 负载分担模式配置示例(关键差异)
1. 主备模式(你已经学会)
- 所有 VRRP 组 → 强制绑定 VGMP
- 整机 VGMP=Active → 所有 VRRP=Master
- 整机 VGMP=Standby → 所有 VRRP=Backup
- 一台干活,一台闲着
2. 负载分担模式(本次实验)
- 效果:两台防火墙同时转发流量,互为主备
- 依旧保留 VGMP 整机状态(负责故障检测、会话同步)
设备与接口规划
| 设备 | 心跳口 G1/0/0 | 业务口 G1/0/1 | 网段规划 |
|---|---|---|---|
| FW1 | 10.0.0.1/24 | 子接口:10.1.10、1.20 | VLAN10:192.168.10.0/24VLAN20:192.168.20.0/24 |
| FW2 | 10.0.0.2/24 | 子接口:1.10、1.20 | 同上 |
实验目标
- VLAN10 网关主设备 = FW1(流量走 FW1)
- VLAN20 网关主设备 = FW2(流量走 FW2)
- 两台防火墙同时工作 → 负载分担
- 任意一台故障,另一台全量接管 → 业务不中断
两台防火墙先配好HRP 心跳、VGMP(默认 45000)、会话同步(和主备模式完全一样,VGMP 不用改优先级)
第一步:FW1 基础配置(心跳 + HRP)
# 1. 配置心跳接口 interface GigabitEthernet1/0/0 ip address 10.0.0.1 24 firewall zone hrp add interface GigabitEthernet1/0/0 # 2. 启用HRP(VGMP默认45000,不用改) hrp session enable hrp enable第二步:FW1 业务口配置(负载分担核心)
# VLAN10 子接口 interface GigabitEthernet1/0/1.10 vlan-type dot1q 10 ip address 192.168.10.254 24 vrrp vrid 10 virtual-ip 192.168.10.1 # 虚拟网关 undo vrrp vrid 10 gmp bind # 【核心】解绑VGMP vrrp vrid 10 active # 【核心】指定本机是VLAN10主网关 # VLAN20 子接口 interface GigabitEthernet1/0/1.20 vlan-type dot1q 20 ip address 192.168.20.254 24 vrrp vrid 20 virtual-ip 192.168.20.1 vrrp vrid 20 standby # 指定本机是VLAN20备网关第一步:FW2 基础配置(心跳 + HRP)
# 1. 配置心跳接口 interface GigabitEthernet1/0/0 ip address 10.0.0.2 24 firewall zone hrp add interface GigabitEthernet1/0/0 # 2. 启用HRP hrp session enable hrp enable第二步:FW2 业务口配置(与 FW1 完全相反)
# VLAN10 子接口 interface GigabitEthernet1/0/1.10 vlan-type dot1q 10 ip address 192.168.10.253 24 vrrp vrid 10 virtual-ip 192.168.10.1 undo vrrp vrid 10 gmp bind vrrp vrid 10 standby # VLAN10备网关 # VLAN20 子接口 interface GigabitEthernet1/0/1.20 vlan-type dot1q 20 ip address 192.168.20.253 24 vrrp vrid 20 virtual-ip 192.168.20.1 vrrp vrid 20 active # VLAN20主网关