route-map 是什么
route-map 是 Cisco 体系中的策略容器,由带序号的条目组成:每条先做 match 判断,命中后执行 set 动作并结束整个判断,不再看后面的条目。它不自己产生效果,需要挂到邻居、重分发或策略应用点上才生效,是 BGP 属性调整与过滤的通用工具。
基本信息
| 结构 | route-map <name> permit|deny <seq> |
|---|---|
| match | 判断条件,同一条目内多个 match 为与关系 |
| set | 命中后要执行的属性修改动作 |
| 判断顺序 | 按序号从小到大,命中即执行并结束 |
| 未命中 | 按应用点的缺省规则处理,邻居方向默认视为拒绝 |
| 华为对应 | route-policy permit/deny node N,if-match 与 apply |
典型使用场景
- 按前缀设置 LOCAL_PREF、weight、MED 等属性引导选路
- 对邻居做入向或出向过滤,只放行指定前缀集合
- 重分发时限定引入范围并设置种子度量
- 给路由打社区标签,供下游策略引用
- 同一策略复用到多个邻居,减少重复配置
结构与挂载
结构与挂载
ip prefix-list PL-A permit 10.1.0.0/16 le 24
route-map RM-DEMO permit 10 # 第 10 条:命中后设属性
match ip address prefix-list PL-A # match 条件:由前缀列表限定范围
set local-preference 150 # set 动作:抬高本地优先级
route-map RM-DEMO permit 20 # 第 20 条:空 permit 放行其余路由
!
router bgp 65001
neighbor 10.0.0.2 route-map RM-DEMO in # 入向应用
!
show ip bgp 10.1.1.0/24 | include locPrf # 验证属性是否被改写常见 match 与 set 项
| 类别 | 常用条目 | 作用 |
|---|---|---|
| match | ip address prefix-list | 按前缀范围命中路由 |
| match | as-path / community | 按路径或社区标签命中 |
| match | interface / ip next-hop | 按接口或下一跳命中 |
| set | local-preference / weight / metric | 调整选路相关属性 |
| set | community / as-path prepend | 打标签或加长路径 |
| set | ip next-hop | 改写下一跳,需谨慎评估 |
空 permit 条目(无 match 无 set)表示放行其余路由且不修改属性,常用于兜底;而空 deny 条目等同于拒绝全部。
route-map 名称大小写敏感且拼写必须完全一致:邻居引用了不存在的名称时策略静默失效,路由照常收发,问题只在选路结果上体现。
变更前的检查动作
变更前的检查动作
show route-map RM-DEMO # 查看策略内容与引用计数
show ip bgp neighbors 10.0.0.2 advertised-routes | include Total # 记录发布总数
show ip bgp 10.1.1.0/24 # 记录目标前缀当前属性
# 改完再比对这三项,避免策略写窄或写反后才发现查看策略内容用 show route-map <名称>:输出里的引用计数能确认策略是否真的被邻居或进程使用,计数为 0 说明策略没挂上去。