关键词:BGP、联邦、Confederation、子AS、iBGP扩展、联邦eBGP、联邦iBGP、AS_PATH
第89篇:联邦(Confederation)解决 IBGP 扩展问题
一、引言
在前两篇中,我们深入学习了路由反射器(RR)如何解决 iBGP 全互联问题。RR 是目前最主流的 iBGP 扩展方案,但在 RR 出现之前,联邦(Confederation)是解决 iBGP 扩展问题的标准方案。
联邦将一个大型 AS 划分为多个子 AS(Sub-AS),子 AS 之间运行特殊的"联邦 eBGP"(Confederation eBGP),子 AS 内部运行标准的 iBGP。虽然现代网络中 RR 更为普遍,但联邦仍然在某些特定场景下具有独特的优势——特别是运营商合并后的过渡期。
理解联邦的原理和配置,对于全面掌握 BGP 扩展技术仍然必要。
二、核心概念
2.1 联邦的基本架构
联邦将一个大型 AS 逻辑划分为多个子 AS,但对外仍然表现为一个单一的 AS:

联邦的组成:
| 组件 | 说明 |
|---|---|
| Confederation AS | 对外的公有 AS 号(如 65000) |
| Sub-AS | 内部的私有 AS 号(如 65001、65002),仅在 Confederation 内部有效 |
| Confederation eBGP | 子 AS 之间的特殊 eBGP 会话(Confed-eBGP) |
| Confederation iBGP | 子 AS 内部的标准 iBGP 会话 |
2.2 联邦与 RR 的对比
| 特性 | 联邦(Confederation) | 路由反射器(RR) |
|---|---|---|
| 实现方式 | 将AS划分为多个Sub-AS,Sub-AS间运行Confed-eBGP | 在现有AS内引入RR反射路由 |
| AS_PATH 影响 | Sub-AS号以序列形式加入AS_PATH(方括号内),离开Confederation时移除 | 不影响AS_PATH,仅添加Originator_ID和Cluster_List |
| 配置复杂度 | 较高(需要重新规划AS结构) | 较低(在现有AS内增加RR角色) |
| 部署灵活性 | 需要重新规划AS结构 | 在现有AS内灵活部署 |
| 对外影响 | Sub-AS号可能泄露到外部(配置错误时) | 无外部影响 |
| iBGP传递规则 | Confed-eBGP学到的路由可传给Confed-iBGP(打破水平分割) | RR反射机制打破水平分割 |
| 适用场景 | 合并多个AS后的过渡期、超大AS分层管理 | 通用场景,现代主流方案 |
2.3 联邦 eBGP 与标准 eBGP 的区别
| 特性 | 标准 eBGP | 联邦 eBGP(Confed-eBGP) |
|---|---|---|
| TTL 默认值 | 1 | 1(通常) |
| AS_PATH 处理 | 添加本 AS 号到 AS_PATH | 添加 Sub-AS 号到 AS_PATH 的 Sub-AS 序列(方括号)中 |
| Next_Hop | 修改为本地 eBGP 接口 IP | 修改为本地 IP |
| 路由传递 | 正常 eBGP 传递 | Confederation iBGP 学到的路由可传递给 Confederation eBGP Peer |
| 环路检测 | 检查 AS_PATH 中的 AS 号 | 检查 AS_PATH 中的 Sub-AS 号 |
| 外部可见性 | AS 号对外可见 | Sub-AS 号在离开 Confederation 时被移除 |
关键区别:Confederation eBGP 学到的路由可以传递给 Confederation iBGP Peer,这打破了标准 iBGP 的水平分割规则。这也是联邦能够解决 iBGP 全互联问题的根本原因。
三、技术细节
3.1 联邦中的 AS_PATH 处理
联邦 eBGP 在 AS_PATH 中使用特殊的序列格式(AS_SEQUENCE with Sub-AS)表示 Sub-AS:
联邦内部视角:
AS_PATH: 300 [65001 65002]
↑ ↑ Sub-AS序列(方括号)
外部AS号
联邦外部视角:
AS_PATH: 300 65000
↑ ↑ Confederation的公有AS号
外部AS号
关键规则:
- Sub-AS 号在 AS_PATH 中用方括号
[]或专门的 AS_SEQUENCE 编码表示 - 当路由离开 Confederation(传递给外部 eBGP Peer)时,Sub-AS 序列从 AS_PATH 中移除,替换为 Confederation 的公有 AS 号
- 外部 AS 看到的 AS_PATH 只包含 Confederation 的公有 AS 号,对内部 Sub-AS 划分不可见

3.2 联邦的路由传递规则
| 来源 | 传递给 Confederation iBGP | 传递给 Confederation eBGP | 传递给外部 eBGP |
|---|---|---|---|
| 标准 eBGP | ✓ | ✓ | ✓ |
| Confederation iBGP | ✗(水平分割仍然生效) | ✓ | ✓ |
| Confederation eBGP | ✓(打破水平分割) | ✓ | ✓ |
关键区别:Confederation eBGP 学到的路由可以传递给 Confederation iBGP Peer,这打破了标准 iBGP 的水平分割规则。因此,在联邦架构中: - 每个 Sub-AS 内部的 iBGP 仍然需要全互联或 RR - Sub-AS 之间通过 Confederation eBGP 传递路由 - 跨 Sub-AS 的路由传递不受 iBGP 水平分割限制
3.3 联邦的配置要素
| 配置项 | 说明 | 命令示例 |
|---|---|---|
| Confederation Identifier | Confederation 的公有 AS 号 | confederation identifier 65000 |
| Confederation Member AS | 子 AS 号列表 | confederation member-as 65001 65002 |
| Peer AS Number | 子 AS 内的 Peer 使用子 AS 号 | peer x.x.x.x as-number 65001 |
四、实战配置/案例分析
4.1 联邦完整配置
# ===== Sub-AS 65001 中的路由器 R1 配置 =====
sysname R1
interface GigabitEthernet 0/0/1
ip address 10.1.1.1 30
interface LoopBack 0
ip address 1.1.1.1 32
bgp 65001 # 本地Sub-AS号
router-id 1.1.1.1
confederation identifier 65000 # Confederation公有AS号
confederation member-as 65001 65002 # 所有子AS列表
# 子AS内的iBGP Peer(全互联)
peer 2.2.2.2 as-number 65001
peer 2.2.2.2 connect-interface LoopBack 0
peer 2.2.2.2 description iBGP-in-Sub-AS-65001
peer 3.3.3.3 as-number 65001
peer 3.3.3.3 connect-interface LoopBack 0
peer 3.3.3.3 description iBGP-in-Sub-AS-65001
# 与Sub-AS 65002的Confed-eBGP Peer
peer 4.4.4.4 as-number 65002
peer 4.4.4.4 connect-interface GigabitEthernet 0/0/1
peer 4.4.4.4 description Confed-eBGP-to-Sub-AS-65002
# 外部eBGP Peer
peer 10.10.10.10 as-number 300
peer 10.10.10.10 connect-interface GigabitEthernet 0/0/2
peer 10.10.10.10 description eBGP-to-AS-300
# 宣告路由
network 10.1.1.0 24
# ===== Sub-AS 65002 中的路由器 R4 配置 =====
sysname R4
interface GigabitEthernet 0/0/1
ip address 10.1.1.2 30
interface LoopBack 0
ip address 4.4.4.4 32
bgp 65002
router-id 4.4.4.4
confederation identifier 65000
confederation member-as 65001 65002
# 子AS内的iBGP Peer
peer 5.5.5.5 as-number 65002
peer 5.5.5.5 connect-interface LoopBack 0
# 与Sub-AS 65001的Confed-eBGP Peer
peer 3.3.3.3 as-number 65001
peer 3.3.3.3 connect-interface GigabitEthernet 0/0/1
# ===== 查看联邦信息 =====
display bgp confederation
display bgp routing-table verbose
AS_PATH: 300 [65001] # 内部视角,含Sub-AS
# 外部AS看到的: AS_PATH: 300 65000
4.2 案例分析:AS 合并后的联邦部署
场景:两家运营商合并,各自拥有独立的 AS(AS 100 和 AS 200)。合并后需要对内统一为一个 AS,但对外仍需要一定的过渡期。同时,两个原 AS 内部已经有大量的 BGP 配置和路由策略,短期内无法全部统一。
方案:使用联邦将 AS 100 和 AS 200 合并为一个 Confederation。

外部视角: - 上游 ISP(AS 500、AS 600)看到的 AS_PATH 中只包含 AS 65000 - 内部的 Sub-AS 划分(100 和 200)对外部完全不可见 - 上游 ISP 认为 Confederation 就是一个普通的 AS
部署步骤: 1. 在所有路由器上配置 confederation identifier 65000 2. 原 AS 100 的路由器配置 BGP 进程号为 100,confederation member-as 100 200 3. 原 AS 200 的路由器配置 BGP 进程号为 200,confederation member-as 100 200 4. 在两原 AS 的边界路由器之间建立 Confederation eBGP 会话 5. 验证路由传递和 AS_PATH 的 Sub-AS 序列
4.3 案例分析:联邦中 Sub-AS 号泄露
故障:外部 AS 在 AS_PATH 中看到了 Confederation 内部的 Sub-AS 号,导致路由策略匹配异常。
排查:
- 检查外部 AS 收到的 AS_PATH:
# 在外部AS 300上查看
AS_PATH: 65000 [65001] 100
# Sub-AS号65001泄露到了外部!
- 根因:Confederation 边界路由器在将路由传递到外部 eBGP Peer 时,未正确移除 Sub-AS 序列。这可能是:
- 边界路由器未配置 confederation identifier
- 边界路由器配置了错误的 Confederation AS 号
-
路由策略修改了 AS_PATH,干扰了 Sub-AS 移除逻辑
-
修复:
# 确认边界路由器正确配置了confederation identifier
[R3] bgp 65001
[R3-bgp] confederation identifier 65000
[R3-bgp] confederation member-as 65001 65002
# 检查AS_PATH相关路由策略,确认没有干扰Sub-AS移除
[R3-bgp] display current-configuration | include as-path
# 如果没有异常的as-path策略,则问题在于confederation配置
- 验证修复后外部视角的 AS_PATH:
修复后: AS_PATH: 65000 100
# Sub-AS号已正确移除,外部只看到Confederation的公有AS号65000
五、总结
| 特性 | 联邦(Confederation) | 路由反射器(RR) | 推荐度 |
|---|---|---|---|
| 配置复杂度 | 高(需重新规划AS) | 低(现有AS内增加RR) | RR 更优 |
| 对外影响 | Sub-AS可能泄露(配置错误时) | 无外部影响 | RR 更优 |
| AS_PATH 影响 | 内部含 Sub-AS 序列 | 无 AS_PATH 影响 | RR 更优 |
| 适用场景 | AS 合并过渡期 | 通用大规模扩展 | RR 为主 |
| 部署难度 | 需要整体 AS 规划 | 灵活增量部署 | RR 更优 |
| 子域扩展 | 每个 Sub-AS 仍需全互联或 RR | 单层或分层 RR | 各有千秋 |
联邦的现代定位:联邦已不再是 iBGP 扩展的首选方案。现代网络几乎全部采用路由反射器。联邦的典型使用场景仅限于: - 运营商合并后的过渡期(短期使用) - 某些遗留网络的改造(无法引入 RR 时) - 学术研究和技术理解
思考
- 联邦 eBGP 与标准 eBGP 在 AS_PATH 处理上的主要区别是什么?为什么 Confederation 边界路由器需要在路由离开 Confederation 时移除 Sub-AS 号?
- 在联邦架构中,Confederation iBGP 的水平分割规则是否仍然生效?如果是,联邦是如何解决跨 Sub-AS 的 iBGP 全互联问题的?
- 为什么现代网络更倾向于使用路由反射器而非联邦?在什么场景下联邦仍然是不可替代的选择?
下篇预告:第90篇:BGP 聚合与 AS_SET 属性