用 Cost 控制 OSPF 选路
OSPF 选路唯一的度量就是接口 Cost:区域内路径累加各段 Cost,总和小的路径被选为最优。不手工指定时,Cost 由参考带宽除以接口带宽算出,例如参考带宽 100M 时千兆口为 1、百兆口为 1、十兆口为 10。要引导流量走指定链路,手工把那条链路的 Cost 改小、把要避开的改大即可。需要特别注意的是 Cost 与方向相关:它影响的是本设备计算出的出方向路径,双向走向一致需要两端一起规划。
基本信息
| 适用场景 | 主备链路选路、把流量压到指定链路 |
|---|---|
| 华为/H3C 命令 | 接口下 ospf cost 值 |
| 思科命令 | 接口下 ip ospf cost 值 |
| 默认计算 | 参考带宽除以接口带宽,参考带宽默认 100Mbps(部分平台不同) |
| 验证命令 | display ospf interface、show ip ospf interface |
典型使用场景
- 主备链路:把主用链路 Cost 调小,让流量优先走它,备份链路自动闲置
- 避让低速链路:把微波、专线等带宽小的链路 Cost 调大,防止流量误入
- 负载分担调整:通过 Cost 比例控制两条链路的流量分配比例
- 改造过渡:新链路先调大 Cost 观察,再正式切入主用角色
- 不对称路径治理:发现来回路径不一致时,用 Cost 引导其中一侧改走合理路径
华为 VRP 与 H3C
华为 VRP 与 H3C
[Huawei] interface GigabitEthernet0/0/2
[Huawei-GigabitEthernet0/0/2] ospf cost 100 ! 手工指定 Cost,覆盖自动计算值
[Huawei-GigabitEthernet0/0/2] display ospf interface GigabitEthernet0/0/2
! 缺省按带宽自动计算:参考带宽 100M 时千兆口为 1
! H3C 命令同名思科 IOS
思科 IOS
SW-CORE-01(config)# interface GigabitEthernet0/2
SW-CORE-01(config-if)# ip ospf cost 100
SW-CORE-01# show ip ospf interface GigabitEthernet0/2 | include Cost
! 参考带宽可用 auto-cost reference-bandwidth 统一调整
SW-CORE-01# show ip ospf | include ReferenceCost 怎么算与怎么用
| 项目 | 说明 | 注意事项 |
|---|---|---|
| 自动计算 | 参考带宽 ÷ 接口带宽 | 参考带宽按平台不同,需实际查看 |
| 手工指定 | 接口下直接写 Cost 值 | 手工值优先,不受参考带宽变化影响 |
| 累加规则 | 区域内按沿途各段累加 | 只改一侧只影响该方向的计算 |
| 取值范围 | 1 到 65535 | 值越小越优先,不要跨厂商照抄经验值 |
| 验证 | 查看接口 Cost 与路由表下一跳 | 改完要确认实际生效值 |
Cost 只影响本设备的出方向选路。要让来回路径都符合规划,需要在链路两端分别调整,或者与路由引入、区域边界设计一起安排。
手工指定的 Cost 不受参考带宽调整影响,而自动计算的那些会全部变化。所以只调整参考带宽时,手工值所在链路的相对关系会悄悄改变,需要重新核算整网度量。