为什么重分发要配 route-map
redistribute 不加参数就是「按来源整批引入」,范围由协议本身决定,运维无法预知会带进什么。在命令后挂 route-map,可以在一次评估里同时完成前缀筛选与属性设置:permit 序列放行并打属性,deny 序列或末尾隐含拒绝挡掉其余条目。
基本信息
| 配置位置 | router bgp 下 redistribute <来源> route-map <名字> |
|---|---|
| 适用协议 | static、connected、ospf、eigrp、isis、rip 等均可挂 |
| 执行顺序 | 序列号从小到大逐条匹配,命中即停止后续评估 |
| 默认行为 | 所有 permit 都没命中时按拒绝处理(隐含 deny) |
| 华为对应 | route-policy 的 node + if-match + apply 结构,语义一致 |
典型使用场景
- 只把业务网段引入 BGP,管理网段与互联地址不进外部路由表
- 引入时同步打 community 标签,供对端或本端后续策略匹配
- 引入时统一设置 MED,让对端入口选择符合双方约定
- 把 IGP 的度量折算成 BGP 的 MED 或 metric 语义,避免外部路由无度量
- 过渡期分阶段放开引入范围:先小范围验证,再逐步扩表
引入业务网段并打标
引入业务网段并打标
# 只引入业务前缀,同时打社区标签并统一设置 MED
ip prefix-list PFX-BIZ permit 10.10.0.0/16 le 24
route-map RM-OSPF2BGP permit 10
match ip address prefix-list PFX-BIZ
set community 65001:200 additive
set metric 50
route-map RM-OSPF2BGP deny 20
!
router bgp 65001
redistribute ospf 1 route-map RM-OSPF2BGP
!
show route-map RM-OSPF2BGP # 看每条序列的命中计数常用 set 与作用
| set 语句 | 写入属性 | 生效范围 |
|---|---|---|
| set metric 50 | MED(多出口鉴别器) | 随路由传给 eBGP 对端,出 AS 不传递 |
| set community 65001:200 additive | COMMUNITY | 可选传递属性,跨 AS 继续传播 |
| set local-preference 150 | LOCAL_PREF | 仅在本 AS 内的 iBGP 邻居间传播 |
| set origin igp | ORIGIN | 改写起源属性,慎用以免掩盖真实来源 |
| set tag 100 | 路由标记(重分发场景) | IGP 内使用,BGP 不承载该字段 |
验证与回退
验证与回退
show route-map RM-OSPF2BGP # 命中计数:序列未增长说明没匹配到
show ip bgp # 看引入结果与属性
show ip bgp 10.10.1.0/24 # 逐项核对 community、metric
!
# 回退:先取消重分发,再删 route-map,避免中间态无序铺开
router bgp 65001
no redistribute ospf 1 route-map RM-OSPF2BGProute-map 末尾隐含 deny:没有兜底 permit 时,任何未命中序列的前缀都不会被引入。这正是过滤生效的原因,但也意味着漏写一条序列就会静默丢路由,上线后用命中计数逐序列确认。