suppress-inactive 干什么
Cisco 的 bgp suppress-inactive 让 BGP 只通告已经安装进 RIB(递归下一跳可达)的路由。它针对的场景是:本机从某个邻居学到一条路由,但这条路由的下一跳在本机不可达,因而不会装入转发表;如果不加限制,本机仍会把它通告给其他邻居,形成黑洞。
基本信息
| 命令位置 | BGP 地址族下:bgp suppress-inactive |
|---|---|
| 效果 | 仅通告 RIB 中活跃(下一跳可达)的路由 |
| 收益 | 减少对端收到无法转发的路由 |
| 代价 | 通告范围与本地 FIB 状态绑定 |
| 回退 | no bgp suppress-inactive 恢复默认行为 |
典型使用场景
- 双出口场景:本机经 A 出口学到的前缀,不该再通告给 B 出口造成绕行
- 减少对端收到无效路由,降低对端排障成本
- 收敛期间抑制中间态迁移,降低路由震荡的传导
- 排查「对端收到路由却不回程」:确认是否通告了下一跳不可达的路由
- 变更评估:与聚合等机制同用时按地址族逐项核对行为
配置与核对
配置与核对
router bgp 65001
address-family ipv4 unicast
bgp suppress-inactive # 只通告已装入 RIB 的活跃路由
!
show ip bgp 10.1.0.0/16 # 确认该路由是否有效、下一跳是否可达
show ip bgp neighbors 10.0.0.2 advertised-routes | include 10.1. # 核对实际通告范围行为对照
| 场景 | 未启用 | 启用后 |
|---|---|---|
| 下一跳可达 | 正常通告 | 正常通告 |
| 下一跳不可达 | 仍会通告,可能形成黑洞 | 不再通告 |
| 底层 IGP 抖动 | 通告范围基本不变 | 通告范围随可达性变化 |
| 回退方式 | 默认行为 | 用 no 命令恢复 |
启用后通告范围与本地 FIB 状态绑定:底层 IGP 抖动会同步引起通告变化,对端看到的路由会随本机可达性动态调整,属预期行为,应提前告知对端。
该命令与路由聚合、条件通告等机制同用时行为较复杂,建议按地址族逐项确认,不要凭经验推断。
它只影响发什么,不改变本机的选路与转发表:本机该丢弃的流量仍会被丢弃,不要指望它解决回程可达性问题。