第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 合并场景 |
九、思考
- 联邦(Confederation)解决 iBGP 扩展问题的核心思路是什么?
- 联邦内部 Sub-AS 之间使用的是 eBGP 还是 iBGP 会话?
- 对外部 AS 来说,联邦表现为多少个 AS?
- 比较 RR 和 Confederation,哪种方案在现网中更常见?为什么?
- 联邦的 AS_PATH 长度在选路时如何计算?联邦内的 Sub-AS 算 AS 数量吗?
下篇预告:第90篇《BGP 聚合与 AS_SET 属性》——理解 BGP 路由聚合的原理和细节。