选路里的 oldest 规则
BGP 选路是一串按顺序执行的比较步骤,走到「两条都是 eBGP 路径」这一步还没分出胜负时,先收到的那条(更老的路径)胜出。它位于 IGP 度量比较之后、router-id 比较之前,本质是为了在信息完全相同时保持稳定,代价是结果与历史事件相关:谁先惊动会话,谁就可能决定出口。
基本信息
| 适用条件 | 两条待比较路径均为 eBGP 学习来的路径 |
|---|---|
| 判定依据 | 路径进入本地 BGP 表的先后(接收时间) |
| 稳定性作用 | 信息相同时不来回切换,避免选路抖动 |
| 副作用 | 重启、复位会话、软刷新都可能改变先后关系 |
| 平台差异 | Cisco 与华为 VRP 都有对应步骤,具体位置以本平台手册顺序为准 |
典型使用场景
- 双出口选路结果看似随机:查是否两条 eBGP 路径属性完全对称,最后落在这步比较
- 设备重启后出口变了:很可能是重建会话顺序与重启前不同
- 变更前评估风险:任何会重置会话的操作,都可能改变无差异化路径的选路结果
- 设计双出口策略:明确用 LOCAL_PREF 或 MED 表达优先级,避免依赖先后顺序
- 复盘故障:把会话重建时间线与选路变化对齐,判断是否为该步骤导致
观察相关状态
观察相关状态
# 看候选路径的属性与接收信息
show ip bgp 10.1.1.0/24
# 对比两条路径的接收时间与邻居年龄
show ip bgp neighbors 10.0.0.2 | include uptime|BGP state
show ip bgp neighbors 10.0.0.6 | include uptime|BGP state
# 华为 VRP
display bgp routing-table 10.1.1.0 24 verbose排查读法
| 观察点 | 含义 | 提示 |
|---|---|---|
| 路径属性 | LOCAL_PREF / MED / AS_PATH 是否完全一致 | 属性有差异就不会走到该步骤,先看属性 |
| 接收时间 | 路径何时进入本地表 | 时间接近时,顺序受建立速度影响 |
| 邻居 Up 时长 | 会话最近一次建立的时间 | 时间线可用于解释出口变化 |
| 是否本地始发 | network 宣告的本地路由优先级更高 | 本地路由在前面的步骤就已胜出 |
把关键路径差异用 LOCAL_PREF 或 MED 显式表达出来,选路就不再依赖到达顺序:策略可读、可回退,也不怕重启带来意外切换。