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 | 仅 /24 | ge 与 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 # 记录发布总数
# 再修改列表,改完复核发布总数是否与预期一致:数量骤降通常意味着放行集合被写窄了