1619 字
8 分钟
VRRP协议
VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种 用于提高网络可靠性的标准化协议 (RFC 5798)。其核心目的是解决 默认网关(Default Gateway)的单点故障问题 ,确保即使主网关设备失效,终端用户也能 无感知地切换到备用网关 ,实现网络流量的不间断传输。
核心目标与工作原理
- 核心问题:
- 在网络中,终端设备(如 PC、服务器)通常配置一个 默认网关 地址作为访问外部网络的出口。
- 如果承载该网关地址的物理路由器(网关设备)出现故障(硬件、软件、链路),所有依赖该网关的终端网络连接将中断。
- 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 Interval和Master_Down_Interval决定)内未收到通告,则认为 Master 失效,优先级最高的 Backup 会自动接替成为新的 Master,接手流量转发。
关键特性与概念
- 虚拟 IP 与 MAC:
- 虚拟 IP(VIP): 由管理员指定,是终端的默认网关地址。它通常属于备份组中某台物理路由器的真实接口地址(但 不必 是该 Master 的地址,可以是该子网中未被其他设备使用的一个地址)。
- 虚拟 MAC: 根据协议标准自动生成(格式为
00-00-5E-00-01-{VRID})。主用路由器使用此 MAC 进行 ARP 响应和流量转发。
- 优先级(Priority)与抢占(Preemption):
- 优先级: 每台路由器在备份组中配置一个优先级(1-255,值越大越优先)。
- Master 失效后,优先级最高的 Backup 成为新 Master。
- 初始 Master 选举通过比较优先级实现(高者胜),优先级相同时,比较接口主 IP 地址大小(大者胜)。
- 抢占:
- 启用抢占(默认启用): 当原 Master 从故障中恢复(优先级高于当前 Master),它会重新发起选举并抢占回 Master 角色。
- 禁用抢占: 当前 Master 将维持角色,即使原 Master 恢复且优先级更高。
- 优先级: 每台路由器在备份组中配置一个优先级(1-255,值越大越优先)。
- 状态机与通告:
- 状态: VRRP 设备在三个主要状态间转换:
Initialize,Master,Backup。 - 通告报文:
- 由 Master 周期性 (默认 1 秒,可调整)向组播地址
224.0.0.18发送,目的端口112。 - 包含备份组号、路由器的优先级、通告间隔、虚拟 IP 列表等关键信息。
- 由 Master 周期性 (默认 1 秒,可调整)向组播地址
- 失效检测:
- Backup 通过监听通告报文判断 Master 存活。如果在
Master_Down_Interval(通常 = 3 * 通告间隔 + Skew_Time)内未收到通告,则触发主备切换。
- Backup 通过监听通告报文判断 Master 存活。如果在
- 状态: VRRP 设备在三个主要状态间转换:
- 工作模式:
- 标准模式(主备模式):
- 最常见模式。
- 一个 Master 负责转发流量,Backup 处于热备份状态(仅监听通告)。
- 资源利用率低,但切换可靠。
- 负载均衡模式(多 VRRP 组):
- 创建多个 VRRP 备份组(多个 VIP)。
- 不同组的主路由器角色分散在不同物理路由器上,实现网关流量的负载分担。
- 终端需要配置不同默认网关(VIP)。
- 监视接口/IP(Tracking):
- 主路由器可监视其上/下行接口状态、直连路由或对象(如 IP SLA 探针结果)。
- 若被监视项失效(如上行接口断开),主路由器会 降低自身优先级 (通常低于某个设定值,如 100),触发抢占或选举,使备用路由器接管。
- 标准模式(主备模式):
- 协议版本:
- 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:
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)。当一台真实的网关设备(主用)正常工作,“替身”由它扮演。当它倒下时,“替身”的角色会自动无缝切换给另一台真实的网关设备(备用)。这正是 网络高可用性的核心实现方式之一 ,在数据中心、企业网边界/核心广泛部署。