第89篇:联邦(Confederation)解决 IBGP 扩展问题

关键词

BGP、联邦、Confederation、Sub-AS、BGP 扩展、iBGP


一、为什么需要另一种方案?

除了 RR,BGP 还提供了另一种解决 iBGP 扩展问题的方式——联邦(Confederation)

方案 核心思路 适用场景
RR 允许 iBGP 路由反射 最常用
Confederation 将一个 AS 拆分为多个 Sub-AS 跨运营商合并时使用

二、联邦的基本概念

2.1 思路

将一个大 AS 划分为多个子 AS(Sub-AS)

AS 100 | └────────────┘ Confederation └────────────┘ | Sub-AS 65001 RouterA────┼─────── RouterB | RouterC eBGP within | Sub-AS 65002 RouterD | | | --- | --- | --- | --- | --- |

关键理解: - 对外部 AS 来说,整个 Confederation 仍然表现为一个 AS(100) - 内部 Sub-AS 之间使用 eBGP-like 的 Confederation 会话 - Sub-AS 内部使用 iBGP

2.2 联邦的 AS_PATH 处理

Sub-AS 65001 → Sub-AS 65002 传递路由:
  AS_PATH = (65001)

对外部 AS(AS 200)通告时:
  AS_PATH = [100]

外部 AS 看不到内部的 Sub-AS 信息

三、联邦的配置

3.1 配置示例

# Sub-AS 65001 的 RouterA
bgp 65001
 router-id 1.1.1.1
 confederation id 100                  # 真实 AS 号
 confederation peer-as 65002           # 联邦内的其他 Sub-AS
 peer 10.0.12.2 as-number 65002        # 联邦内的邻居(eBGP-like)
 #
 ipv4-family unicast
  peer 10.0.12.2 enable

# Sub-AS 65002 的 RouterC
bgp 65002
 router-id 2.2.2.2
 confederation id 100
 confederation peer-as 65001
 peer 10.0.12.1 as-number 65001
 #
 ipv4-family unicast
  peer 10.0.12.1 enable

3.2 对外部 AS 的配置

外部的 AS 200 看到的仍然是 AS 100:

# AS 200 的 RouterX
bgp 200
 peer 10.0.13.1 as-number 100          # 对端 AS = 100(联邦 ID)

四、联邦的选路特性

4.1 选路规则

BGP 选路规则中有一条专门针对联邦:

规则 7:eBGP > iBGP
  联邦内的 eBGP-like 会话的优先级:
    联邦内 eBGP > iBGP > 普通 eBGP

4.2 AS_PATH 长度计算

  • 联邦内的 AS_PATH 用 () 括起来
  • 联邦内的 AS 数量不参与 AS_PATH 长度比较
AS_PATH 比较:
  路由 A: AS_PATH = (65001) 100 200  → 2 个 AS(联邦内不计入)
  路由 B: AS_PATH = 100 200 300      → 3 个 AS
  → 路由 A 更优

五、联邦的防环机制

联邦的防环使用两种机制:

机制 说明
AS_PATH 联邦内的 Sub-AS 号会添加到 AS_PATH 中
AS_CONFED_SEQUENCE 联邦内 Sub-AS 的顺序列表
路由器检查方法:
  - 联邦内 eBGP:检查 AS_CONFED_SEQUENCE
  - 对外部:检查 AS_PATH

如果自己的 Sub-AS 出现在 AS_CONFED_SEQUENCE 中 → 环路 → 丢弃

六、RR vs Confederation 对比

对比项 RR Confederation
配置复杂度
维护成本
对现有 AS 路径影响 需要规划 Sub-AS
防环机制 Originator_ID / Cluster_List AS_PATH + AS_CONFED_SEQUENCE
现网部署 广泛 极少

七、联邦的适用场景

7.1 AS 合并场景

公司 A(AS 100)收购公司 B(AS 200)

方案一:AS 迁移 → 比较复杂
方案二:使用 Confederation → 两个 AS 保持独立,通过联邦融合

配置:
  AS 100 配置 confederation id 100(其实不变)
  AS 200 配置 confederation id 100
  两者互为 confederation peer-as

7.2 不推荐联邦的场景

场景 不推荐原因
新建网络 RR 更简单,推荐 RR
小型 AS 不需要扩展方案
大型 AS RR + 分层结构已经足够

八、总结

知识点 核心要点
联邦本质 将一个 AS 拆分为多个 Sub-AS
内部通信 Sub-AS 之间用 eBGP-like 会话
外部表现 整个联邦对外表现为一个 AS
防环 AS_PATH + AS_CONFED_SEQUENCE
选路 联邦内 eBGP > iBGP
实际使用 较少,主要用于 AS 合并场景

九、思考

  1. 联邦(Confederation)解决 iBGP 扩展问题的核心思路是什么?
  2. 联邦内部 Sub-AS 之间使用的是 eBGP 还是 iBGP 会话?
  3. 对外部 AS 来说,联邦表现为多少个 AS?
  4. 比较 RR 和 Confederation,哪种方案在现网中更常见?为什么?
  5. 联邦的 AS_PATH 长度在选路时如何计算?联邦内的 Sub-AS 算 AS 数量吗?

下篇预告:第90篇《BGP 聚合与 AS_SET 属性》——理解 BGP 路由聚合的原理和细节。