Route-Refresh 的作用
改完入方向策略后想让它立即生效,传统做法是重置邻居,代价是全表重传、明显抖动。Route-Refresh(RFC 2918)提供了更温和的手段:双方在建立会话时协商这一能力,之后本端可以发一个请求让对端把路由重新发一遍,本端再按新策略处理,邻居不会被断开。对出方向策略,如果邻居支持该能力,某些实现也能通过软复位让路由重新生成并发送。若对端不支持,则只能依赖 soft-reconfiguration 预先保存收到的原始副本,再在本地重放处理——这会额外占用内存。
基本信息
| 能力声明 | 会话建立时协商 route-refresh 支持 |
|---|---|
| Cisco 命令 | clear ip bgp <邻居> soft in 与 soft out |
| 华为命令 | refresh bgp <邻居> import 与 export |
| 不支持时 | 需 soft-reconfiguration 预先保存副本 |
| 收益 | 策略变更不必断邻居,避免全表抖动 |
| 查看 | 邻居详情中的 route-refresh 能力标记 |
典型使用场景
- 调整入方向过滤后要求立即生效而不中断邻居
- 新增 community 匹配规则:软刷新避免影响其他邻居
- 故障演练:用软刷新验证策略修改的效果
- 排障验证:确认策略变更是否按预期影响路由接收结果
- 对接老设备:评估是否需要开启软配置副本作为替代
软刷新命令
软刷新命令
# Cisco:请求对端重发(入方向)与本地重新生成(出方向)
clear ip bgp 203.0.113.2 soft in
clear ip bgp 203.0.113.2 soft out
# 对不支持软刷新的邻居启用副本保存
neighbor 203.0.113.2 soft-reconfiguration inbound
# 华为侧对应命令
refresh bgp 203.0.113.2 import
refresh bgp 203.0.113.2 export手段对照
| 手段 | 是否断邻居 | 代价 |
|---|---|---|
| Route-Refresh 软入 | 否 | 需对端支持该能力 |
| Route-Refresh 软出 | 否 | 部分实现依赖本地重新生成 |
| soft-reconfiguration | 否 | 额外内存保存副本 |
| 重置邻居 | 是 | 全表重传,明显抖动 |
大表场景下软刷新同样会产生明显的处理开销:它会重新处理大量路由,建议在业务低峰执行并观察 CPU。
软刷新只影响本端对路由的处理与发送,不能替代上游策略;让上游改变通告内容仍需对方配合。