【排错实录】BGP/MPLS VPN + ISIS 主备切换故障排查指南
前言
4月18日要处理一个主备路由切换失败的故障,项目用的是 BGP/MPLS VPN + ISIS 架构。本文按分层排查的思路,从底层到上层逐层分析每个阶段可能出现的问题、判断方法和处理方案。
本文基于华为设备,适用于 MPLS L3VPN 主备切换场景。
一、架构与协议分层
在排查之前,先理清各层协议的依赖关系:
1 | ┌─────────────────────────────────────────────┐ |
排查顺序:第1层 → 第2层 → 第3层 → 第4层
二、第1层:ISIS 底层故障排查
2.1 ISIS 邻居起不来
可能原因:
| 原因 | 表现 | 判断方法 |
|---|---|---|
| 链路物理问题 | 接口 down | display interface brief |
| Level 不匹配 | 邻居永远 Init | display isis peer State=Init |
| 区域 ID 不匹配 | L1 邻居 up 但路由缺失 | display isis lsdb |
| 认证不通过 | 邻居反复闪断 | display isis error |
| Circuit ID 冲突 | 邻居闪断 | display isis interface |
排查命令:
1 | # 1. 查看全局 ISIS 状态 |
处理方案:
1 | # 1. 确保 Level 匹配 |
2.2 ISIS 邻居 up 但路由缺失
可能原因:
| 原因 | 表现 | 判断方法 |
|---|---|---|
| Cost/Metric 过大 | 路由 cost 为 0x3F(最大) | display isis route cost 值 |
| L1 路由未渗透到 L2 | L2 看不到 L1 的明细路由 | display isis route |
| 接口 PASSIVE | ISIS 不发送 HELLO | display isis interface |
排查命令:
1 | # 查看 ISIS 路由表 |
处理方案:
1 | # 1. 检查 Cost 配置 |
三、第2层:MPLS / LDP 故障排查
ISIS 正常后,才能建立 MPLS LSP
3.1 LDP 会话无法建立
可能原因:
| 原因 | 表现 | 判断方法 |
|---|---|---|
| LSR ID 不一致 | LDP 会话一直 Init | display mpls ldp session |
| 传输地址不可达 | LDP 会话 Down | display mpls ldp peer |
| 标签空间冲突 | LDP 会话 Connect | display mpls ldp interface |
| 认证不匹配 | LDP 会话 Down | display mpls ldp session 有 Auth failed 计数 |
排查命令:
1 | # 1. 查看 LDP 会话状态 |
典型输出解读:
1 | [LDP Session] |
1 | Status: Connect ← 异常,传输地址不通 |
处理方案:
1 | # 1. 确保 LSR ID 可达 |
3.2 LSP 建立不完整
可能原因:
| 原因 | 表现 | 判断方法 |
|---|---|---|
| 中间路由器缺失 MPSL | LSP 在中间断开 | display mpls lsp 有 gap |
| 标签保持模式问题 | LSP 不稳定 | display mpls lsp 反复震荡 |
| PHP(倒数第二跳弹出)未使能 | LSP 最后一跳不弹出 | traceroute 最后一跳无标签 |
排查命令:
1 | # 1. 查看完整 LSP |
处理方案:
1 | # 1. 确保所有 P/PE 路由器都配置了 MPLS |
四、第3层:BGP VPNv4 故障排查
MPLS LSP 正常后,才能传递 VPN 路由
4.1 BGP VPNv4 邻居起不来
可能原因:
| 原因 | 表现 | 判断方法 |
|---|---|---|
| address-family vpnv4 未使能 | BGP 邻居 up 但 VPNv4 down | display bgp vpnv4 all peer |
| 地址簇协商失败 | 邻居一直 Idle | display bgp peer |
| MD5 认证失败 | 邻居反复 reconnect | display bgp peer error |
排查命令:
1 | # 1. 查看 VPNv4 邻居 |
处理方案:
1 | # 1. 使能 VPNv4 地址族 |
4.2 RT Import/Export 不匹配
可能原因:
| 原因 | 表现 | 判断方法 |
|---|---|---|
| Import RT 缺失 | PE 收到路由但不放入 VRF | display bgp vpnv4 vpn-instance <name> routing-table |
| Export RT 缺失 | 对端 PE 收不到路由 | display bgp vpnv4 all routing-table |
| RT 值写错 | 路由无法互通 | 核对两端 RT 值 |
排查命令:
1 | # 1. 查看 VPN 实例配置 |
典型案例:
1 | # Site A PE 配置 |
处理方案:
1 | # 确保 Import RT 包含对端的 Export RT |
4.3 VPN 路由注入失败
可能原因:
| 原因 | 表现 | 判断方法 |
|---|---|---|
| CE 路由未发布到 PE | PE 路由表为空 | display ip routing-table vpn-instance <name> |
| AS 号不匹配 | BGP 路由被拒绝 | display bgp error |
| Route Policy 过滤 | 部分路由丢失 | display bgp vpnv4 all routing-table statistics |
排查命令:
1 | # 1. 查看 VRF 路由表 |
五、第4层:VRRP 主备切换故障
路由正常,但主备切换不生效
5.1 VRRP 状态异常
可能原因:
| 原因 | 表现 | 判断方法 |
|---|---|---|
| VRRP 未配置 track | 主链路 down 但 VRRP 仍为 Master | display vrrp interface State=Master |
| Priority 配置错误 | 主备优先级倒置 | display vrrp interface priority 值 |
| 抢占模式关闭 | 主设备恢复后无法抢回 | display vrrp interface preempt-mode=Off |
排查命令:
1 | # 1. 查看 VRRP 状态 |
处理方案:
1 | # 1. 配置 track 上行链路(核心!) |
5.2 VRRP 与 BGP/MPLS 联动失效
可能原因:
| 原因 | 表现 | 判断方法 |
|---|---|---|
| BFD 未配置 | 链路 down 后收敛慢(分钟级) | display bfd session all |
| VRRP 联动 BGP 未配置 | 切换后路由不更新 | 检查配置 |
| Track 与实际链路不匹配 | VRRP 切了但流量仍走原路 | display vrrp interface track 状态 |
排查命令:
1 | # 1. 查看 BFD 会话 |
处理方案:
1 | # 1. 配置 BFD 毫秒级检测 |
六、排错总流程
按层级逐层排查,遵循底层优先原则:
1 | ① 物理层检查 |
七、实战案例
故障现象
主 PE(PE1)掉电,CE 无法切换到备用 PE(PE2),流量中断。
排查过程
Step 1:检查 CE VRRP 状态
1 | [CE] display vrrp interface GigabitEthernet0/0/0 |
→ State 是 Master,但流量不通
Step 2:检查 CE 上行链路
1 | [CE] display interface GigabitEthernet0/0/0 |
→ 物理链路 down,但 VRRP 仍为 Master
Step 3:检查 VRRP 配置
1 | [CE] display current-configuration interface GigabitEthernet0/0/0 |
根因
VRRP 没有 track 上行链路,当 CE 上行链路 down 时,VRRP 仍为 Master,但流量已经不通了。
解决方案
1 | [CE] interface GigabitEthernet0/0/0 |
八、预防建议
| 措施 | 说明 |
|---|---|
| BFD 毫秒检测 | 链路故障时 BGP/LDP 快速收敛 |
| VRRP Track 链路 | 主链路 down 时自动降低 priority |
| 定期演练 | 每季度做一次主备切换演练 |
| 监控告警 | VRRP 状态变更、ISIS 邻居 down 时告警 |
| 配置备份 | 双端配置保持一致,使用 config-sync |
4月18日实战顺利!
相关阅读:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Levi's Blog!