关键词:BGP、同步规则、Synchronization、iBGP、IGP、历史演进、no-synchronization
第86篇:BGP 同步规则(历史与现状)
一、引言
BGP 同步规则(Synchronization Rule)是 BGP 协议早期版本中的一项重要规则,它规定:如果 BGP 路由器从 iBGP Peer 学到一条路由,只有当这条路由同时也存在于 IGP(或静态路由)中时,才能将其安装到 IP 路由表中并用于数据转发。
随着网络架构的演进,同步规则已成为历史。现代 BGP 实现默认关闭同步规则,且在较新的设备中已不再支持开启。但在理解 BGP 与 IGP 的交互关系、以及排查遗留网络问题时,同步规则的历史仍然具有重要的教育意义。
二、核心概念
2.1 同步规则的定义
同步规则:BGP 路由器从 iBGP Peer 学到的路由,只有在 IGP 中也存在相同的路由(或存在静态路由)时,才被标记为有效(Valid)并安装到 IP 路由表中。
同步规则表达式:
BGP路由有效 = (从eBGP学到) OR (从iBGP学到 AND IGP中也存在)
关键点:同步规则只对 iBGP 路由生效,eBGP 路由不受此限制。
2.2 同步规则的设计初衷
同步规则解决的核心问题:AS 内部非 BGP 路由器的转发能力。

问题场景详解:
- R1 通过 eBGP 学到外部路由(如 8.8.8.8/32),通过 iBGP 传递给 R2
- 客户端的流量到达 R3(核心 P 路由器,不运行 BGP)
- R3 需要转发到达 8.8.8.8 的流量,但 R3 的 BGP 表为空(不运行 BGP)
- 如果 IGP(OSPF/IS-IS)中也没有 8.8.8.8 的路由,R3 只能使用默认路由或丢弃报文
- 如果 R3 使用默认路由将流量发给 R1,但 R1 可能认为该流量应从 R2 发出(因为 R1 的 BGP 最佳路径指向 R2 方向),导致流量绕路甚至黑洞
同步规则的解决方案:要求 iBGP 路由必须在 IGP 中也存在,确保 AS 内所有路由器(包括非 BGP 路由器)都有转发该路由的能力。
2.3 同步规则的问题
虽然同步规则的初衷是好的,但在实际部署中带来了严重问题:
| 问题 | 说明 | 影响 |
|---|---|---|
| IGP 路由膨胀 | 所有 BGP 路由都需要重分发到 IGP | IGP 路由表从几千条膨胀到数万条 |
| SPF 计算频繁 | 外部路由变化触发 IGP LSA 泛洪 | 所有路由器频繁重算 SPF,CPU 飙升 |
| 收敛缓慢 | IGP 的 SPF 计算比 BGP 决策更慢 | 外部路由变化需要等待 IGP 收敛 |
| 配置复杂 | 需要维护 BGP 到 IGP 的双向重分发 | 容易出现路由环路和震荡 |
| 内存压力 | 低端路由器无法承载海量 IGP 路由 | 设备内存溢出或崩溃 |
三、技术细节
3.1 同步规则的演进历史
| 时期 | 状态 | 标准/规范 | 说明 |
|---|---|---|---|
| BGP-2/BGP-3 时期 | 强制开启 | RFC 1105 | 同步规则是 BGP 的基本要求 |
| 早期 BGP-4 | 默认开启 | RFC 1771 | 同步规则默认生效 |
| 1999 年 | 可选关闭 | RFC 2796 | 引入 no-synchronization 命令 |
| 2006 年 | 默认关闭 | RFC 4273 | 同步规则默认禁用 |
| 现代实现 | 默认关闭,不可重新开启 | RFC 4273 | 同步规则已成为历史概念 |
3.2 现代 BGP 如何替代同步规则的功能
现代网络通过以下架构设计消除了对同步规则的依赖:
| 方案 | 说明 | 适用场景 |
|---|---|---|
| 全 BGP 部署 | AS 内所有路由器都运行 BGP(iBGP) | 小型网络 |
| 路由反射器 | 通过 RR 简化 iBGP 部署,所有路由器参与 iBGP | 运营商骨干网 |
| MPLS 核心 | 核心 P 路由器使用 MPLS 标签转发,不需要 IP 路由查找 | 大规模骨干网 |
| 默认路由引导 | 核心路由器仅维护默认路由指向 PE | 企业网、接入网 |
| 策略路由 | 在核心路由器上使用策略路由将特定流量引导到 PE | 特殊场景 |

3.3 华为设备上的同步规则配置
# 查看同步规则状态(现代设备默认关闭)
display bgp peer
Synchronization: Disabled # 现代VRP版本显示
# 老版本VRP关闭同步规则
bgp 100
no synchronization # 关闭同步规则(老版本)
# 现代VRP版本
# synchronization # 此命令已废弃,不再支持开启同步规则
# 同步规则在VRP R20及以后版本中默认关闭且不可重新开启
四、实战配置/案例分析
4.1 案例分析:遗留网络中的同步问题
故障背景:某老旧企业网络中,核心交换机运行老版本 VRP,默认开启了同步规则。当从 iBGP Peer 学到外部路由后,这些路由未被安装到 IP 路由表,导致核心交换机无法转发外部流量。
排查:
- 检查 BGP 路由状态:
display bgp routing-table
Network NextHop MED LocPrf Path/Ogn
> 8.8.8.8/32 2.2.2.2 0 100 200i
# 注意:只有>表示Valid,没有*表示Best
# 同步规则开启时,iBGP路由如果没有对应IGP路由,不被选为Best
- 检查 IGP 中是否有对应路由:
display ospf routing
# OSPF路由表中不存在8.8.8.8/32
# 因此同步规则不满足,BGP路由不被安装到IP路由表
- 检查 IP 路由表:
display ip routing-table 8.8.8.8
# 无匹配路由!
# 根因:同步规则阻止了iBGP路由的安装
- 解决方案:
# 方案1:关闭同步规则(推荐)
[R] bgp 100
[R-bgp] no synchronization
# 方案2:将BGP路由重分发到IGP(不推荐,导致IGP膨胀)
ospf 1
import-route bgp
# 方案3:在核心配置默认路由指向PE(推荐)
ip route-static 0.0.0.0 0.0.0.0 2.2.2.2
4.2 案例分析:IGP 路由膨胀事故
场景:某省运营商网络开启了 BGP 到 IGP 的重分发以维持同步规则,OSPF 路由表从 500 条内部路由膨胀到 85000 条。
影响: - OSPF LSDB 体积从几 MB 膨胀到数百 MB - 每台 OSPF 路由器的 CPU 利用率在 LSA 更新时达到 90%+ - 低端接入路由器的内存溢出,设备频繁重启 - SPF 计算时间从毫秒级延长到数十秒
解决过程:
- 分区域关闭同步规则,从边缘向核心逐步推进
- 在 PE 路由器上关闭同步规则
- 逐步取消 BGP 到 OSPF 的重分发
- 在核心 P 路由器上配置默认路由指向 PE
- 最终 OSPF 路由表恢复到 500 条,CPU 利用率恢复正常
# 在PE上关闭同步规则并取消BGP到OSPF重分发
[R-PE] bgp 100
[R-PE-bgp] no synchronization
[R-PE] ospf 1
[R-PE-ospf-1] undo import-route bgp
# 在核心P上配置默认路由
[R-P] ip route-static 0.0.0.0 0.0.0.0 pe1-ip preference 5
4.3 案例分析:何时仍需关注同步概念
虽然同步规则已默认关闭,但在以下场景中仍需关注类似的概念:
- 混合 IGP/BGP 网络:部分路由器运行 BGP,部分不运行,需要确保非 BGP 路由器的转发能力
- MPLS 未部署:在纯 IP 转发的核心网络中,P 路由器需要 IP 路由才能转发
- 故障排查:当 BGP 路由未被安装到 IP 路由表时,检查是否为同步规则(老设备)或 Next_Hop 不可达(现代设备)
五、总结
| 时期 | 同步规则状态 | 推荐做法 | 现代替代方案 |
|---|---|---|---|
| 早期 BGP(1990年代) | 必须开启 | BGP路由重分发到IGP | - |
| 过渡期(2000年代) | 可关闭 | 逐步升级网络架构 | MPLS核心/全BGP部署 |
| 现代 BGP(2010年代至今) | 默认关闭,不可开启 | 无需关注 | 默认路由/MPLS标签/全BGP |
| 现代替代方案 | 原理 | 适用场景 |
|---|---|---|
| MPLS 标签转发 | P路由器通过标签转发,不需要IP路由 | 运营商骨干网 |
| 默认路由引导 | P路由器配置默认路由指向PE | 企业网/接入网 |
| 全BGP部署 | 所有路由器运行BGP,iBGP传递路由 | 中小型网络 |
| 路由反射器 | RR简化iBGP全互联,所有路由器参与BGP | 大规模运营商网络 |
思考
- BGP 同步规则的初衷是保护 AS 内非 BGP 路由器的转发能力。为什么在现代网络中这个需求不再重要?哪些技术演进替代了同步规则的作用?
- 将 BGP 路由重分发到 IGP 以维持同步会带来什么问题?为什么现代网络极力避免这种做法?
- 如果在一个 AS 内既有运行 BGP 的路由器也有不运行 BGP 的路由器,不启用同步规则的情况下如何保证流量正确转发?
下篇预告:第87篇:IBGP 全互联要求与路由反射器(RR)