Skip to content

0. 课件来源

VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)通过将多台物理网关虚拟为一台逻辑网关,实现网关冗余与负载分担。本节深入讲解 VRRP 的选举机制、状态切换、抢占延时、Track 跟踪以及多组 VRRP 负载分担。


1. 为什么需要 VRRP

1.1 网关冗余的困境

text
         SW1 vlanif10 .254 ───┐
PC1 (.1) ──── vlan10 ─────────┤
         SW2 vlanif10 .253 ───┘
  • PC1 配 SW1 网关 → SW1 故障则断网,无法冗余
  • PC1 配 SW1、PC2 配 SW2 → 负载分担,但任一交换机故障则对应 PC 业务中断

VRRP 解决:PC 网关指向虚拟 IP(VIP),VIP 映射到 SW1/SW2,任一故障切换由对端接管,实现冗余 + 可选负载分担。


2. VRRP 核心术语

术语说明
VRVirtual Router,虚拟路由器(多台物理设备组成一台逻辑设备)
VRIDVirtual Router ID(1-255),影响 VMAC(最后一字节对应 VRID)
Master主设备,有且只有一个,转发 VIP 流量
Backup备份设备,除 Master 外都是 Backup,监听 Master 状态
VIPVirtual IP,终端的默认网关
VMACVirtual MAC,格式 00-00-5E-00-01-{VRID}

💡 VMAC 的由来

VRRP 标准 RFC 3768 规定 VMAC 为 0000-5E00-01XX,最后 1 字节与 VRID 对应。例如 VRID=10,VMAC=0000-5E00-010A。终端 ARP 查询 VIP 时,Master 用 VMAC 作为源 MAC 回应。


3. VRRP 角色选举

选举步骤字段默认值说明
1Priority 大的为主100配置范围 1-254
2接口 IP 地址 大的为主优先级相同,IP 大的成为 Master
text
# SW1
interface vlanif10
 ip address 192.168.1.254 24
 vrrp vrid 10 virtual-ip 192.168.1.100

# SW2
interface vlanif10
 ip address 192.168.1.253 24
 vrrp vrid 10 virtual-ip 192.168.1.100
 vrrp vrid 10 priority 105        # 优先 SW1 (默认100) → SW2 修改为 105 更高

⚠️ 默认抢占

VRRP 默认开启抢占:一旦 Master 故障,Backup 中优先级最高的成为新 Master;原 Master 恢复后会抢占回来。可通过 preempt-mode disable 关闭抢占或抢占延时。


4. Priority 255 与 0 的特殊含义

Priority 值含义
255VRRP Owner(VIP = 物理接口 IP),自动获得 255,不可手动配置
0Master 主动离开(shutdown/删除配置),发送 pri=0 通告 Backup 切换
100(默认)未配置时的默认值
1-254手动配置范围

4.1 为什么不能配置 255

text
假设允许手工配 255:
SW1:192.168.1.254   vip=192.168.1.253   priority手工255
SW2:192.168.1.253   vip=192.168.1.253   priority自动255(因自己是Owner)
→ SW1 手工 255 后与 SW2 Owner 255 冲突,地址语义错乱

结论:255 保留给 Owner,手工只能配到 254。VIP = 物理接口 IP 的设备自动成为 Owner。

text
[SW2-Vlanif10] vrrp vrid 10 virtual-ip 192.168.1.253
Warning: The priority of this VRRP backup group has changed to 255 and will not change.

4.2 为什么不能配置 0

Priority=0 是 Master 向 Backup 发送"我要离开了"的特殊消息,手工配置 0 无意义且会干扰正常切换。


5. VRRP 状态机

            owner? ───yes──→ MASTER
    Initialize
            └───no───→ BACKUP ──(MDI超时/pri=0)──→ MASTER

5.1 三个状态

状态行为
Initialize接口刚启用/配置变更;检查是否 Owner(是 →Master,否 →Backup)
Backup监听 Master 的 VRRP Announcement;不转发、不响应 ARP
Master发送免费 ARP、响应 ARP、转发流量、周期发 VRRP 报文

5.2 Skew-Time(偏移时间)

Backup 等待 Master 下线后切换 Master 前的等待时间:

text
skew-time = (256 - priority) / 256 秒
Priorityskew-time
1000.6 秒
2000.2 秒
2540.0078 秒

机制:优先级越高的 Backup skew-time 越小,越快成为新 Master,避免多个 Backup 同时切换发生冲突。

5.3 Master_Down_Interval(MDI)

text
MDI = 3 * hello(1秒) + skew-time
PriorityMDI
1003.6 秒
2543.0078 秒

Backup 在 MDI 内持续收不到 Master 报文 → 切换为 Master。


6. Master 与 Backup 的职责

6.1 Master 职责

编号职责
1成为 Master 后,发送 免费 ARP(sMAC=VMAC,dMAC=FFFF…)告知全网
2响应终端对 VIP 的 ARP 查询
3转发 dMAC=VMAC 的流量
4周期(1秒)发送 VRRP Announcement(sip=接口IPdip=224.0.0.18
5收到 priority > 自己 的 VRRP 报文 → 立刻切换 Backup
6收到 priority = 自己 的报文 → 比 IP,IP 大的为主
7接口 shutdown / 删除 VRRP → 发送 priority=0,切为 Initialize

💡 免费 ARP 的双重作用

  1. DAD(Duplicate Address Detection):宣告 VMAC 占用
  2. 快速切换:让交换机学习 VMAC 现在在本交换机的接口上,切换时全网立即更新 MAC 表

6.2 Backup 职责

编号职责
1不响应 VIP 的 ARP 查询
2不转发 dMAC=VMAC 的流量
3不发 VRRP 报文,侦听 Master 的 Announcement
4收到 pri > 自己 → 保持 Backup,重置 MDI 计时器
5收到 pri = 自己 → 保持 Backup,重置 MDI(保持稳定)
6收到 pri < 自己 → 按抢占模式决定:立即/延时抢占/不抢占
7收到 pri = 0 → 等自己的 skew-time 超时,切换 Master
8收不到报文 → 等自己的 skew-time 超时,切换 Master

7. Track 跟踪(上游故障感知)

7.1 问题

VRRP Master 通过周期发 Announcement 证明自己健在;Backup 通过侦听感知 下游链路故障。但 上游链路故障(Master 到外网)时,Master 仍在发 VRRP 报文,Backup 无法感知。

7.2 解决方案

在 Master 的上游接口配置 track,上游接口 down → 减小 VRRP Priority → 让 Backup 优先级更高自动切换为 Master。

text
SW2:
interface vlanif10
 ip address 192.168.1.253 24
 vrrp vrid 10 virtual-ip 192.168.1.100
 vrrp vrid 10 priority 105
 vrrp vrid 10 track interface GigabitEthernet0/0/23
 # 默认 track 一次 priority -10
触发条件Priority 变化切换效果
上游接口 down-10(默认)或自定义由 105 → 95,低于默认 100 → Backup 切换
text
# 自定义减量
vrrp vrid 10 track interface GigabitEthernet0/0/23 reduced 30

8. VRRP 安全认证

8.1 问题

若攻击者私接一台交换机并抢占 Master,则 VIP 流量被劫持 → 数据泄密。

8.2 配置 MD5 认证

text
SW1:
interface vlanif10
 ip address 192.168.1.254 24
 vrrp vrid 10 virtual-ip 192.168.1.100
 vrrp vrid 10 authentication-mode md5 huahua123

SW2:
interface vlanif10
 ip address 192.168.1.253 24
 vrrp vrid 10 virtual-ip 192.168.1.100
 vrrp vrid 10 priority 105
 vrrp vrid 10 authentication-mode md5 huahua123

认证失败时:不接收对方的 VRRP 报文,防止恶意抢占。


9. 抢占延时

9.1 问题

若 Master 频繁抖动(down → up → down),则不停抢占切换,网络不稳定。

9.2 配置

text
SW2:
interface vlanif10
 ip address 192.168.1.253 24
 vrrp vrid 10 virtual-ip 192.168.1.100
 vrrp vrid 10 priority 105
 vrrp vrid 10 authentication-mode md5 huahua123
 vrrp vrid 10 preempt-mode timer delay 10   # 故障恢复后等 10 秒再抢占
模式配置行为
默认抢占Master 恢复立即抢占
延时抢占preempt-mode timer delay 10等 10 秒才抢占
不抢占preempt-mode disable不抢占,除非自己优先级变化

10. 多组 VRRP 负载分担

10.1 场景

单组 VRRP:VLAN10 全部走 SW2 → SW2 拥塞。

10.2 多组 VRRP 负载分担

text
# SW1(在 VRID 20 为主,VRID 10 为备)
interface vlanif10
 ip address 192.168.1.254 24
 vrrp vrid 20 virtual-ip 192.168.1.254        # 自己IP=VIP,Owner,priority=255
 vrrp vrid 10 virtual-ip 192.168.1.253        # 对端IP=VIP,Backup

# SW2(在 VRID 10 为主,VRID 20 为备)
interface vlanif10
 ip address 192.168.1.253 24
 vrrp vrid 10 virtual-ip 192.168.1.253        # 自己IP=VIP,Owner,priority=255
 vrrp vrid 20 virtual-ip 192.168.1.254        # 对端IP=VIP,Backup
VRIDSW1 角色SW2 角色VIP
10BackupMaster192.168.1.253
20MasterBackup192.168.1.254

终端 PC 配置网关时可选择两个 VIP 之一,两组 VRRP 同时分担流量又互为冗余。


11. VRRP 部署最佳实践

  1. 优先配 VRRP Owner:VIP = 物理接口 IP,自动 priority=255 成为 Master,无需协商即转发数据
  2. VIP 已规划好别造冲突时:将主网关配置 priority=254,Backup 配默认 100,通过 skew-time 快速切换
  3. 默认配置场景:双方默认 100,skew-time 各为 0.6 秒,先切换为 Master 的一方发布免费 ARP,另一方收到高优先级报文退为 Backup

12. 易混淆点与考前速记

对比项结论
七车位、上级故障、抖动三者分别对应 Track、抢占延时、多组 VRRP
Owner 的 Priority自动 255,不可手动配置,VIP=物理接口 IP
Priority 0 含义Master 主动离开,发送 pri=0 通告 Backup 即时切换
Skew-Time 公式(256 - priority) / 256 秒
MDI 公式3 * hello(1秒) + skew-time
VRRP 报文目的 IP224.0.0.18
VMAC 格式0000-5E00-01{VRID}
默认抢占开启,延时 0 秒
接口 IP 大优先(仅pri相等时)优先级相等才比较,不是任何时候都比较

考前速记 10 条

  1. VRID 1-255;VMAC 最后一字节 = VRID;VIP = 终端网关
  2. Priority 默认 100,配置 1-254,255 给 Owner,0 用于 Master 主动离开
  3. Owner:自己接口 IP 就是 VIP → 自动 priority=255 → 直接 Master
  4. 选举:优先级大 → 接口 IP 大
  5. Skew-Time = (256 - priority) / 256
  6. MDI = 3 * hello + skew-time,hello 默认 1 秒
  7. Master 周期 1 秒发 Announcement,dip=224.0.0.18
  8. Master 接口 Down → 发 pri=0 → Backup 等 skew-time 切换
  9. Track 监控上游接口,down 后 priority 自减,让 Backup 接管
  10. 多组 VRRP 实现负载 + 冗余:一组 VIP 配两个,每组 Master 不同

🤖 AI 伴学

想把 VRRP 状态机和 skew-time 理解更透彻,可以让 AI 做"领导班子"类比:

"请用'公司领导班子的正职和副职'来类比 VRRP 的 Master/Backup:正职(Master)定期向上汇报'我在岗',如果报平安消息连续3.6秒不到,副职(Backup)就根据威望(priority)接管。再用这个类比解释:为什么 priority 越高的副职 skew-time 越短(威望高的人听到正职失联就能最快上岗)。最后说明抢占延时就像'正职恢复后先观察10天再复职',防止频繁反复上下台降低团队稳定性。"

真人撰写written by human