VRRP是双机热备的基础
VRRP是一个接口概念,并不是一个整机概念
官方定义
VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议) 是一种用于实现网关设备备份 的协议。它通过将多台物理路由器组合成一个虚拟路由器,为主机提供不间断的网关服务。
一、VRRP工作原理
1. 核心概念
# VRRP中的关键角色:
虚拟路由器:逻辑上的网关(如192.168.1.1)
虚拟IP地址(VIP):网关地址(192.168.1.1)
虚拟MAC地址:格式为00-00-5E-00-01-{VRID}
主路由器(Master):当前处理流量的物理路由器
备份路由器(Backup): standby状态的物理路由器
VRID:虚拟路由器ID(1-255),同一组设备VRID相同
2. 工作流程
步骤1:选举主路由器
bash
# 启动时,所有VRRP路由器比较优先级:
1. 优先级高的成为Master(默认100,范围1-254)
2. 优先级相同则比较接口IP地址,大的成为Master
3. Master获得虚拟IP和虚拟MAC的所有权
# 配置示例:
Router-A: priority 120 → 成为Master
Router-B: priority 100 → 成为Backup
步骤2:Master定期发送通告
bash
# Master通过组播地址224.0.0.18发送VRRP通告
报文内容:
- VRID:虚拟路由器ID
- 优先级:当前优先级
- 虚拟IP地址
- 通告间隔(默认1秒)
# Backup监听通告,确认Master存活
步骤3:故障检测与切换
bash
# Backup监控Master状态:
1. 正常情况:Backup每收到Master的通告就重置计时器
2. 故障情况:如果Backup在3倍通告间隔内未收到通告
3. 触发切换:Backup中优先级最高的成为新的Master
4. 新Master:接管虚拟IP,发送免费ARP更新MAC表
# 切换时间:通常<3秒
步骤4:原Master恢复
bash
# 原故障Master恢复后:
1. 如果配置了抢占模式(默认开启):比较优先级
- 原Master优先级更高:重新抢占成为Master
- 原Master优先级更低:保持Backup状态
2. 如果不抢占:保持Backup状态
3. 数据流向
bash
主机通信流程:
1. 主机发送数据包:目的MAC = 虚拟MAC地址
2. 当前Master路由器:以自己的物理MAC响应ARP请求
3. 数据包到达Master路由器,被正常转发
4. 如果Master故障,Backup成为新Master
5. 新Master发送免费ARP,更新网络中所有设备的ARP表
6. 后续数据包自动发往新Master
二、VRRP怎么用?配置示例
1. 基础拓扑
bash
虚拟IP: 192.168.1.1/24
|
[Router-A] [Router-B]
| |
192.168.1.2 192.168.1.3
| |
-----内网主机-----
2. 华为设备配置
Router-A配置(主设备)
bash
# 进入接口配置
<Huawei> system-view
[Huawei] sysname Router-A
[Router-A] interface GigabitEthernet 0/0/0
[Router-A-GigabitEthernet0/0/0] ip address 192.168.1.2 24
# 配置VRRP
[Router-A-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.1
[Router-A-GigabitEthernet0/0/0] vrrp vrid 1 priority 120 # 设置高优先级
[Router-A-GigabitEthernet0/0/0] vrrp vrid 1 preempt-mode timer delay 5
# 开启抢占,延迟5秒(避免频繁切换)
# 可选:配置跟踪接口(高级功能)
[Router-A-GigabitEthernet0/0/0] vrrp vrid 1 track interface GigabitEthernet0/0/1 reduced 30
# 如果上行接口G0/0/1故障,优先级降低30,触发切换
Router-B配置(备设备)
bash
<Huawei> system-view
[Huawei] sysname Router-B
[Router-B] interface GigabitEthernet 0/0/0
[Router-B-GigabitEthernet0/0/0] ip address 192.168.1.3 24
# 配置VRRP(使用默认优先级100)
[Router-B-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.1
# 默认priority=100,preempt-mode开启
3. 主机配置
bash
# 所有内网主机配置:
IP地址:192.168.1.x/24
默认网关:192.168.1.1 ← 指向虚拟IP
DNS服务器:根据实际配置
# 主机完全不知道背后有两台路由器!
三、VRRP状态查看与验证
1. 查看VRRP状态
bash
# 在Router-A上查看
[Router-A] display vrrp
# 输出示例:
GigabitEthernet0/0/0 | Virtual Router 1
State : Master # 当前状态:主路由器
Virtual IP : 192.168.1.1 # 虚拟IP
Master IP : 192.168.1.2 # 主路由器实际IP
PriorityRun : 120 # 运行优先级
PriorityConfig : 120 # 配置优先级
Preempt : YES Delay Time: 5s # 抢占模式
Timer : 1s # 通告间隔
Auth Type : NONE # 认证类型
Virtual MAC : 0000-5e00-0101 # 虚拟MAC
Check TTL : YES
Config Type : normal # 配置类型
# 备份路由器上显示State: Backup
详细文章:
https://chat.deepseek.com/share/pd56y0u4hzz8xmh6kl
为什么说VRRP是接口概念?
配置在接口上
bash
# VRRP配置是在接口视图下完成的,不是系统视图
[Huawei] interface GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.1
# ↑↑↑ 看!是在接口下配置的!
状态按接口独立维护
一台路由器可以有多个接口运行VRRP ,每个接口独立选举、独立维护状态:
bash
# 示例:路由器有两个接口运行VRRP
Router-A:
- 接口G0/0/0:VRRP组1,状态=Master(管理192.168.1.0/24网段)
- 接口G0/0/1:VRRP组2,状态=Backup(管理10.0.0.0/24网段)
# 在Router-A上查看:
[Router-A] display vrrp brief
Interface VRID State Virtual IP Master IP
GigabitEthernet0/0/0 1 Master 192.168.1.1 192.168.1.2
GigabitEthernet0/0/1 2 Backup 10.0.0.1 10.0.0.3
# 看!同一台设备,不同接口VRRP状态不同!
故障影响范围限于接口
bash
# 如果Router-A的G0/0/0接口故障:
只有VRRP组1切换(192.168.1.0/24网段受影响)
VRRP组2不受影响(10.0.0.0/24网段正常)
# 如果Router-A整机断电:
所有接口的VRRP组都会切换
但这是"所有接口一起故障"的结果,不是VRRP的设计
详细解析:
https://chat.deepseek.com/share/o2rjkpeuxxsj70upjs



1. 虚拟路由器:一切的核心
-
"接口概念"的深度含义:
-
这意味着 VRRP 的绑定和运行是基于三层接口的,而不是整个路由器。一台路由器可以有多个接口,每个接口可以属于不同的 VRRP 组,扮演不同的角色(Master/Backup)。
-
实战意义 :你可以实现负载分担。例如,Router A 在 VLAN 10 的 VRRP 组 1 中是 Master,在 VLAN 20 的 VRRP 组 2 中是 Backup;Router B 则相反。这样流量可以分摊到两台设备上。
-
-
虚拟IP与虚拟MAC的协同:
-
虚拟IP(VIP):这是对"上层"(用户主机)的承诺。所有主机的网关都指向这个永不变化的 IP。
-
虚拟MAC(VMAC) :这是对"下层"(交换机)的标识。
0000.5E00.01XX是 IEEE 分配的 VRRP OUI。交换机通过学习,将 VMAC 的端口指向当前 Master 设备。 -
关键交互 :当用户主机发送 ARP 请求问"VIP 的 MAC 是什么"时,只有 Master 会用自己的物理接口 MAC (注意:这里笔记有简化,实际过程更精巧 )来回应一个 ARP Reply ,但这个 Reply 里携带的源 MAC 地址是虚拟MAC。这样主机和交换机的 ARP 表里,VIP 对应的就是 VMAC。所有去往网关的流量,二层帧的目的 MAC 都是 VMAC。
-
为什么这么设计? 如果 Master 用物理 MAC 回应,当 Master 切换时,所有主机的 ARP 缓存需要超时或广播更新,切换时间长(分钟级)。而使用 VMAC,只要 Backup 成为新 Master,它立刻就能以同一个 VMAC 接收和处理数据帧,实现了秒级甚至亚秒级切换,对上层完全透明。
-
2. & 3. Master/Backup:状态机与角色行为
-
状态机 :VRRP 协议本质是一个状态机,有三种状态:Initialize, Master, Backup。
-
Initialize:初始状态或接口 shutdown。
-
Master :设备正在行使网关功能。它必须周期性(Advertisement Interval)发送 VRRP 通告报文,以宣告自己存活。
-
Backup :设备监听 Master 的通告。如果超过 Master-Down Timer 没收到通告,则认为 Master 失效,发起选举进入 Master 状态。
-
-
"静默"的深层原因:
-
Backup 不响应 ARP 请求:这是为了防止 ARP 冲突和混乱。想象一下,如果两个设备都回应同一个 VIP 的 ARP,网络中就会存在两个"网关",导致不可预知的转发行为。
-
Backup 不处理目的为 VMAC 的数据帧:在二层,交换机已经将 VMAC 绑定到 Master 的物理端口,所以流量根本不会到达 Backup 的接口。Backup 即使收到,也会丢弃,这是协议栈的规则。
-
4. Master 选举:不仅仅是优先级
-
抢占模式(Preempt):
-
默认开启。当更高优先级的 Backup 上线或恢复后,它会等待一个很短的时间(Skew Time),然后发送 VRRP 报文,触发重新选举,夺回 Master 身份。
-
可以关闭。关闭后,除非当前 Master 故障,否则即使高优先级的设备恢复,也不会抢夺 Master 身份。这适用于希望保持网络稳定的场景,避免因主设备短暂波动导致的反复切换。
-
5. Master-Down 计时器:可靠性数学
-
公式:
3 * Advertisement_Interval + (256 - Priority) / 256-
3 * Advertisement_Interval:这是基础检测时间 。连续错过 3 个通告报文,才认为 Master 故障。这是一种简单的容错机制,避免因单个报文丢失(网络拥塞)导致的误切换。 -
Skew Time = (256 - Priority) / 256:这是偏移时间,单位是秒。- 设计精妙之处 :优先级越高的设备,Skew Time 值越小。这意味着在 Master 失效后,优先级最高的 Backup 会最先超时,从而最先发起选举成为新 Master。这保证了选举的确定性和快速性,避免了多个 Backup 同时发起选举可能产生的冲突。
-
6. 报文:协议交互的载体
-
组播地址
224.0.0.18:- 这是链路本地范围的管理组播地址(TTL=1),只在同一广播域(VLAN)内传播,不会被路由器转发。这保证了 VRRP 的会话仅限于直连的、需要参与冗余的几台设备之间,安全且高效。
-
目的MAC
0100.5E00.01XX:- 这是将组播 IP
224.0.0.18映射成的组播 MAC(根据 IEEE 规则)。注意,这里的XX也是 VRID。这个 MAC 用于传递 VRRP 协议报文本身 ,而前面提到的0000.5E00.01XX虚拟 MAC 是用于承载用户数据流量的。两者不同,不要混淆。
- 这是将组播 IP
7. 优先级:控制的把手
-
0 的特殊用途 :Master 如果想主动放弃身份(如管理员手动降级、或监控的上行链路失效),可以立即发送一个优先级为 0 的通告报文。Backup 收到后,会立即意识到 Master 主动退位,从而快速触发选举,无需等待 Master-Down 计时器超时。
-
255 的自动赋值 :如果 VRRP 虚拟 IP 就是路由器接口配置的真实 IP (即 IP 地址所有者),则该路由器在此 VRRP 组中的优先级自动为 255,并且不可更改。这保证了拥有"真实地址"的设备在可用时永远为 Master,因为它的转发路径最优化(无需绕行)。
-
优先级与跟踪(Track) :这是 VRRP 高级应用的核心 。可以配置监控上行链路或路由。如果被监控项失效,Master 或 Backup 可以自动降低自己的优先级。例如,Master 的上行出口断掉,它可以通过降低优先级触发切换,让拥有完好上行链路的 Backup 接管,实现端到端的可靠性,而不仅仅是网关设备本身的冗余。
关于优先级255的分析
https://chat.deepseek.com/share/vclmabtclkvpnbc74n
状态机



华为的HRP是想让VRRP从接口概念变成整机概念。如果是接口概念的话,可能会出现Master不同,需要通过track追踪才行。