route-map 的条目与序号
route-map 是路由策略的工具箱:内部按序号排列多个条目,每条由 match 条件与 set 动作组成。设备从上到下逐条评估,命中第一条 permit 就执行动作并结束,只有写了 continue 才会跳到指定序号继续处理。序号既决定评估顺序,也决定能不能在中间插入新需求。
基本信息
| 结构 | route-map <名> permit|deny <序号> |
|---|---|
| 评估顺序 | 按序号从小到大,命中即停 |
| continue | 命中后跳转到指定序号继续处理,平台支持有差异 |
| 无 match 条件 | 视为匹配全部 |
| 结束行为 | 所有条目都不命中则按隐式拒绝处理 |
典型使用场景
- 把多条 set 叠加到同一路由:先设 Weight,再设 LOCAL_PREF
- 按不同前缀集合分别设定团体属性与度量
- 在既有策略中间插入一条例外,避免重写整个 route-map
- 重分发时限定来源协议并只放行业务前缀
- 策略审计:让序号与业务意图对齐,便于回溯变更
continue 叠加示例
continue 叠加示例
route-map RM-CONT permit 10
match ip address prefix-list PL-A # 只对业务前缀命中
set weight 200 # 第一条动作:设本地权重
continue 20 # 继续往下处理,而不是到此结束
!
route-map RM-CONT permit 20
set local-preference 150 # 第二条动作:叠加内部优先级
!
show route-map RM-CONT # 核对条目顺序与命中计数条目读取要点
| 字段 | 含义 | 注意 |
|---|---|---|
| 序号 | 评估顺序 | 插入新条目要留出序号余量 |
| permit/deny | 命中后的动作为允许/拒绝 | deny 条目会直接丢弃该路由 |
| match | 进入条件 | 无 match 表示全匹配,容易误伤 |
| set | 修改动作 | 命中即停时,后续条目的 set 不会执行 |
常见误解是「多个条目会依次执行」:默认命中即停,只有 continue 才会继续往下;不用 continue 时后面条目的 set 全部不生效。
continue 的目标条目如果自身带 match 条件,条件不满足时该段 set 同样不执行,跳转不等于无条件执行。
各平台写法差异大:华为 VRP 用 route-policy 配 if-match 与 apply 子句,概念相近但语法不通用,迁移时需要逐条改写而不是改关键字。