suppress-map 干什么
BGP 聚合(aggregate-address)会在本地生成一条汇总路由,默认把汇总与所有明细一起通告。suppress-map 的作用是让汇总照发、明细按 route-map 选择性抑制:命中的明细不再通告,未命中的仍照常发送。相比一刀切的 summary-only,它的价值在于差异化——同一台设备可以对外通告汇总,对内保留明细,或对不同邻居给出不同详细程度。
基本信息
| 命令 | aggregate-address <前缀> <掩码> suppress-map <名> |
|---|---|
| 语义 | route-map permit 命中的明细被抑制 |
| 与 summary-only 对比 | summary-only 抑制全部明细,suppress-map 抑制部分 |
| 前提 | 被抑制的明细前缀需已存在于 BGP 表中 |
| 进阶 | 可与 advertise-map 等参数组合按邻居差异化通告 |
典型使用场景
- 对骨干邻居只发汇总、对客户邻居发送明细
- 双出口差异化:A 出口只发汇总,B 出口保留明细便于分流
- 割接期临时抑制部分明细,降低邻居侧的路由变化量
- 避免明细暴露内部结构,同时保留必要的可追溯前缀
- 排查「邻居只看到汇总」时确认抑制范围是否写得过宽
配置与核对
配置与核对
ip prefix-list PL-HIDE permit 10.1.1.0/24 # 指定需要被抑制的明细
!
route-map RM-SUPPRESS permit 10
match ip address prefix-list PL-HIDE # 命中即抑制该明细
!
router bgp 65001
aggregate-address 10.0.0.0 255.0.0.0 suppress-map RM-SUPPRESS # 汇总照发,命中明细不发
!
show ip bgp 10.0.0.0/8 # 核对汇总与明细的通告状态
show ip bgp neighbors 10.0.0.2 advertised-routes | include 10.1.参数对照
| 参数 | 作用 | 适用场景 |
|---|---|---|
| 无参数 | 汇总与明细一起通告 | 需要保留明细可追溯 |
| summary-only | 抑制全部明细 | 只对外暴露汇总 |
| suppress-map | 按策略抑制部分明细 | 差异化通告、临时收敛范围 |
| as-set | 汇总携带来源 AS 集合 | 避免 AS_PATH 信息丢失引发环路 |
语义方向最容易记反:suppress-map 里 permit 命中的前缀是被抑制的,不是被放行的。排查时先确认这一点,再看 range 是否写宽了。
聚合路由的生成前提是 BGP 表里至少有一条更具体的明细:明细消失后聚合不再生成,通告结果会与预期不符。
需要按邻居差异化时,抑制策略决定本机是否通告,邻居级过滤决定发给谁,两者要配合设计;多台设备上的抑制范围也要保持一致,否则对外通告会随邻居不同而变化。