把 OSPF 引入 BGP 的要点
把 OSPF 学到的路由引入 BGP,是把内部网段发布到外部的常见做法。关键有三点:用 route-map 与前缀列表限定引入范围,用 metric 设定种子 MED,以及在 OSPF 侧先做汇总避免明细洪水。缺了任何一项,结果要么是前缀规模失控,要么是对端入口选择与设计不符。
基本信息
| 命令 | redistribute ospf <进程> metric <值> route-map <名> |
|---|---|
| ORIGIN | 引入后变为 incomplete(显示为 ?) |
| 前缀规模 | 先汇总再引入,避免明细洪水 |
| 防环 | 反向重分发配合 tag 或社区约定 |
| 华为对应 | import-route ospf <进程>,配合 route-policy |
| 验证 | show ip bgp、show ip bgp neighbors <ip> advertised-routes |
典型使用场景
- 数据中心内部网段需要对外发布,且内部运行 OSPF
- 园区网改造期间把内部路由临时引入 BGP 承载
- 与多运营商互联时只发布业务段,管理段与互联段不外发
- 双边界设备同时引入时防止环路,需要配合标签方案
- 迁移完成后撤销重分发,改用汇总加 network 宣告
配置示例
配置示例
router bgp 65001
redistribute ospf 1 metric 200 route-map RM-OSPF2BGP
!
ip prefix-list PL-DATACENTER permit 10.20.0.0/16 le 24
route-map RM-OSPF2BGP permit 10
match ip address prefix-list PL-DATACENTER # 只引入数据中心网段
route-map RM-OSPF2BGP deny 999 # 其余显式拒绝
!
show ip bgp | include 10.20 # 核对引入结果
show ip bgp neighbors 10.0.0.2 advertised-routes | include Total引入前的检查项
| 检查项 | 风险 | 做法 |
|---|---|---|
| 引入范围 | 管理段与互联段被一并外发 | route-map 加前缀列表限定 |
| 种子度量 | 对端看到的 MED 不符合设计 | 显式设置 metric |
| 前缀规模 | 明细数量冲击对端表容量 | 先在 OSPF 侧汇总 |
| 回引路径 | 路由在两域间循环 | 配合 tag 或社区防环 |
| 发布对象 | 只该发给某个对端却发给了全部 | 按邻居分别应用出向策略 |
ORIGIN 显示为 ? 是引入的正常结果,仅在属性比较走到这一步时才有影响,不必为此修改配置。
双边界设备各自引入且没有防环约定时,容易形成环路或次优路径:两台设备的引入范围与标签约定必须成对设计。
引入完成后逐项验收:前缀集合是否与清单一致、种子度量是否为设计值、对端是否只收到该收的段;三项都确认后再撤销过渡期的临时放行规则。