首页/网络/BGP 与广域网速查/BGP distribute-list 用法
路由过滤与重分发66 条

BGP distribute-list 用法

BGP 入向可用 distribute-list 配合准入列表过滤收到的路由;被过滤的路由不进入本机,也不再对外发布。

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

BGP 里的 distribute-list

distribute-list 是传统的路由过滤工具,在 BGP 场景下主要用入向:邻居学来的前缀先过一层列表,不在列表里的不进本地 BGP 表。被丢掉的条目不仅本机没有,也不会再对外发布,属于「源头截断」型过滤。它配置简单、生效直观,缺点是表达能力有限,前缀集合写复杂后不如 prefix-list 与 route-map 清晰。

基本信息

入向语法neighbor <ip> distribute-list <acl|prefix-list> in
出向支持多数平台对 BGP 出向支持有限或不支持,优先改用 prefix-list / route-map
列表类型标准 ACL、扩展 ACL、prefix-list 视平台而定
生效范围按邻居生效,同一列表可被多个邻居引用
平台差异IOS 支持 neighbor distribute-list;FRR 等实现语法相近但能力有差别

典型使用场景

  • 入向粗过滤:先挡掉明显不该出现的私有段或保留地址,作为第一道护栏
  • 临时应急:对端误发大量前缀时快速收敛接收范围
  • 教学与过渡环境:用简单列表替代完整策略,降低理解成本
  • 与 route-map 配合:distribute-list 做数量与范围粗筛,route-map 做属性与优先级
  • 老设备兼容:不支持某些高级过滤语法时用 ACL 实现基本过滤

配置与核对

配置与核对
# 仅接收 10.0.0.0/8 范围内的前缀
access-list 10 permit 10.0.0.0 0.255.255.255
router bgp 65001
 neighbor 10.0.0.2 distribute-list 10 in
# 用 prefix-list 更直观
ip prefix-list PL-IN permit 10.0.0.0/8 le 24
router bgp 65001
 neighbor 10.0.0.2 distribute-list prefix-list PL-IN in
# 核对:对比过滤前后从该邻居收到的前缀数
show ip bgp neighbors 10.0.0.2 | include prefix|accepted

过滤工具对比

工具表达能力适用场景
标准 ACL按网络号与通配位匹配,掩码不直观粗粒度范围过滤
扩展 ACL可同时匹配网络与掩码需要控制掩码长度但不便改动配置时
prefix-list按前缀与掩码长度区间精确表达精确前缀集合,推荐首选
route-map可组合匹配条件并改属性需要同时改 LOCAL_PREF、MED、社区时
过滤生效后记得做一次软刷新或按需复位,已学的路由不会自动重新评估;核对时用收到前缀数与本地表条目数交叉验证。

易错点

  • 用标准 ACL 过滤前缀:地址位与通配位写法不直观,容易漏配或超配
  • 把过滤条件在各邻居上重复维护:语义分散,改一处漏一处,建议先考虑 route-map 统一表达
  • 只做入向过滤就以为对端也看不到:本端不发不等于对端没有其他来源,影响面评估要分层
  • 过滤后不复核前缀数量:边缘前缀被误伤时,业务表现为少数网段不可达,难以及时发现

数据来源与参考

  • Cisco: neighbor distribute-list
  • FRR: BGP distribute-list
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌