增加知识文档

This commit is contained in:
hans 2026-07-21 19:01:49 +08:00
parent f3152acb88
commit db1d89d83b
11 changed files with 1461 additions and 0 deletions

View file

@ -0,0 +1,156 @@
# BGP VPN跨域标签异常排查树
## 现象:VRF路由下一跳为NULL或出接口为NULL
### 第零层排查:业务层连通性测试(起点!)
#### 子步骤0.1:Ping测业务地址
- **命令**:`ping vrf <vrf-name> <dest-ip>`
- **示例**:`ping vrf test 4.1.1.1`
- **目的**:确认业务是否真正中断,区分是路由问题还是转发问题
- **预期结果**:
- 通 → 业务正常,无需进一步排查
- 不通 → 进入下一步trace定位断点
#### 子步骤0.2:Trace定位路径
- **命令**:`trace vrf <vrf-name> <dest-ip>`
- **目的**:确定报文在哪一跳丢失,判断是本地问题还是远端问题
- **典型场景**:
- 第一跳就失败 → 本地VRF路由或直连问题
- 中间某跳失败 → 该节点标签或IGP问题
- 能到最后一跳但不通 → 对端CE设备或业务侧问题
---
### If `show ip forwarding route vrf <vrf-name>`显示Interface为NULL
- **Then第一层排查:MPLS标签分配**
- `show mpls forwarding-table <next-hop-ip>` → 查看Outgoing Label
- 若为"no label"或"pop",说明LDP未分配标签
#### 子步骤1.1:检查LDP会话状态
- `show mpls ldp neighbor brief instance <instance-id>` → 确认LDP邻居为Established
- `show mpls ldp neighbor detail instance <id>` → 查看标签分发能力
#### 子步骤1.2:检查LDP策略配置(关键!)
- `show running-config ldp` → 查找access-fec、fec-filter等过滤配置
- `show mpls ldp binding instance <id>` → 查看实际分配的标签绑定
- **常见陷阱**:`access-fec ip-prefix host-route-only`会强制LDP只给32位主机路由分配标签
- **排障动作**:评估必要性,若非强制需求则去除该限制
- **示例输出**:
```
!<ldp>
mpls ldp instance 1
access-fec ip-prefix host-route-only
discovery hello holdtime 180
discovery targeted-hello holdtime 180
interface smartgroup1
router-id loopback1
target-session 10.26.63.152
$
!</ldp>
```
#### 子步骤1.3:检查下一跳地址的掩码长度
- `show ip forwarding route <next-hop-ip>` → 查看掩码是否为/32
- **原理**:LDP默认只为32位主机路由分配标签(倒数第二跳弹出机制前提)
- 若为/30或/31互联地址,LDP可能不分配标签
---
### If 标签分配正常但业务仍不通
- **Then第二层排查:BGP下一跳属性**
- `show bgp vpnv4 unicast vrf <vrf-name> route` → 查看完整的BGP VPNv4路由表
- `show bgp vpnv4 unicast labels` → 查看标签信息
- **关键字段**:Next Hop(下一跳)、Label(标签)、Path(AS_PATH)
#### 子步骤2.1:检查ASBR配置
- 登录对端ASBR,查看BGP配置
- **关键配置缺失**:ASBR向IBGP宣告EBGP路由时未配置`neighbor <ibgp-peer> next-hop-self`
- **排障动作**:在ASBR上配置`neighbor <ibgp-peer> next-hop-self`
- **验证命令**:`show bgp vpnv4 unicast vrf <vrf-name> neighbor <peer-ip> advertised-routes`
#### 子步骤2.2:验证修复效果
- 配置next-hop-self后,PE上BGP路由的下一跳应变为ASBR的Loopback地址(32位)
- LDP为主机路由分配标签 → `show mpls forwarding-table`应显示明确的Outgoing Label
- `show ip forwarding route vrf <vrf-name>`应显示实际出接口
---
### If BGP路由正常但IGP不可达
- **Then第三层排查:IGP邻接关系**
- `show isis adjacency` → 检查ISIS邻接状态
- `show isis hostname` → 查看系统ID映射
- `show ip ospf neighbor` → 检查OSPF邻居状态
#### 子步骤3.1:检查IGP拓扑同步
- `show isis database` → 查看LSDB完整性
- `show ip ospf database` → 检查OSPF链路状态数据库
- **常见问题**:IGP未学习到BGP下一跳的路由
---
**完整排查流程图**:
```
业务不通
↓
ping vrf <vrf-name> <dest-ip> → 通 → 结束
↓ 不通
trace vrf <vrf-name> <dest-ip> → 定位断点
↓
show ip forwarding route vrf <vrf-name>
↓ Interface为NULL
show mpls forwarding-table <next-hop-ip>
↓ 无标签
show mpls ldp neighbor brief instance <id> → Down → 修复LDP会话
↓ Established ↓ 有标签
show mpls ldp binding instance <id> show bgp vpnv4 unicast vrf <name> route
↓ access-fec限制 ↓ NextHop非32位
移除限制或接受现状 ASBR配置next-hop-self
↓ ↓
重新学习标签 验证转发恢复
↓
show isis adjacency
↓ 无邻接
修复IGP邻接关系
```
**关键命令速查**:
```bash
# 业务层测试
ping vrf <vrf-name> <dest-ip>
trace vrf <vrf-name> <dest-ip>
# VRF路由转发信息
show ip forwarding route vrf <vrf-name>
show ip forwarding route vrf <vrf-name> <dest-ip>
show ip route vpn
# MPLS标签转发表
show mpls forwarding-table
show mpls forwarding-table <next-hop-ip>
show mpls forwarding-table vpnv4-lsp
# LDP会话与策略(必须指定instance!)
show mpls ldp neighbor brief instance <id>
show mpls ldp neighbor detail instance <id>
show mpls ldp binding instance <id>
show mpls ldp parameters instance <id>
show running-config ldp
# VPNv4路由属性
show bgp vpnv4 unicast vrf <vrf-name> route
show bgp vpnv4 unicast labels
# IGP邻接
show isis adjacency
show isis hostname
show ip ospf neighbor
```
**关联案例**:参见 `04_历史故障案例库/BGP/标签与LDP类/BGP_跨域下一跳NULL_LDP策略与下一跳修复_20260720.md`
**理论锚点**:
- LDP标签分配策略(默认只为/32主机路由分配标签)
- 跨域VPN Option-B转发模型(ASBR的next-hop-self作用)
- FEC过滤机制(access-fec等配置的影响)
- 标签转发与IP转发的协同工作原理

View file

@ -0,0 +1,26 @@
# 01_协议排障逻辑树
## 定位
将教科书原理重构为"If...Then..."的排障决策树,解决"怎么想"的问题。
## 内容要求
- 只写状态跳转条件、选路规则的计算过程
- 严禁大段复制RFC协议报文格式
- 按协议分类组织排查树
## 目录结构
```
01_协议排障逻辑树/
├── BGP/
│ ├── 邻居建立失败排查树.md
│ ├── 路由优选异常排查树.md
│ └── VPN跨域标签异常排查树.md
├── OSPF/
│ ├── 邻居卡住排查树.md
│ └── 路由计算错误排查树.md
└── IS-IS/
└── L1/L2路由泄露排查树.md
```
## RAG作用
当用户问"为什么BGP优选了这条路由"时,AI优先索引这里的"决策逻辑"而非通用理论。