种子度量为什么必须给
把 BGP 路由引入 IGP(OSPF、IS-IS、RIP、EIGRP)时必须提供种子度量,否则路由可能按无穷大处理、根本装不进 IGP。不同协议默认行为不同:OSPF 对 BGP 路由有默认度量,EIGRP 与 RIP 通常必须显式给出;缺参数时多数实现不会报错,只是静默地不引入。
基本信息
| 基本规则 | 引入方向的协议必须得到度量,否则路由不安装 |
|---|---|
| BGP 到 OSPF | 默认度量 20(BGP 路由为 1),需 subnets 才带掩码引入 |
| BGP 到 EIGRP | 无默认,必须显式指定 metric 参数 |
| BGP 到 RIP | 按无穷大处理,必须显式给出度量 |
| IGP 到 BGP | 无强制度量要求,建议用 route-map 设置属性 |
| 排查要点 | 缺度量时多数情况没有报错信息 |
典型使用场景
- 迁移过渡:把 BGP 路由临时引入 IGP 打通新旧网络
- 排障「重分发没生效」:先确认是否漏了度量参数
- OSPF 引入明细:用 subnets 关键字避免只按主类网络引入
- 选路设计:种子度量会直接影响 IGP 中的路径选择
- 变更评审:引入 IGP 影响面大,需要评估次优路径与环路风险
不同协议的写法
不同协议的写法
router eigrp 100
redistribute bgp 65001 metric 100000 100 255 1 1500 # 必须显式给度量
!
router rip
redistribute bgp 65001 metric 3 # RIP 用跳数作为度量
!
router ospf 1
redistribute bgp 65001 subnets # 带掩码引入,避免只引入主类引入方向与默认行为
| 引入方向 | 默认行为 | 说明 |
|---|---|---|
| BGP 到 OSPF | 默认度量 20(BGP 路由为 1) | subnets 决定是否带掩码引入 |
| BGP 到 EIGRP | 无默认,必须显式 | 缺度量参数则不引入 |
| BGP 到 RIP | 视为无穷大,必须显式 | redistribute 后加 metric |
| IGP 到 BGP | 无强制度量要求 | 建议用 route-map 设置属性 |
缺度量大多不报错,这是它最难排查的地方:配置看起来完全正常,路由表里就是没有那些前缀,只能靠核对参数发现。
OSPF 引入 BGP 不加 subnets 时只按主类网络引入,明细前缀会丢失;这是老配置里非常常见的一处疏漏,迁移时要逐条核对。