第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 的设计演进

七、思考

  1. BGP 同步规则的核心内容是什么?
  2. 为什么早期网络需要同步规则?它能解决什么问题?
  3. 为什么现代网络不再需要 BGP 同步规则?
  4. 如果在一台设备上启用了同步规则,BGP 路由何时才会生效?
  5. MPLS 如何帮助解决非 BGP 路由器的黑洞问题?

下篇预告:第87篇《IBGP 全互联要求与路由反射器(RR)》——解决 iBGP 扩展性的关键方案。