首页/网络/BGP 与广域网速查/prefix-list 基础:前缀与长度匹配
路由过滤与重分发66 条

prefix-list 基础:前缀与长度匹配

ip prefix-list 按'网络前缀 + 掩码长度范围'匹配路由,逐条顺序判断、命中即停;是 BGP 与重分发场景通用的过滤工具。

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

prefix-list 是什么

prefix-list(前缀列表)是 Cisco 体系里按「网络前缀 + 掩码长度范围」匹配路由的工具,逐条顺序判断、命中即停,尾部隐含拒绝。它匹配的是路由前缀而不是数据包,因此与数据包 ACL 是两套完全不同的语义,BGP 邻居过滤与重分发过滤都依赖它。

与 ACL 的核心差别

ACL 匹配的是报文头部字段,前缀列表匹配的是「这条路由的网络地址与掩码长度」。同一条 10.1.1.0/24 路由,用 ACL 写 permit 10.1.1.0 0.0.0.255 表达的是「匹配该网段内的地址」,而前缀列表写 permit 10.1.1.0/24 表达的是「精确匹配这条 /24 路由」,两者在不同层面生效,不能互换。

基本信息

语法ip prefix-list <name> [seq n] permit|deny <prefix> [ge x] [le y]
匹配对象路由的网络前缀与掩码长度(不是数据包)
判断顺序序号从小到大,自上而下,命中即停
隐含动作尾部 deny any,未命中即被拒绝
华为对应ip ip-prefix + filter-policy / route-policy if-match ip-prefix
典型应用neighbor prefix-list、distribute-list、重分发过滤

典型使用场景

  • 入向净化:只接收对端自有与客户聚合,丢弃误发的默认路由和明细
  • 出向防泄漏:只向传输对端发布自己的地址段,防止越范围通告
  • 重分发控范围:把 OSPF/静态路由引入 BGP 前限定前缀集合
  • 按长度区分明细与汇总:用 le 放行汇总段更细的明细
  • 精确匹配单条路由做策略:只对某个网段设置属性

定义与应用

定义与应用
ip prefix-list PFX-BASIC permit 10.1.0.0/16          # 仅匹配 /16 本身
ip prefix-list PFX-BASIC permit 10.2.0.0/16 le 24     # 匹配 /16 到 /24 的所有前缀
ip prefix-list PFX-BASIC deny 10.3.0.0/16             # 显式拒绝某段
!
router bgp 65001
 neighbor 10.0.0.2 prefix-list PFX-BASIC in           # 应用到邻居入向
!
show ip prefix-list PFX-BASIC                         # 查看列表内容
show ip prefix-list PFX-BASIC 10.1.1.0/24             # 核对单条前缀是否命中

匹配写法速查

写法匹配范围说明
10.1.0.0/16仅 /16 本身不写 ge/le 时只匹配该长度
10.1.0.0/16 le 24/16 至 /24常用于放行汇总及其明细
10.1.0.0/16 ge 17 le 24/17 至 /24排除 /16 本身
10.1.0.0/16 ge 17/17 至 /32上限默认到 /32,易放行过细前缀
0.0.0.0/0 le 24所有 /1 至 /24 前缀常作为入向放行上限
10.1.0.0/16 ge 24 le 24仅 /24ge 与 le 相等可锁定单一长度

上线前的核对动作

动作命令看什么
列表内容show ip prefix-list <名称>条目顺序与你写的顺序一致
单条命中show ip prefix-list <名称> <前缀>/<长度>返回 permit 或 deny 及命中的序号
详细统计show ip prefix-list <名称> detail各条目的引用计数,判断是否真被使用
实际效果show ip bgp neighbors <ip> advertised-routes出向过滤后的真实发布集合
入向效果show ip bgp 或 show ip bgp neighbors <ip> received-routes放行后实际进入 BGP 表的前缀
ge 表示长度下限、le 表示上限:范围必须覆盖条目前缀长度,ge 不得小于条目前的掩码长度,否则条目无效或行为与预期不符。
prefix-list 尾部隐含拒绝。出向过滤只写了 deny 或漏写 permit 时,对端会收不到任何路由,属于高频事故点;上线前用 show ip prefix-list <name> <prefix> 逐条核对。
华为设备对应工具是 ip ip-prefix,语义相近但写法不同,长度范围用 greater-equal 与 less-equal 表达,迁移配置时需要逐条改写而不是照抄。
前缀列表的序号(seq)决定判断顺序:中间插入条目时如果重复使用序号,设备会自动重排或拒绝写入,变更前先备份现有列表内容,避免顺序被改动后过滤结果变化。

变更前的安全做法

变更前的安全做法
show ip prefix-list PFX-BASIC                 # 先记录现有条目与顺序
show ip bgp neighbors 10.0.0.2 advertised-routes | include Total   # 记录发布总数
# 再修改列表,改完复核发布总数是否与预期一致:数量骤降通常意味着放行集合被写窄了

易错点

  • 把前缀列表当访问列表:它匹配路由前缀与长度,与数据包 ACL 语义不同,套用 ACL 思维会写错方向与范围
  • 漏写长度范围:条目 10.1.0.0/16 只匹配 /16 本身,明细前缀需要 le
  • 出向缺显式 permit:尾部隐含拒绝导致对端大面积收不到路由
  • ge 与 le 顺序或取值写反:ge 必须大于等于条目前缀长度,le 必须大于等于 ge
  • 把精确匹配当范围匹配:写 10.1.0.0/16 以为会放行其下所有明细,实际只放行这一条汇总路由
  • 改动列表时只看单条验证不核对总量:单条命中正确但整体放行集合可能已收窄,变更后要用发布总数或接收总数复核

数据来源与参考

  • Cisco: ip prefix-list 命令参考
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌