Skip to content

0. 课件来源

IBGP 水平分割保证了 AS 内无环,但也导致路由无法在多个 IBGP 设备间传递。解决这个矛盾有两条路:联邦(Confederation)路由反射器(RR)。RR 是现代互联网骨干网的标准方案。


1. 问题回顾:IBGP 水平分割之困

text
AS 234 拓扑:

  AR1 ──(EBGP)── AR2 ──(IBGP)── AR3 ──(IBGP)── AR4 ──(EBGP)── AR5

AR1 发布的 172.16.1.0/24:
  AR1 → AR2:✅ EBGP 收到
  AR2 → AR3:✅ IBGP 转发(AR2 直连 AR3)
  AR3 → AR4:❌ IBGP 水平分割!从 IBGP 学来的不能再传给其他 IBGP peer!
  AR4 → AR5:❌ AR4 根本没学到 172.16.1.0/24

IBGP 水平分割 = 从一个 IBGP peer 学到路由(标记为 i),不能再向其他 IBGP peer 发送。


2. BGP 路由的最优条件

BGP 路由表中每条路由有两个关键标记:

标记含义必须
*(valid)下一跳可达(路由表中能查表到达)
>(best)13 条选路原则中胜出
text
<AR4> dis bgp routing-table 172.16.1.0
 BGP routing table entry information of 172.16.1.0/24:
 From: 10.1.2.2 (2.2.2.2)
 Route Duration: 00h12m34s
 Relay IP Nexthop: 10.1.24.2
 Relay IP Out-Interface: GigabitEthernet0/0/1
 Original nexthop: 172.16.12.1       ← 下一跳是 AR1-AR2 互联地址!
 AS-path 100, origin igp, MED 0, pref-val 0, valid, external, best, select

# 问题:AR4 的 routing-table 中没有 172.16.12.0/24 → 下一跳不可达 → 无 * → 无 >

2.1 next-hop-local

边界路由器对 IBGP peer 做下一跳替换:

text
AR2:
bgp 234
 peer 10.1.24.4 next-hop-local    # 发给 AR4 时将下一跳改为自己

路由变为 best 后,会执行两个动作:

  1. 发送给我的所有 peer(除来源 peer 外)
  2. 提交给路由表(能否放入取决于 BGP preference 与其他协议比较)

3. 解决方案一:联邦(Confederation)

3.1 原理

将一个大的 AS 234,拆分成多个小的联邦子 AS(如 64523、64544)。子 AS 之间运行联邦 EBGP(本质仍是 IBGP,但用 AS-PATH 替代水平分割防环)。

text
             AS 234(联邦 ID)
  ┌──────────────┼──────────────┐
  │              │              │
AS 64523      AS 64544       ……
  │              │
 AR2 ──AR3──   AR4 ──AR5──
(联邦 EBGP)    (联邦 EBGP)

3.2 配置

text
# 所有联邦路由器必须配置 confederation id
AR2, AR3, AR4:
bgp 64523              # 或 64544
 confederation id 234  # 对外宣称 AS 234

# 对真正的 EBGP peer(AR1/AR5),正常配置

# 对联邦 EBGP peer → 需配置 confederation peer-as
AR3:
bgp 64523
 confederation peer-as 64544        # 排除 64544:不发 AS 234,发 64523
 peer 10.1.4.4 as-number 64544
 peer 10.1.4.4 connect-interface LoopBack0
 peer 10.1.4.4 ebgp-max-hop

AR4:
bgp 64544
 confederation peer-as 64523        # 排除 64523:不发 AS 234,发 64544
 peer 10.1.3.3 as-number 64523
 peer 10.1.3.3 connect-interface LoopBack0
 peer 10.1.3.3 ebgp-max-hop

3.3 联邦 EBGP 的本质

⚠️ 联邦 EBGP ≠ 真正的 EBGP

行为联邦 EBGP真正 EBGP
防环AS-PATH(忽略子 AS 号)AS-PATH
下一跳默认不修改(继承 IBGP 行为)默认修改
AS-PATH联邦子 AS 号放在 ( )普通 AS-PATH

联邦 EBGP 本质上是 IBGP,只是用 AS-PATH 代替水平分割来防环。

3.4 联邦优缺点

优点缺点
解决 IBGP 水平分割联邦子 AS 最多只有 2 台路由器,大型网络配置量大
AS-PATH 防环扩展性弱,不是最优方案

4. 解决方案二:路由反射器(RR)★ 互联网标准

4.1 核心术语

术语含义
RR(Route Reflector)路由反射器 = 服务端
RR-Client路由反射器客户端
Non-Client非客户端(普通 IBGP peer)
Cluster路由反射簇 = RR + 它的所有 Client 的逻辑集合
Originator ID路由的原始通告者 RID(防环)
Cluster-List路由经过的 Cluster ID 列表(防环)

💡 一个重要前提

RR 和 RR-Client 之间必须已经建立 IBGP peer 邻居关系

4.2 反射规则:"非非不能传"

text
RR 收到路由后的转发规则:

来源              → 可转发给
─────────────────────────────────
从 Client 学来的 → Client、Non-Client、EBGP(都能发)
从 Non-Client 学来的 → Client、EBGP(不能发给 Non-Client)
从 EBGP 学来的    → Client、Non-Client、EBGP(都能发)

记忆口诀:"非非不能传"
→ RR 从 Non-Client 学来的路由,不能传给 Non-Client

4.3 配置示例

text
# AR3 配置为 RR,AR2 和 AR4 为 Client
AR3:
bgp 234
 peer 10.1.2.2 reflect-client      # AR2 是 RR-Client
 peer 10.1.4.4 reflect-client      # AR4 是 RR-Client

# AR2 和 AR4 不需要任何特殊配置(它们只是普通的 IBGP peer)

验证 AR1 ping AR5:

text
<AR1> ping -a 172.16.1.1 172.16.5.5
  Reply from 172.16.5.5: bytes=56 Sequence=1 ttl=252 time=50 ms ✅

4.4 RR 三条防环机制

机制说明
Originator IDRR 反射路由时添加原始通告者 RID;收到含自己 RID 的路由丢弃
Cluster-ListRR 反射路由时追加自己的 Cluster ID;收到含自己 Cluster ID 的路由丢弃
AS-PATHEBGP 防环依然有效

5. 联邦 vs RR 对比

对比项联邦RR
原理将大 AS 拆成子 AS,联邦 EBGP打破水平分割,反射路由
防环AS-PATHOriginator ID + Cluster-List
配置量每台设备都要改 AS 号仅在 RR 上配置 Client
扩展性大型网络配置量大扩展性好(互联网标准方案)
架构复杂度改变 AS 结构不改变 AS 结构
适用场景较复杂网络互联网骨干网首选

6. IBGP 组网演进总结

text
全互联(Full Mesh)
  ↓ 设备太多,连接数爆炸
部分互联 → 数据黑洞

解决方案演进:
  BGP 同步(注入 IGP) → 路由爆炸,已废弃
  GRE 隧道 → 手工配置量大
  MPLS LSP → 自动化,但需要 MPLS 基础设施
  ┌─ 联邦 → 扩展性有限
  └─ RR ★ 互联网标准方案

7. 易混淆点与考前速记

对比项结论
IBGP 水平分割IBGP 学到的不传其他 IBGP(防环)
联邦本质拆 AS,联邦 EBGP 本质是 IBGP,不修改下一跳
联邦配置confederation id + confederation peer-as
RR 反射规则"非非不能传":Non-Client → Non-Client 不能发
RR 配置仅在 RR 上 peer x.x.x.x reflect-client
RR 防环Originator ID + Cluster-List + AS-PATH
next-hop-local边界路由器替换下一跳为自己
best 路由动作发给所有 peer + 提交路由表
*(valid)下一跳可达(路由表可达)
>(best)13 条选路原则中最优

考前速记 7 条

  1. IBGP 水平分割 → 全互联 / 联邦 / RR
  2. 联邦:confederation id + confederation peer-as,本质是 IBGP
  3. 联邦 EBGP 不改下一跳,AS-PATH 中联邦子 AS 在 ( ) 中
  4. RR 反射规则"非非不能传"(Non-Client → Non-Client 禁止)
  5. RR 防环三件套:Originator ID + Cluster-List + AS-PATH
  6. RR 配置只在 RR 上:peer x.x.x.x reflect-client
  7. 互联网首选 RR,配置量最小、扩展性最好

🤖 AI 伴学

让 AI 帮你理解 IBGP 水平分割和 RR 的设计:

"请把 IBGP 水平分割比喻成'军队的保密条例':从一个 IBGP peer 学到的路由(军事机密),绝对不能传给其他 IBGP peer(防止泄密造成混乱=环路)。但这导致信息无法在组织内流通——所以有两种解决方案:联邦(Confederation)是'把一个大军区拆成几个小军区',小军区之间可以互相传情报(联邦 EBGP),但对外统一使用大军区编号(Confederation ID)。路由反射器(RR)更聪明——设立一个'情报中心(RR)'和若干'情报站点(Client)':情报中心可以自由分发情报给所有站点(打破水平分割),但附加了'情报来源编号(Originator ID)'和'传递路径记录(Cluster-List)',如果发现情报绕回来了(看到自己的编号),就丢掉——实现了无环。"

真人撰写written by human