一、协议本质与演进
1.1 核心价值
- 核心问题:解决单网关场景下的SPoF(Single Point of Failure 单点故障)
- 实现方式:通过VRRP组虚拟化多台物理设备为逻辑路由器
- 典型组网:
graph TD Client-->|Default Gateway|VIP(192.168.1.254) VIP-->Master(Router1-Master) VIP-->Backup(Router2-Backup)
1.2 协议版本对比
特性 | VRRPv2 (RFC3768) | VRRPv3 (RFC5798) |
---|---|---|
地址支持 | IPv4 only | IPv4/IPv6双栈 |
认证机制 | 明文认证 | 无认证/IPSEC |
TTL值 | 固定255 | 可配置 |
通告报文 | 224.0.0.18 | 协议独立组播地址 |
二、关键技术解析
2.1 虚拟实体生成
- 虚拟MAC生成规则:
def generate_vmac(vrid): return "00-00-5E-00-01-{:02X}".format(vrid)
虚拟mac地址自动生成,生成规则为00-00-5E-00-01-vrid(16进制)
- VIP配置原则:
- 必须与物理接口同网段
- 不能是接口实际IP(华为设备限制)
2.2 主备选举机制
1)选举流程图
graph TD
A[启动选举] --> B{优先级比较?}
B -->|Master=255| C[立即抢占]
B -->|Priority_A > Priority_B| D[A成为Master]
B -->|Priority相等| E[比较接口IP地址]
E -->|IP较大者| D
节点定义与接口状态关联
节点 | 技术含义 | 对应图中接口状态验证 |
---|---|---|
A | VRRP协议初始化阶段 | 所有接口PHY/Protocol=UP(具备选举资格) |
B | 优先级比较逻辑单元 | 需通过display vrrp 查看实际优先级 |
C | 最高优先级(255)设备的强制抢占 | 若配置VIP=接口IP,自动触发此路径 |
D | 常规优先级胜出设备 | 对应Eth-Trunk0的主设备选举结果 |
E | IP地址比较的最终决策 | 需检查接口实际IP(图中未显示) |
2)关键参数
- 优先级范围:1-255(0表示主动释放Master角色)
- 特殊值:
- 255:IP地址拥有者优先级(接口IP=VIP时自动获得)
- 100:默认优先级
2.3 状态切换控制
1)计时器公式:
Master_Down_Time = (3 × Advertisement_Interval) + (256 - Priority)/256
补充:
若在一个Master-down计时器(默认3.6s)的时间内没有收到主设备的报文,则认定主设备失效,将重新选举一个设备为主设备。
Master-down计时器机制:通过计算周期时间和优先级获得,计算公式为:3 × 周期时间 + (256 - 优先级) / 256。后者为偏移时间,意味着优先级越高的设备,偏移时间越小,则Master-down计时器时间越小,即优先发送VRRP报文成为主设备。
2)抢占模式:
# 华为设备配置示例
interface Vlanif10
vrrp vrid 1 preempt-mode timer delay 20 # 延迟抢占
注意:VRRP默认抢占模式,但是仅针对优先级生效。
三、VRRP配置
3.1 实验拓扑
3.2 实验要求
(1)实现PC1能够访问R1的环回1.1.1.1/24。
(2)配置VRRP,其中R3为主设备。
(3)模拟R3接口故障,测试故障转移。
3.3 实验配置
1)基础配置
R1:
# 配置接口IP地址
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ip add 12.0.0.1 24
[r1-GigabitEthernet0/0/0]int g0/0/1
[r1-GigabitEthernet0/0/1]ip add 13.0.0.1 24
[r1-GigabitEthernet0/0/1]int l0
[r1-LoopBack0]ip add 1.1.1.1 24
[r1-LoopBack0]q
# 配置静态路由
[r1]ip route-static 192.168.1.0 24 12.0.0.2
[r1]ip route-static 192.168.1.0 24 13.0.0.2
R2:
# 配置接口IP地址
[r2]int g0/0/0
[r2-GigabitEthernet0/0/0]ip add 12.0.0.2 24
[r2-GigabitEthernet0/0/0]int g0/0/1
[r2-GigabitEthernet0/0/1]ip add 192.168.1.1 24
[r2-GigabitEthernet0/0/1]q
# 配置静态路由
[r2]ip route-static 0.0.0.0 0 12.0.0.1
R3:
# 接口IP
[r3]int g0/0/1
[r3-GigabitEthernet0/0/1]ip add 13.0.0.2 24
[r3-GigabitEthernet0/0/1]int g0/0/2
[r3-GigabitEthernet0/0/2]ip add 192.168.1.2 24
[r3-GigabitEthernet0/0/2]q
# 静态路由
[r3]ip route-static 0.0.0.0 0 13.0.0.1
PC1和PC2:
需要注意的是PC端网关填VIP,即虚拟网关。
2)配置VRRP
R2:
# 配置虚拟IP
[r2]int g0/0/1
[r2-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 192.168.1.3
R3:
# 配置虚拟IP
[r3]int g0/0/2
[r3-GigabitEthernet0/0/2]vrrp vrid 1 virtual-ip 192.168.1.3
注意:所有需要协同工作的设备的接口在配置时,VRID和虚拟IP地址必须配置成一样的。
查看VRRP配置:
[r2]display vrrp
补充:
其中要注意的是Preempt为抢占模式(仅针对优先级),以及PriorityRun和PriorityConfig分别表示实际允许优先级和配置优先级。所以即使R3IP地址大于R2但是R2先配置VRRP已经成为了Master,由于初始优先级相同无法抢占
3)配置R3成为主设备
# 修改优先级
[R3-GigabitEthernet0/0/2]vrrp vrid 1 priority 110
# 查看是否成为主设备
[R3-GigabitEthernet0/0/2]dis vrrp
GigabitEthernet0/0/2 | Virtual Router 1
State : Master
Virtual IP : 192.168.1.3
Master IP : 192.168.1.2
PriorityRun : 110
PriorityConfig : 110
MasterPriority : 110
Preempt : YES Delay Time : 0 s
TimerRun : 1 s
TimerConfig : 1 s
Auth type : NONE
Virtual MAC : 0000-5e00-0101
Check TTL : YES
Config type : normal-vrrp
Backup-forward : disabled
Create time : 2025-03-29 15:16:54 UTC-08:00
Last change time : 2025-03-29 15:27:06 UTC-08:00
华为VRRP特性说明
虚拟IP与物理IP共存规则
- 特殊权限:当配置的虚拟IP(VIP)与某物理接口IP完全相同时:
- 该接口自动获得255优先级(最高权限)
- 此优先级不可通过手工配置覆盖(最大可配优先级为254)
4)配置上行链路监控
# 若上行链路故障,则优先级减少20
[r3-GigabitEthernet0/0/2]vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduc
ed 20
# 配置抢占延迟,一般配置在主设备上
[r3-GigabitEthernet0/0/2]vrrp vrid 1 preempt-mode timer delay 20
5)测试
PC1 访问 R1:
[r3-GigabitEthernet0/0/2]undo shutdown
[r3-GigabitEthernet0/0/2]int g0/0/1
[r3-GigabitEthernet0/0/1]shutdown
模拟链路故障后,PC1 访问 R1:
[r3-GigabitEthernet0/0/2]shutdown
恢复链路
[r3-GigabitEthernet0/0/2]undo shutdown
模拟上行链路故障,等待20s后再次查看VRRP信息:
[r3-GigabitEthernet0/0/2]int g0/0/1
[r3-GigabitEthernet0/0/1]shutdown
再次进行访问测试: