摘要
- RFC 9568 依据配置的地址所有者、优先级、通告与超时计算,为一个 VRRP 实例选出 Active;这个结果是控制角色,不是经过认证的权威声明,也不是数据面健康证书。
- 可审计的故障切换必须把选举与虚拟 MAC 迁移、ARP 或邻居发现、接口与邻接状态、上游可达性、彼此独立的 IPv4/IPv6 实例以及真实业务结果连接起来。
故障发生后的几秒钟里,监控画面往往非常漂亮:Backup 不再收到通告,倒计时归零,状态切换为 Active,新通告开始发送。日志没有报错,虚拟地址仍在配置中,自动化系统随即宣布“高可用切换成功”。
用户看到的却可能仍是超时。
这并不表示 VRRP 撒了谎。它只是回答了一个比“网络是否恢复”更窄的问题:当多个路由器在同一局域网中为一个虚拟首跳承担责任时,当前由谁扮演 Active。RFC 9568 精确规定了这场选举,但没有观察选举之后的每一段运行现实。
通告里有什么,也说明了它缺少什么
一份 VRRPv3 通告对应一个 VRID 和一种地址族,携带发送者优先级、最大通告间隔以及受保护的 IPv4 或 IPv6 地址。配置为地址所有者的路由器使用优先级 255;Backup 使用 1 到 254,默认值为 100;优先级 0 表示 Active 正在放弃责任。校验和发现意外损坏,TTL 或 Hop Limit 必须为 255,以限制来自远端网络的注入。
这些字段足以让参与者作出一致的角色决定,却没有携带 FIB、下一跳邻接、上联接口、ACL、NAT、状态服务或应用探测的结果。更重要的是,RFC 9568 明确写明 VRRPv3 不提供认证。本地链路上的恶意或错误配置节点仍可以表现得像 Active,甚至制造多个 Active。255 跳检查划定了远端边界,却没有证明本地发送者的身份与正当性。
因此,优先级 255 只能理解为实例内部的配置声明:这台设备被配置成受保护地址的所有者。它不是注册权属、法律权属或密码学证明。两台设备同时发出 255 时,规范要求运营者记录冲突;协议不会替人决定谁才是真正的权威。
超时能证明沉默,不能诊断沉默
Backup 保存 Active 通告中的时间间隔,并按照自身优先级计算 Skew_Time。三倍通告间隔再加这个偏移量,构成 Active_Down_Interval。优先级较高的 Backup 等待时间较短,从而形成较确定的接班顺序。
计时器到期只证明接收方在这段时间里没有见到合格的通告。原因可能是原设备断电,也可能是组播被过滤、控制进程停顿、局部链路分区或单向丢包。反过来,一台数据面已经失效的路由器仍可能持续发送健康的 VRRP 通告。控制通道的沉默与发声,都不能自动诊断整条业务路径。
把间隔调得更短,可以更早产生角色变更,却不能强迫交换机刷新 MAC,不能让所有主机接受邻居通告,也不能修复上游路由。RFC 9568 还指出,高优先级但发送较慢的 Active 与发送较快的低优先级 Backup 之间可能出现暂时竞争;多个 Backup 的优先级差距太小时,也可能几乎同时成为 Active。速度设置同时也是稳定性设置。
虚拟 MAC 还要穿过真实链路
新的 Active 必须使用虚拟 MAC,并通过 ARP 或 Neighbor Discovery 让链路上的设备认识新的位置。从“发出了正确通告”到“所有相关流量已经抵达新端口”,中间至少隔着交换机学习、邻居缓存更新和安全策略三层现实。
路由器旁边的抓包只能证明它发送了消息。某台交换机可能仍把虚拟 MAC 指向旧端口;部分主机可能接受更新,另一些保留旧缓存;端口安全策略也可能过滤非请求通告。RFC 9131 特别提醒,IPv6 的非请求邻居通告有时还需要额外配置,才能真正更新对应缓存。链路收敛不是一次原子写入。
Ping 也不能独自裁决。Accept_Mode 默认关闭;非地址所有者成为 Active 后,可以不把发往受保护地址本身的普通报文当作本机流量,却仍然正确转发以该地址为首跳的过境流量。因此,Ping 失败不必然等于转发失败;Ping 成功也只说明到达了这个局部目标,不能证明上游路径和应用终点可用。
双栈共享机箱,不共享结论
RFC 9568 把 IPv4 与 IPv6 虚拟路由器视为独立实例。它们可以运行在同一台设备上,也可以有相同的运维名称,但一个实例的 Active 状态不会自动传递给另一个实例。IPv4 的 ARP 已收敛时,IPv6 邻居缓存仍可能陈旧;两个地址族甚至可能由不同设备担任 Active。
这也是单一“网关正常”图标最容易掩盖的地方。双栈业务可能只恢复一半。IPv6 Router Advertisement 还可能携带特殊服务选项;规范要求只有当 Backup 能完整接管相应服务且状态已经同步时,地址所有者才应发送这类选项。能够接管地址,不等于能够接管地址背后的全部能力。
最小可用证据链
一次可以被复盘的切换,至少需要九类记录:准确的 VRID、地址族与受保护地址;所有者配置、优先级、通告间隔、抢占与接收模式;最后一份有效通告;超时计算;平票或优先级决定过程;交换机看到的虚拟 MAC;多个位置看到的 ARP 或邻居缓存;新 Active 的接口、邻接、转发表和策略;最后是按 IPv4、IPv6 分开测量的丢包、恢复时间与应用结果。
BFD 在被明确接入决策时,可以提供双向转发路径的额外信号。VRRP 的 YANG 模型可以提供状态与计数器。它们都不会隐藏在 Active 这个词里。只有把这些证据面与实际流量连起来,运营者才有资格把“选举完成”升级为“服务恢复”。
RFC 9568 的价值恰恰在于边界清楚:让终端无需参与复杂协议,也能获得本地首跳冗余。错误不是协议太窄,而是组织让一个窄而准确的标签承担了它从未获得的权威。
来源
- https://www.rfc-editor.org/rfc/rfc9568.html
- https://www.rfc-editor.org/info/rfc9568
- https://datatracker.ietf.org/doc/rfc9568/
- https://datatracker.ietf.org/doc/rfc9568/history/
- https://www.rfc-editor.org/errata/rfc9568
- https://www.rfc-editor.org/rfc/rfc5798.html
- https://www.rfc-editor.org/rfc/rfc8347.html
- https://www.rfc-editor.org/rfc/rfc5082.html
- https://www.rfc-editor.org/rfc/rfc4861.html
- https://www.rfc-editor.org/rfc/rfc9131.html
- https://www.rfc-editor.org/rfc/rfc9099.html
- https://www.rfc-editor.org/rfc/rfc5880.html
- https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
- https://www.iana.org/assignments/multicast-addresses/multicast-addresses.xhtml
- https://www.iana.org/assignments/ethernet-numbers/ethernet-numbers.xhtml
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-why-btw-media-exists-and-why-reality-not-advocacy-is-the-product/
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

