首页/网络/BGP 与广域网速查/route-policy if-match 条件类型速查
路由过滤与重分发66 条

route-policy if-match 条件类型速查

if-match 支持按多个维度匹配路由:ip-prefix、as-path-filter、community-filter、tag、route-type 等;同节点内不同条件需同时满足才命中。

BGP 与广域网速查网络更新于 2026-10-13

route-policy 的匹配条件

华为 VRP 的 route-policy 用 if-match 描述「什么样的路由命中本节点」,可用维度包括前缀范围、AS_PATH 正则、社区取值、标记与路由类型等。规则与 route-map 类似但表达更集中:同一节点内的多条 if-match 需要同时满足,节点命中后执行该节点的动作;如果所有节点都没命中,通常按平台默认行为处理,因此实际策略末尾往往要留一条放行的兜底节点。

基本信息

匹配前缀if-match ip-prefix <名>,按网段与掩码范围匹配
匹配来源if-match as-path-filter <名>,按 AS_PATH 正则匹配
匹配标签if-match community-filter <名>,按社区取值匹配
匹配标记if-match tag <值>,用于重分发防环
组合语义同节点内多条 if-match 为「与」,全部满足才命中

典型使用场景

  • 入向策略:只对业务前缀叠加来源 AS 条件,避免误伤其他路由
  • 出口精细化:按业务类型前缀与社区标签同时限定,做定向发布
  • 重分发防环:用 tag 条件拒掉回流路由
  • 多来源区分:不同上游用不同 AS_PATH 条件分别处理
  • 策略拆分:条件过多时拆成多个节点,提升可读性与可维护性

组合示例

组合示例
route-policy RP-IN permit node 10
 if-match ip-prefix PL-BIZ
 if-match community-filter CF-CUST
 apply local-preference 150
#
route-policy RP-IN permit node 20      # 兜底:其余路由不打优先级
#
bgp 65001
 ipv4-family unicast
  peer 10.0.0.2 route-policy RP-IN import
# 核对
display bgp routing-table 10.1.1.0

常用 if-match 条件

条件匹配对象典型场景
ip-prefix网段与掩码范围只对业务前缀做动作
as-path-filterAS_PATH 正则按来源 AS 过滤或区分上游
community-filter社区取值按标签执行差异化策略
tag路由标记重分发防环
route-type路由类型或协议来源只对特定来源的路由生效
节点命中后节点内的 apply 动作会一起执行;条件堆得太多时,拆成若干节点比把五个 if-match 塞进一个节点更容易被人读懂,也更容易在排障时定位是哪一条在起作用。
评审时把每个节点读成一句人话,例如「带客户社区的 10.0.0.0/8 范围路由,入向优先级设为 150」。读不成通顺句子的节点,通常就是条件写错或漏写的地方。

易错点

  • 把同节点的多个条件当成或关系:匹配范围判断偏差,策略影响面超出预期
  • 缺少兜底节点:未命中路由按平台默认行为处理,可能被整体拒绝
  • if-match 写法与列表类型不匹配:引用错的过滤器名称时策略不报错但不生效
  • 条件堆叠过多:单节点难以维护,变更时容易误删关键条件

数据来源与参考

  • 华为: route-policy if-match 子句参考
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌