continue 让序列接着走
route-map 的默认处理逻辑是「命中即止」:报文匹配到某个序列后,执行该序列的 set 动作就结束处理,不再看后面的序列。continue 改变了这一点:在某个序列里写上 continue 并给出下一个序列号,匹配成功后不结束,而是跳到指定序列继续处理,于是可以在一轮里组合多段 set 动作——例如先在序列 10 打上 community 标记,再通过 continue 进入序列 20 设置本地优先级。它解决了「同一批路由需要连续应用多组动作」的问题,而不必把动作堆在一个序列里或依赖多层嵌套的 route-map。
基本信息
| 平台 | Cisco IOS/IOS-XE 与 IOS-XR,关键字与支持版本略有差异 |
|---|---|
| 语法 | route-map <名> permit <序列号> 下写 continue <下一序列号> |
| 默认行为 | 命中序列后停止处理后续序列 |
| 典型用途 | 多段 set 组合,例如先打标再设属性 |
| 序列要求 | 被 continue 指向的序列必须存在且为 permit |
| 查看 | show route-map <名> 查看各序列与动作 |
典型使用场景
- 同一批路由既需要打 community 又要调整本地优先级
- 策略分层:把可复用的匹配与动作拆到不同序列
- 渐进改造:新增序列而不改动既有序列的动作
- 与出方向策略配合:对同一批路由叠加多项属性修改
- 排障核对:确认路由最终属性是哪些序列累积的结果
配置示例
配置示例
route-map RM-X permit 10
match ip address prefix-list PFX-A
set community 65001:100 additive
continue 20
! 序列 20 只做属性设置,不再重复匹配
route-map RM-X permit 20
set local-preference 120
! 核对各序列与最终命中情况
show route-map RM-X
show ip bgp 10.1.0.0/16 | include Community|localpref处理行为对照
| 配置方式 | 处理路径 | 适用场景 |
|---|---|---|
| 默认(无 continue) | 命中序列后结束 | 单一动作的简单策略 |
| 带 continue | 命中后跳到指定序列继续 | 多段动作组合 |
| 在一个序列堆多个 set | 一次执行全部动作 | 动作少且逻辑紧密 |
| 多层 route-map 嵌套 | 依次调用 | 策略复用,但可读性差 |
continue 指向的序列如果不存在,行为取决于实现,可能停在原序列也可能报错;上线前用 show route-map 与实际路由属性共同验证。
不同平台的 continue 语义与支持情况不同,跨厂商设计策略时不要假设一致。