set 语句一览
route-map 的 set 部分决定命中之后改写哪些属性。BGP 场景中最常用的是 LOCAL_PREF、MED、weight、community、扩展社区与 AS_PATH 预置;重分发场景还会用到 origin、tag 与 metric-type。每条 set 语句都有适用范围,写错方向或写在不支持的位置上时,配置能敲进去但不会产生效果。
- set local-preference 150 —— 本 AS 出口偏好,仅 iBGP 邻居间传播
- set metric 50 —— 设置 MED,传给 eBGP 对端,出 AS 不再传播
- set weight 200 —— 本机权重,优先级最高且不对外传播
- set community 65001:100 additive —— 追加社区标签,需邻居开启 send-community
- set extcommunity rt 65001:100 additive —— 设置 VPN 路由目标(RT)
- set as-path prepend 65001 65001 —— 加长 AS_PATH,仅在 eBGP 出方向有效
- set origin igp —— 改写 ORIGIN,慎用以免掩盖真实来源
- set tag 100 —— 重分发场景写入路由标记,用于防环
- set metric-type type-1 —— 重分发到 OSPF 时指定外部路由类型
- set ip next-hop 10.0.0.1 —— 改写下一跳,需保证对端可解析该地址
属性适用范围
| set 对象 | 传播范围 | 常见误用 |
|---|---|---|
| weight | 仅本机 | 用在出方向期待对端感知 |
| LOCAL_PREF | 本 AS 内 iBGP | 对 eBGP 出向设置,属性被剥离 |
| MED | 传给 eBGP 对端,不再向后 | 期待跨多跳 AS 传递 |
| community | 可选传递,跨 AS 有效 | 未开启 send-community |
| prepend | eBGP 出方向 | 对 iBGP 邻居配置,无效果 |
| tag | IGP 内部使用 | 期待 BGP 承载该字段 |
组合示例
组合示例
route-map RM-MIX permit 10
match ip address prefix-list PFX-BIZ
set local-preference 150
set metric 50
set community 65001:150 additive
!
router bgp 65001
neighbor 10.0.0.2 route-map RM-MIX in
!
show ip bgp 10.100.0.0/16
# 核对 LocPrf / Metric / Community 三列重分发场景的 set
重分发场景的 set
route-map RM-BGP2OSPF permit 10
match ip address prefix-list PL-AGG
set metric 100
set metric-type type-2
set tag 65001
!
router ospf 1
redistribute bgp 65001 subnets route-map RM-BGP2OSPF
!
show ip ospf database external基本信息
| 序列顺序 | 自上而下匹配,命中即止 |
|---|---|
| 缺省行为 | 未命中任何 permit 时按拒绝处理 |
| 生效时机 | 入向立即影响本机选路,出向需软刷新让对端重收 |
| 验证命令 | show route-map <名> 看命中计数,show ip bgp <前缀> 看属性 |
| 命名建议 | 名称体现方向与业务,例如 RM-CUST-A-IN |
set origin 与 set ip next-hop 属于会掩盖真实信息的改写:前者让路由看起来来自 IGP,后者可能指向不可达地址导致路由失效。使用前先确认排障时仍能还原真实来源。
改写后的核对清单
- 确认 route-map 的引用方向:入向影响本机选路,出向影响对端接收
- 确认序列命中计数在增长,计数为零说明 match 条件没有匹配到任何路由
- 用具体前缀的详细输出核对属性值,而不是只看路由数量是否变化
- 出向改写后做一次软刷新,避免对端仍使用旧属性得出结论
- 把本次改写的意图与回退方式写进变更记录,便于后续审计与撤销