首页/网络/BGP 与广域网速查/华为 as-path-filter:正则过滤 AS_PATH
路由过滤与重分发66 条

华为 as-path-filter:正则过滤 AS_PATH

华为用 ip as-path-filter 定义 AS 路径正则,配合 filter-policy as-path-filter 或 route-policy if-match 使用;正则元字符与 Cisco 语义一致,但定义与引用语法不同。

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

华为侧的 AS_PATH 正则过滤

华为 VRP 用 ip as-path-filter 定义 AS 路径正则,再通过 filter-policy as-path-filter 号 import/export 或在 route-policy 中用 if-match as-path-filter 号 引用。正则元字符语义与 Cisco 一致(^ 起始、$ 结束、_ 分隔边界、.* 任意、[ ] 字符集),但定义与引用语法不同,跨厂商运维时不要把两边的命令混着写。

基本信息

定义ip as-path-filter <号> permit|deny <正则>
引用方式一filter-policy as-path-filter <号> import/export
引用方式二route-policy 中 if-match as-path-filter <号>,更灵活
查看display ip as-path-filter <号>
正则语义^ 行首、$ 行尾、_ 分隔边界、.* 任意、[ ] 字符集
常见错误漏写 $ 或 _,匹配到额外号段而不自知

典型使用场景

  • 入向净化:拒绝携带私用 ASN 的路径
  • 起源核对:只接受来自指定起源 AS 的路由
  • 策略组合:在 route-policy 中与团体、前缀条件同时匹配,构造多条件策略
  • 跨厂商迁移:从 Cisco 配置翻译过来时逐个核对正则与引用点
  • 割接验证:用 display 命令核对过滤前后的路由数量变化
  • 故障复现:把线上正则拿到实验环境逐条验证匹配结果

定义与引用

定义与引用
ip as-path-filter 10 permit ^65002$            # 只匹配起源 AS 65002
ip as-path-filter 10 permit ^65002 65003       # 对端为 65002、起源为 65003
!
bgp 65001
 ipv4-family unicast
  peer 10.0.0.2 as-number 65002
  peer 10.0.0.2 enable
  filter-policy as-path-filter 10 import       # 在地址族内引用
!
display ip as-path-filter 10                   # 查看已定义的正则
display bgp routing-table                      # 核对过滤后的路由

正则元字符速查

符号含义示例
^匹配 AS_PATH 起始^65002 表示起源侧为 65002
$匹配 AS_PATH 结束^65002$ 表示路径只含 65002
_匹配分隔边界_65002_ 匹配任意位置
.匹配任意单个字符.* 表示任意长度
[ ]字符集[0-9] 匹配一位数字
漏写锚点是最高频的错误:AS_PATH 是空格分隔的串,没有 ^ 和 $ 时正则会匹配到子串——例如 65002 可能匹配到 165002 这类号段,过滤结果与预期不符。
filter-policy 与 route-policy 的引用点不同:前者直接指定 import/export,后者的最终结果还受 route-policy 中其他语句的顺序与 permit/deny 影响。改了正则却没生效时,先确认改的是不是真正被引用的那一份。

易错点

  • 锚点写错或漏写:AS_PATH 是空格分隔串,没有 ^ 和 $ 时会匹配到子串,过滤结果与预期不符
  • 引用点混淆:filter-policy 与 route-policy 的引用方式不同,改了未被引用的那份等于白改
  • 只看正则不看路由数量:用 display 核对过滤前后的数量,是验证是否生效最直接的办法
  • 跨厂商照搬命令:华为与 Cisco 的定义与引用语法不同,混写会报错甚至产生语义偏差
  • 正则过于宽松:.* 全放行等于没过滤,permit 与 deny 的覆盖关系必须逐条确认

数据来源与参考

  • 华为: ip as-path-filter 命令参考
  • RFC 4271: AS_PATH 属性
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌