OSPF 等价多路径
多条开销完全相等的路径,默认并不会全部参与转发:设备有最大等价路径数的限制,超出上限的路径只能闲置。把上限调大,OSPF 才会把流量按负载分担方式分摊到所有等价链路上。前提是路径真的等价,开销不等时无论怎么调都不会分担。
基本信息
| 适用平台 | 华为 VRP、H3C Comware、思科 IOS |
|---|---|
| 华为与 H3C 命令 | ospf 进程下 maximum load-balancing 数值 |
| 思科命令 | router ospf 下 maximum-paths 数值 |
| 等价前提 | 两条路径的累计开销完全相同 |
| 生效范围 | 只影响本机转发,两台设备需各自配置 |
| 验证方式 | display ip routing-table 查看同一前缀的下一跳数量 |
为什么没有分担
| 现象 | 原因 | 处理 |
|---|---|---|
| 路由表只有一条路径 | 开销不等价,或另一条路径未建立邻居 | 核对接口开销并确认邻居状态 |
| 路径数少于预期 | 超出最大等价路径数上限 | 调大上限后重新核对 |
| 只有本机分担、对端不分担 | 对端未配置相同上限 | 两端分别配置 |
| 配置后无变化 | 等价链路实际不同速,开销计算不同 | 统一速率或手工指定相同的接口开销 |
典型使用场景
- 双上行等价链路希望充分分担流量,避免一条链路拥塞
- 数据中心互联有多条同速链路,需要启用负载分担
- 扩容后新增链路没有参与转发,检查是否受路径数上限限制
- 会话级分担不均属于正常现象,需要评估是否改用逐包分担
- 排障时临时把上限调小,确认单链路是否足量承载
华为 VRP 与 H3C Comware
华为 VRP 与 H3C Comware
ospf 1
maximum load-balancing 8 # 华为:缺省值按版本确认
display ip routing-table 10.1.0.0 16 # 看同一前缀的下一跳数量
ospf 1
maximum load-balancing 8 # H3C:语法一致
display ospf routing思科 IOS
思科 IOS
router ospf 1
maximum-paths 8 # 缺省 4 条
show ip route 10.1.0.0 255.255.0.0 # 查看等价路径的下一跳
show ip cef 10.1.0.0 # 转发面是否也生成了多条路径等价是硬前提:两条链路速率不同或一端手工指定了接口开销,累计开销就不相等,此时调大上限没有任何作用。改之前先用显示命令确认路径开销确实一致。
负载分担是逐流而非逐包:单条大流量会话仍然只走其中一条链路。共用宿主机与源地址的应用会集中在同一条路径上,需要按业务分布评估是否需要改用基于包的分担方式。