首页/网络/BGP 与广域网速查/前缀列表的隐式拒绝
路由过滤与重分发66 条

前缀列表的隐式拒绝

前缀列表尾部隐含 deny:未命中任何条目的前缀全部被拒;出向过滤缺显式 permit 会导致对端大面积收不到路由,属于高频事故点。

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

隐式拒绝是什么

前缀列表与访问控制列表一样,尾部隐含一条拒绝规则:没有命中任何条目的前缀一律被拒绝。这意味着「只写需要的 permit」是不够的,你必须清楚未被列出的前缀会被丢掉;出向过滤漏写或写窄时,对端会大面积收不到路由,是典型的高频事故点。

基本信息

隐式行为未命中任何条目即拒绝
显式放行需要的集合必须显式 permit
显式拒绝可用 deny 条目保证不会误放行
适用场景入向与出向过滤、重分发过滤均如此
验证show ip prefix-list <名称> <前缀>/<长度> 核对单条匹配
类比与 ACL 一致的隐式拒绝语义

典型使用场景

  • 出向发布前确认集合:避免因写窄导致对端收不到任何路由
  • 入向接收前确认集合:避免阻塞必要的业务前缀
  • 变更前记录基数:先看当前发布总数,改完立即比对
  • 重分发过滤:限定引入范围,防止整表外发
  • 策略审计:检查是否存在只有 deny 条目而无 permit 的列表

核对与写法示例

核对与写法示例
show ip prefix-list PL-TO-TRANSIT                     # 查看全部条目与顺序
show ip prefix-list PL-TO-TRANSIT 192.0.2.0/24        # 单条核对是否命中
show ip prefix-list PL-TO-TRANSIT detail              # 查看引用计数
!
ip prefix-list PL-TO-TRANSIT permit 192.0.2.0/24      # 显式放行需要的段
ip prefix-list PL-TO-TRANSIT deny 0.0.0.0/0 le 32     # 显式写出兜底拒绝,便于阅读
!
show ip bgp neighbors 10.0.0.2 advertised-routes | include Total   # 复核发布总数

写法与后果

写法实际效果风险
只写 permit 若干条其余全部被拒漏写必要前缀时对端收不到路由
只写 deny 若干条其余全部放行与预期完全相反,易造成超范围发布
permit 与 deny 混合且顺序错误命中即停,后写的条目失效过滤集合与设计不一致
忘记应用前缀列表没有任何过滤对端误发路由被照单全收
核对单条前缀时,命令返回的命中条目序号能直接说明是哪一条起了作用,比凭经验推断可靠。
出向过滤缺显式 permit 会让对端瞬间收不到全部路由:变更前记录发布总数,改完立即复核,数量骤降要立刻回退。

易错点

  • 出向只写 deny 没写 permit:对端收不到任何路由
  • 以为没写 deny 就是全放行:尾部隐含拒绝必须先显式 permit
  • 变更前不留基线:出问题后无法判断少了哪些前缀
  • 只做单条验证不核对总量:单条命中正确但整体集合可能已经过窄或过宽

数据来源与参考

  • Cisco: prefix-list 匹配行为
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌