双主的成因与排查顺序
双主指同一 VRRP 组的两台设备同时处于 Master:虚拟 IP 与虚拟 MAC 被两个端口同时宣称,终端的 ARP 缓存与交换机的 MAC 表会在这两台设备之间随机漂移,表现为间歇性不通、时延抖动甚至大面积丢包。根因基本都落在『通告不可达』或『参数不一致』两类上,所以排查要按固定顺序推进,而不是随机重启设备。
基本信息
| 典型现象 | 两端均显示 Master,业务间歇性中断 |
|---|---|
| 虚拟地址冲突 | 同一虚拟 IP 与虚拟 MAC 在两个端口上同时存在 |
| 排查入口 | 两端 display vrrp / show vrrp 对比状态 |
| 验证手段 | 镜像口抓包确认通告是否可达 |
| 常见根因 | ACL 拦截、认证不一致、VRID 冲突、链路单通、定时器不一致 |
| 处置原则 | 先定位根因再恢复,避免直接重启 |
排查顺序
- 看状态:两端是否都显示 Master,确认现象而不是猜测
- 抓包:镜像口确认能否收到对端通告,判断是单向还是双向不可达
- 查放行:ACL、防火墙与安全策略是否放行协议号 112 与组播 224.0.0.18
- 查一致:VRID、虚拟 IP、认证方式与密钥、定时器、VRRP 版本逐项核对
- 查链路:单向可达问题用环回测试或 BFD 验证,排除物理链路与光模块问题
- 查规划:是否存在 IP 拥有者、VRID 冲突或第三台设备在发送通告
抓包验证示例
抓包验证示例
sudo tcpdump -i eth0 vrrp # 观察是否收到对端通告
sudo tcpdump -i eth0 -c 20 'ip proto 112' # 按协议号过滤,取 20 个样本
# 若只能看到本机发出的通告而看不到对端的,说明对端通告不可达
# 此时按 ACL、认证、VRID、链路方向逐项排查常见成因对照
| 成因 | 特征 | 处置方向 |
|---|---|---|
| ACL 拦截协议 112 | 双端均收不到通告 | 放开安全策略并复核 |
| 认证不一致 | 双端 Master,抓包能看到通告 | 统一认证方式与密钥 |
| VRID 冲突 | 同域出现多组设备宣称同一实例 | 按规划重新编号并维护台账 |
| 链路单向可达 | 一端能收到、一端收不到 | 查光模块、光纤与链路质量 |
| 定时器不一致 | 角色长时间并存或异常接管 | 两端统一通告间隔 |
方向核对是双主问题的关键:确认两端各自能否收到对端的通告。单向可达的问题用环回测试或镜像抓包验证最直接,比反复检查配置更有效。