第98篇:BGP 大规模网络设计——AS 规划与 RR 层级
关键词
BGP、大规模网络、AS 规划、RR 层级、分层设计、运营商
一、大规模 BGP 网络的设计挑战
| 挑战 | 说明 |
|---|---|
| 路由表规模 | 互联网全表 > 90 万条,内存和 CPU 压力大 |
| iBGP 扩展性 | 需要 RR 分层,避免全互联 |
| 故障隔离 | 单点故障不应影响全网 |
| 策略一致性 | 全网策略需要统一规划 |
| 运维复杂度 | 需要对 AS、RR、Cluster 做结构化设计 |
二、AS 规划
2.1 公有 AS vs 私有 AS
# 公有 AS:互联网上唯一标识
bgp 100 # AS 100(需申请)
# 私有 AS:内部使用(64512~65535)
bgp 64512 # 私有 AS,不上互联网
2.2 大企业的 AS 规划
| 层次 | AS 号 | 说明 |
|---|---|---|
| 骨干 AS | 100 | 连接所有区域 |
| 区域 AS | 64512~64520 | 各区域使用私有 AS |
| 客户 AS | 65001~65100 | 客户侧 AS |
2.3 多 AS 设计原则
AS 100(骨干)
┌───────┼───────┐
│ │ │
AS 64512 AS 64513 AS 64514
(华东) (华南) (华北)
│ │ │
AS 65001 AS 65002 AS 65003
(客户A) (客户B) (客户C)
设计原则: 1. 骨干 AS 使用公有 ASN 2. 区域 AS 使用私有 ASN 3. 客户 AS 独立分配
三、RR 层级设计
3.1 单层 RR(小规模)
┌──── RR1 ──── RR2 ────┐
│ iBGP │
└──────┬──────────┬─────┘
│ │
Client Client
Client Client
Client Client
适用:20~50 台路由器
配置:
# RR1
bgp 100
reflector cluster-id 10.0.0.1
peer 10.0.12.2 as-number 100
peer 10.0.12.2 reflect-client
peer 10.0.13.3 as-number 100
peer 10.0.13.3 reflect-client
# Client(只需连 RR1 和 RR2)
bgp 100
peer 10.0.12.1 as-number 100 # RR1
peer 10.0.23.2 as-number 100 # RR2
3.2 双层 RR(中大规模)
Level-1 RR(骨干层)
┌──── RR1 ──── RR2 ────┐
│ iBGP │
└──────┬──────────┬─────┘
│ │
┌────RR3────────RR4────┐ ← Level-2 RR(汇聚层)
│ iBGP iBGP │
└──┬──────────┬────────┘
│ │
Client Client
Client Client
适用:50~500 台路由器
关键配置:
# Level-1 RR(骨干 RR)
bgp 100
reflector cluster-id 10.0.0.1
peer 10.0.12.2 as-number 100
peer 10.0.12.2 reflect-client # Level-2 RR 是它的 Client
peer 10.0.13.3 as-number 100
peer 10.0.13.3 reflect-client
# Level-2 RR(汇聚 RR)
bgp 100
reflector cluster-id 10.1.1.1 # 不同 Cluster ID
peer 10.0.12.1 as-number 100 # 连 Level-1 RR
peer 10.0.23.2 as-number 100 # 连 Level-2 的另一个 RR
peer 10.0.14.4 as-number 100
peer 10.0.14.4 reflect-client # 接入层 router 是它的 Client
3.3 三层 RR(超大规模,运营商级)
Level-1 RR(国家骨干)
┌───────┼───────┐
│ │ │
Level-2 Level-2 Level-2(省级)
│ │ │
┌───┴───┐ ┌───┴───┐ ┌───┴───┐
Level-3 Level-3 Level-3 Level-3(城域)
Client Client Client Client
适用:500+ 台路由器
四、Cluster ID 规划
4.1 基本原则
| 层级 | Cluster ID | 示例 |
|---|---|---|
| Level-1 RR | 10.0.0.x | 10.0.0.1, 10.0.0.2 |
| Level-2 RR | 10.1.x.x | 10.1.1.1, 10.1.2.1 |
| Level-3 RR | 10.2.x.x | 10.2.1.1, 10.2.2.1 |
4.2 冗余对
同一层级的冗余 RR 使用相同的 Cluster ID:
# RR1(主)
bgp 100
reflector cluster-id 10.0.0.1
# RR2(备) ← 使用相同 Cluster ID
bgp 100
reflector cluster-id 10.0.0.1
五、路由策略规划
5.1 默认路由策略
# 接入层只接收默认路由
route-policy TO_ACCESS permit node 10
if-match ip-prefix DEFAULT
route-policy TO_ACCESS deny node 20
ip ip-prefix DEFAULT permit 0.0.0.0 0
bgp 100
peer 10.0.14.4 route-policy TO_ACCESS export
5.2 汇总策略
# 在每个 Level-2 RR 上聚合区域路由
bgp 100
aggregate 172.16.0.0 255.255.0.0 detail-suppressed as-set
六、验证与监控
# 验证 RR 层次结构
display bgp peer
# 查看 BGP 路由数量
display bgp routing-table statistics
# 查看 RR 的 Client 列表
display bgp peer 10.0.12.2 verbose | include "Reflect client"
# 查看 Cluster_List
display bgp routing-table 172.16.0.0 | include "Cluster List"
七、设计检查清单
| 检查项 | 要求 |
|---|---|
| AS 规划 | 公有/私有 AS 分配清晰 |
| RR 冗余 | 每个 Client 至少连接 2 台 RR |
| Cluster ID | 冗余对使用相同 Cluster ID |
| 路由汇总 | 在不同层级做汇总 |
| 前缀过滤 | 接入层只接收必要路由 |
| 策略分层 | 不同层级执行不同策略 |
八、总结
| 设计要素 | 小规模(<50) | 中规模(50~500) | 大规模(>500) |
|---|---|---|---|
| RR 层级 | 单层 | 双层 | 三层 |
| RR 数量 | 2 | 4~8 | 8~20 |
| Cluster 规划 | 1 个 | 2~4 个 | 4~10 个 |
| 路由汇总 | 可选 | 必要 | 强制 |
| 策略复杂度 | 低 | 中 | 高 |
九、思考
- 大规模 BGP 网络中,为什么要使用分层 RR 架构?
- 冗余 RR 之间应该使用相同的还是不同的 Cluster ID?为什么?
- 一个 Client 应该连接多少台 RR?为什么至少需要 2 台?
- 在二层 RR 架构中,Level-1 RR 与 Level-2 RR 之间是什么关系?
- 接入层路由器通常只接收默认路由,这有什么好处?
下篇预告:第99篇《路由重分发原理——OSPF 与 BGP 互引》——掌握不同路由协议之间的路由引入。