iBGP 多路径的额外条件
让两条等价路径同时进入转发面,光配 maximum-paths 不够:BGP 还要求这些路径在关键属性上等价——AS_PATH 长度与内容、参与比较的 MED、LOCAL_PREF 等必须一致,否则它们根本不构成等价候选。iBGP 场景还要特别注意下一跳:两条路径的下一跳必须能分别递归解析到不同的出接口,若解析到同一个出接口,本质上仍只有一条路径。
基本信息
| 开启命令 | maximum-paths N,iBGP 通常需单独指定 maximum-paths ibgp N |
|---|---|
| 等价前提 | AS_PATH 长度与内容、MED、LOCAL_PREF 等关键属性一致 |
| IGP 度量条件 | 到各下一跳的 IGP 度量需一致,否则无法一并装载 |
| 下一跳要求 | 各路径下一跳必须解析到不同出接口 |
| iBGP 特有 | 从不同邻居或不同 RR 学来的同前缀路径才可能成为等价候选 |
| 验证入口 | show ip bgp <前缀> 看 multipath 标记,再看路由表与转发面 |
典型使用场景
- 双上联带宽叠加:两条等价路径同时转发,提高链路利用率
- 双 RR 集群:从两个反射器学到同一前缀的两条路径做负载分担
- 出口负载分担:需要按路径而不是按前缀分配流量
- 排查「配了 maximum-paths 还是只走一条」:属性不一致是最常见原因
- 容量规划验证:确认实际参与转发的路径条数与设计一致
配置与验证
配置与验证
router bgp 65001
maximum-paths 2 # eBGP 多路径
maximum-paths ibgp 2 # iBGP 多路径,部分平台需单独指定
!
show ip bgp 10.1.0.0 # 找 multipath 标记与参与转发的路径
show ip route 10.1.0.0 # 看路由表里是否出现多条等价下一跳
show ip cef 10.1.0.0 detail # 看转发面实际装载了几条路径配了多路径却没生效的常见原因
| 原因 | 现象 | 核对方式 |
|---|---|---|
| AS_PATH 长度不同 | 只有一条路径被标记为最优 | show ip bgp 比较各路径的 AS_PATH |
| MED 不同 | 路径不满足等价条件 | 核对 MED 值与是否开启跨 AS 比较 |
| IGP 度量不一致 | 属性看着一样但只有一条装载 | 对比到各下一跳的 IGP 度量 |
| 下一跳相同 | 两条路径实际走同一个出接口 | show ip route 看等价条目 |
| 只开了 eBGP 多路径 | iBGP 学来的路径仍单条转发 | 确认 maximum-paths ibgp 是否配置 |
等价判定发生在选路之后:先按选路规则选出最优路径,再判断其余路径是否与它等价。属性差一点点的路径不会成为等价候选,这就是很多「明明有两条路却只走一条」的根本原因。
iBGP 多路径常出现在双 RR 场景,卡住等价的往往是 AS_PATH 长度、MED 或 IGP 度量的细微差异,也可能是反射路径带来的附加字段不同;排查时逐字段对比属性,比反复清会话有效。