第86篇:BGP 同步规则(历史与现状)
关键词
BGP、同步规则、Synchronization、黑洞、IGP、历史遗留
一、什么是 BGP 同步规则
BGP 同步规则(Synchronization Rule) 是早期 BGP 设计的一条规则:
一个 AS 不会使用或向 eBGP 对等体通告从 iBGP 学到的路由,除非该路由也通过 IGP(如 OSPF/IS-IS)在整个 AS 内可达。
简单来说:
BGP 路由要被使用和传递出去条件:
BGP 路由表中的路由
AND
IGP 路由表中也有这条路由
二、历史背景——为什么需要同步规则
2.1 传统网络的"黑洞"问题
在早期网络中,不是所有路由器都运行 BGP:
AS 100 AS 200
| RouterA(BGP) 172.16.0.0/16 RouterB(无BGP) | ───── eBGP IGP | RouterC(BGP+IGP) RouterD(IGP-only) | IGP | |
|---|---|---|---|---|
场景: - AS 200 的 RouterC 从 RouterA 学到 BGP 路由 172.16.0.0/16 - RouterC 通过 iBGP 将路由传播 AS 200 内 - 但 RouterD 没有运行 BGP,不知道这条路由 - RouterC 将路由发给 RouterD,RouterD 因为没有路由而丢弃 → 黑洞
2.2 同步规则如何解决
开启同步规则后:
RouterC 从 iBGP 学习到 172.16.0.0/16
→ 检查 IGP 路由表中是否有 172.16.0.0/16
→ 没有(RouterD 没有宣告)
→ RouterC 不使用该路由,也不通告给 eBGP
→ 避免黑洞
三、同步规则的实现
# 早期 Cisco 设备上
router bgp 200
synchronization # 启用同步(默认启用)
no synchronization # 关闭同步(新版默认关闭)
# 华为设备
bgp 200
synchronization # 华为也支持此命令
检查同步状态:
display bgp routing-table 172.16.0.0
Network: 172.16.0.0/16
Next Hop: 10.0.12.1
Status: valid
Synchronization: not synchronized ← 未同步
# 如果同步规则启用,这条路由虽然有效但不会被使用
四、为什么同步规则被废弃
4.1 全互联架构的出现
随着网络架构演进,所有核心路由器都运行 iBGP 和 IGP:
AS 200
| RouterC (BGP+IGP) iBGP IGP RouterD (BGP+IGP) | ||
|---|---|---|
当所有路由器都运行 BGP 时,同步规则就失去了意义。
4.2 同步规则的弊端
| 问题 | 说明 |
|---|---|
| 收敛变慢 | 需要等待 IGP 也收敛,BGP 路由才能生效 |
| IGP 路由表臃肿 | 需要将外部 BGP 路由引入 IGP(违反设计原则) |
| 配置复杂 | 需要额外的路由引入策略 |
| 现代网络已解决黑洞 | RR 和全互联消除了黑洞风险 |
4.3 当前状态
| 厂商 | 默认状态 |
|---|---|
| 华为 | 关闭(默认 no synchronization) |
| Cisco | 关闭(IOS 12.0 以后) |
| Juniper | 不支持同步规则 |
五、现代网络的替代方案
5.1 BGP 全互联或 RR
所有路由器运行 iBGP,确保每条路由在所有 BGP 路由器上都可达。
5.2 IGP 引入下一跳
不需要将 BGP 路由引入 IGP,只需要确保 IGP 能到达 BGP NEXT_HOP。
5.3 使用 MPLS
MPLS 可以穿越非 BGP 路由器,而不需要它们知道 BGP 路由:
RouterC(BGP) ── LSP ── RouterD(IGP-only) ── LSP ── RouterE(BGP)
↑ MPLS 标签交换,不需要 RouterD
↑ 知道 BGP 路由
六、总结
| 知识点 | 核心要点 |
|---|---|
| 同步规则定义 | BGP 路由必须也在 IGP 中才有效 |
| 历史原因 | 防止 BGP 路由在非 BGP 路由器上产生黑洞 |
| 当前状态 | 默认关闭(所有现代设备) |
| 废弃原因 | 全 iBGP 部署 + MPLS 解决了黑洞问题 |
| 历史意义 | 理解它有助于理解 BGP 的设计演进 |
七、思考
- BGP 同步规则的核心内容是什么?
- 为什么早期网络需要同步规则?它能解决什么问题?
- 为什么现代网络不再需要 BGP 同步规则?
- 如果在一台设备上启用了同步规则,BGP 路由何时才会生效?
- MPLS 如何帮助解决非 BGP 路由器的黑洞问题?
下篇预告:第87篇《IBGP 全互联要求与路由反射器(RR)》——解决 iBGP 扩展性的关键方案。