首页/网络/BGP 与广域网速查/as-path 过滤器:按 AS 路径匹配
路由过滤与重分发66 条

as-path 过滤器:按 AS 路径匹配

ip as-path access-list 用正则匹配 AS_PATH,配合 filter-list 应用;常用于拒绝含特定 AS、私用 AS 或异常长路径的更新。

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

as-path 过滤器是什么

as-path 过滤器用正则表达式匹配路由的 AS_PATH 属性,再通过 filter-list 挂到邻居上生效。它解决的是前缀列表做不到的事:判断「这条路由经过了谁、起源是谁」,因此常用于拒绝来自特定 AS 的路由、过滤私用 ASN、以及只接收对端自有地址段。

基本信息

定义语法ip as-path access-list <编号> permit|deny <正则>
应用方式neighbor <ip> filter-list <编号> in|out
匹配对象AS_PATH 字符串,逐条顺序判断、命中即停
缺省行为列表尾部隐含拒绝,未命中的更新被过滤
查看show ip bgp filter-list <编号> 显示命中集合
华为对应ip as-path-filter 编号 + peer as-path-filter 编号 import|export

典型使用场景

  • 只接收对端自有前缀:用 ^对端AS$ 限定起源,防止接收转发来的第三方路由
  • 过滤私用 ASN:拒绝 AS_PATH 中含 64512~65535 的更新
  • 拒绝异常长路径:用于缓解路径伪造与配置错误带来的影响
  • 出向防泄漏:只向对端发布自己起源的路由,避免成为中转
  • 排障定位:按正则筛选特定来源的更新观察属性变化

定义与应用

定义与应用
ip as-path access-list 10 permit ^65002$        # 起源为 65002 的路由
ip as-path access-list 10 permit ^65002_       # 从 65002 直接传来的路由
ip as-path access-list 10 deny .*              # 其余全部拒绝(显式写出更清晰)
!
router bgp 65001
 neighbor 10.0.0.2 filter-list 10 in           # 入向应用
!
show ip bgp filter-list 10                     # 查看该列表命中的路由集合
show ip bgp regexp ^65002$                     # 按正则直接筛选 BGP 表

常用正则与用途

正则含义典型用途
^65002$起源 AS 为 65002只接收对端自有前缀
^65002_路径以 65002 开头只接收直连来自该 AS 的路由
_65002_路径中任意位置出现 65002拒绝经过该 AS 的更新
^$本地起源(空路径)只发布本 AS 产生的路由
.* 或 .+任意路径作为兜底条目显式拒绝或放行
正则写宽会误杀:上线前用 show ip bgp filter-list 逐条核对命中集合,确认被过滤的是预期路由。
列表只写 permit 时尾部隐含拒绝;只写 deny 时其余全部放行,两种写法的影响面完全相反,变更前务必确认列表里已包含兜底条目。
编号只是标识,不决定过滤顺序:与 ACL 不同,as-path 列表按正则在列表内的书写顺序判断,编号仅用于引用与维护。

易错点

  • 把 AS_PATH 当普通字符串:_ 边界、^ $ 首尾锚点语义必须先掌握
  • 列表里只写 permit:尾部隐含拒绝,未列出的一律被拦
  • 入向过滤影响传播:本机学不到的前缀也就无法再传给其他邻居,影响面比想象中大
  • 正则未做小范围验证:写宽后误杀对端路由,对端会看到前缀数骤降

数据来源与参考

  • Cisco: ip as-path access-list
  • RFC 4271: AS_PATH 属性
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌