多路径装载是什么
当同一前缀有多条路径、且参与比较的属性完全相同时,BGP 可以把它们同时装载进路由表做逐流转发,这就是多路径装载。maximum-paths 控制可装载的条数,EBGP 与 IBGP 可以分别设置;装载后主表里该前缀会出现多个下一跳。
基本信息
| 命令 | maximum-paths <n> 与 maximum-paths ibgp <n> |
|---|---|
| 作用范围 | BGP 进程级,EBGP 与 IBGP 分开计数 |
| 前提 | 属性一致;IBGP 还要求到各下一跳的 IGP 度量一致 |
| 验证 | show ip route <前缀> 显示多个下一跳 |
| 转发方式 | 按流哈希分配,同一条流固定走一条路径 |
| 注意 | best 路径标记仍然唯一,与多路径装载是两件事 |
典型使用场景
- 双运营商接入,带宽相近时希望两条都参与转发
- 数据中心双上行,链路上联带宽对等时提升利用率
- IBGP 场景内两条等价路径分担,需要在装载中去掉 IGP 度量差异
- 突发流量场景下提供额外的转发能力与冗余
- 与 AS-PATH 长度相同的多路径配合,放宽序列差异用 multipath-relax
配置与验证
配置与验证
router bgp 65001
maximum-paths 4 # EBGP 最多装载 4 条等价路径
maximum-paths ibgp 2 # IBGP 最多装载 2 条
!
show ip route 10.1.1.0/24 # 主表应出现多个下一跳
show ip bgp 10.1.1.0/24 # 确认属性一致的可装载路径集合
show ip bgp summary # 核对相关邻居前缀数是否正常装载前要一致的属性
| 属性 | 是否必须一致 | 说明 |
|---|---|---|
| Weight / LOCAL_PREF | 必须一致 | 任何一个不同都会分出胜负,无法同时装载 |
| AS_PATH 长度 | 必须一致 | 序列不同需配合 multipath-relax |
| ORIGIN | 必须一致 | i / e / ? 不同则不能并列 |
| MED | 必须一致 | 同邻居 AS 比较时差异会导致选出一条 |
| 到下一跳的 IGP 度量 | IBGP 装载要求一致 | 差异过大时只装载代价最小的那条 |
| 下一跳设备 | 可为多条 | 各自经不同出口转发 |
多路径装载不等于多路径决策:best 路径依然只有一条,带 > 标记的那条是决策结果,装载是随后的转发行为。
逐流哈希意味着单个大流量会话只会用一条路径,带宽不会叠加;需要叠加只能靠上层多连接或应用侧并发。