1619 字
8 分钟
VRRP协议

VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种 ​​ 用于提高网络可靠性的标准化协议 ​​(RFC 5798)。其核心目的是解决 ​​ 默认网关(Default Gateway)的单点故障问题 ​​,确保即使主网关设备失效,终端用户也能 ​​ 无感知地切换到备用网关 ​​,实现网络流量的不间断传输。

核心目标与工作原理#

  1. ​ 核心问题:​
    • 在网络中,终端设备(如 PC、服务器)通常配置一个 ​​ 默认网关 ​​ 地址作为访问外部网络的出口。
    • 如果承载该网关地址的物理路由器(网关设备)出现故障(硬件、软件、链路),所有依赖该网关的终端网络连接将中断。
  2. ​VRRP 解决方案:​
    • VRRP 将一组物理路由器(通常是 2 台或更多)组成一个 ​​ 备份组(VRRP Group)​​。
    • 这组路由器共同虚拟出一个 ​​ 虚拟路由器(Virtual Router)​​。
    • 虚拟路由器拥有自己的 ​​ 虚拟 IP 地址(Virtual IP, VIP)​​ 和 ​​ 虚拟 MAC 地址(Virtual MAC)​​。这个 ​​VIP 就是终端设备配置的默认网关地址 ​​。
    • 备份组内的路由器分为两种角色:
      • ​ 主用路由器(Master Router):​​ 负责 ​​ 实际转发 ​​ 发送到虚拟 IP 和 MAC 地址的数据流量。它定期发送 VRRP 通告(Advertisement)报文告知备份组其他成员自己存活。
      • ​ 备用路由器(Backup Router(s)):​​ 监听 Master 发送的通告报文。如果在一段时间(由Advertisement IntervalMaster_Down_Interval决定)内未收到通告,则认为 Master 失效,优先级最高的 Backup 会自动接替成为新的 Master,接手流量转发。

关键特性与概念#

  1. ​ 虚拟 IP 与 MAC:​
    • ​ 虚拟 IP(VIP):​​ 由管理员指定,是终端的默认网关地址。它通常属于备份组中某台物理路由器的真实接口地址(但 ​​ 不必 ​​ 是该 Master 的地址,可以是该子网中未被其他设备使用的一个地址)。
    • ​ 虚拟 MAC:​​ 根据协议标准自动生成(格式为00-00-5E-00-01-{VRID})。主用路由器使用此 MAC 进行 ARP 响应和流量转发。
  2. ​ 优先级(Priority)与抢占(Preemption):​
    • ​ 优先级:​​ 每台路由器在备份组中配置一个优先级(1-255,值越大越优先)。
      • Master 失效后,优先级最高的 Backup 成为新 Master。
      • 初始 Master 选举通过比较优先级实现(高者胜),优先级相同时,比较接口主 IP 地址大小(大者胜)。
    • ​ 抢占:​
      • ​ 启用抢占(默认启用):​​ 当原 Master 从故障中恢复(优先级高于当前 Master),它会重新发起选举并抢占回 Master 角色。
      • ​ 禁用抢占:​​ 当前 Master 将维持角色,即使原 Master 恢复且优先级更高。
  3. ​ 状态机与通告:​
    • ​ 状态:​​ VRRP 设备在三个主要状态间转换:Initialize, Master, Backup
    • ​ 通告报文:​
      • 由 Master​​ 周期性 ​​(默认 1 秒,可调整)向组播地址224.0.0.18发送,目的端口112
      • 包含备份组号、路由器的优先级、通告间隔、虚拟 IP 列表等关键信息。
    • ​ 失效检测:​
      • Backup 通过监听通告报文判断 Master 存活。如果在Master_Down_Interval(通常 = 3 * 通告间隔 + Skew_Time)内未收到通告,则触发主备切换。
  4. ​ 工作模式:​
    • ​ 标准模式(主备模式):​
      • 最常见模式。
      • 一个 Master 负责转发流量,Backup 处于热备份状态(仅监听通告)。
      • 资源利用率低,但切换可靠。
    • ​ 负载均衡模式(多 VRRP 组):​
      • 创建多个 VRRP 备份组(多个 VIP)。
      • 不同组的主路由器角色分散在不同物理路由器上,实现网关流量的负载分担。
      • 终端需要配置不同默认网关(VIP)。
    • ​ 监视接口/IP(Tracking):​
      • 主路由器可监视其上/下行接口状态、直连路由或对象(如 IP SLA 探针结果)。
      • 若被监视项失效(如上行接口断开),主路由器会 ​​ 降低自身优先级 ​​(通常低于某个设定值,如 100),触发抢占或选举,使备用路由器接管。
  5. ​ 协议版本:​
    • ​VRRPv2(RFC 3768):​​ 仅支持 IPv4。
    • ​VRRPv3(RFC 5798):​​ 支持 IPv4 和 IPv6(使用不同组播地址:FF02:0:0:0:0:0:0:12),引入更多安全认证选项。

应用场景与优势#

  • ​ 消除网关单点故障:​​ 确保企业网络出口、数据中心接入层或汇聚层网关的可靠性。
  • ​ 透明切换(高可用性):​​ 主备切换对终端用户 ​​ 完全透明 ​​,无需修改终端配置。
  • ​ 提升网络稳定性:​​ 减少因网关故障导致的大面积业务中断。
  • ​ 简化管理:​​ 终端统一配置虚拟网关(VIP),物理设备变更(如升级、替换)无需更改终端配置。

与类似协议(如 HSRP)的区别#

  • ​VRRP 是 IETF 标准(RFC),跨厂商支持良好。​
  • HSRP(Hot Standby Router Protocol)是 ​​ 思科私有协议 ​​(仅思科设备支持),功能与 VRRPv2 类似但实现细节不同(如地址格式、报文格式、端口号等)。
  • 两者在核心目标(网关冗余)和基本工作原理上非常相似。

与 BFD 联动的重要性#

  • BFD 的毫秒级故障检测能力可用于加速 VRRP 的主备切换。当监视 Master 上行链路状态的 BFD 会话Down时,触发 Master 主动降低优先级或发送0优先级通告(快速宣告自身失效),使得 VRRP 切换时间从秒级(如 3 秒)减少到毫秒级(如 50ms),​​ 极大提升业务连续性 ​​。

配置示例(在 Linux 上)#

使用 Keepalived 配置 VRRP:

Terminal window
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 50
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
192.168.1.1
}
}

相关工具#

  • Keepalived(用于 Linux 上的 VRRP 实现)
  • HAProxy(与 VRRP 常结合使用)

总结#

VRRP 相当于为网关设备创建了一个 ​​ 虚拟的、永不宕机的“替身”​​。终端用户只需要认识这个“替身”(虚拟 IP/MAC)。当一台真实的网关设备(主用)正常工作,“替身”由它扮演。当它倒下时,“替身”的角色会自动无缝切换给另一台真实的网关设备(备用)。这正是 ​​ 网络高可用性的核心实现方式之一 ​​,在数据中心、企业网边界/核心广泛部署。