apply 动作在改什么
route-policy 里的 apply 子句负责设置属性,作用对象是 BGP 路径属性:local-preference、community、as-path、cost(MED)、origin 等。命令怎么写只是表面,关键是搞清楚「改哪个属性、在哪个方向生效、对谁可见」——同一句 apply 用在入方向还是出方向,效果完全不同。
基本信息
| 适用平台 | 华为 VRP 的 route-policy,其他平台有等价策略语言 |
|---|---|
| 常用动作 | apply local-preference / community / as-path / cost / origin |
| 方向语义 | import 影响本机学习结果,export 影响对端收到的内容 |
| 作用范围 | local-preference 仅本 AS 内有效;MED 影响对端入口选择 |
| 校验顺序 | 条件命中后执行 apply,未命中的条目继续向下匹配 |
典型使用场景
- 设本 AS 出口优先级:入向 apply local-preference,按链路类型分层
- 出口打标:export 方向 apply community additive,让对端按标签调整策略
- 预置 AS_PATH:出向追加本 AS 号,影响对端路径长度比较
- 设置 MED:向对端表达入口偏好,注意比较范围的限制
- 策略迁移改造:把 IOS route-map 逐条翻译成 route-policy 时,核对方向与动作对应关系
出方向示例与核对
出方向示例与核对
# 华为 VRP:对指定前缀追加社区与预置 AS_PATH
route-policy RP-OUT permit node 10
if-match ip-prefix PL-BIZ
apply as-path 65001 65001 additive
apply community 65001:200 additive
#
bgp 65001
ipv4-family unicast
peer 10.0.0.2 route-policy RP-OUT export
# 核对:对端应看到追加后的社区与更长的 AS_PATH
display bgp routing-table 10.1.1.0常用 apply 动作速查
| 动作 | 对应属性 | 要点 |
|---|---|---|
| apply local-preference <n> | Local_Pref | 仅在本 AS 内传递,边界处设置 |
| apply community <aa:nn> additive | Community | additive 表示追加而非覆盖既有标签 |
| apply as-path <as> additive | AS_PATH | 常用于出方向预置 AS,影响对端选路 |
| apply cost <n> | MED | 影响对端入口选择,默认只在同 AS 邻居间比较 |
| apply origin igp|egp|incomplete | ORIGIN | 改动后数值越低越优先,用于策略校验场景 |
route-policy 与 route-map 的匹配流程不完全相同:route-map 按序列逐条向下扫描,route-policy 按语句顺序匹配后执行动作。迁移策略时逐条对照语义,不要只做语法翻译。
动作改的是路径属性,属性改动前先存一份快照:把关键前缀的 LOCAL_PREF、社区与 AS_PATH 抄下来,改完逐项对比,避免出现「感觉变了但说不清哪里变了」。属性取值格式与上限各平台有差异,写法以本版本文档为准。