第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 个
路由汇总 可选 必要 强制
策略复杂度

九、思考

  1. 大规模 BGP 网络中,为什么要使用分层 RR 架构?
  2. 冗余 RR 之间应该使用相同的还是不同的 Cluster ID?为什么?
  3. 一个 Client 应该连接多少台 RR?为什么至少需要 2 台?
  4. 在二层 RR 架构中,Level-1 RR 与 Level-2 RR 之间是什么关系?
  5. 接入层路由器通常只接收默认路由,这有什么好处?

下篇预告:第99篇《路由重分发原理——OSPF 与 BGP 互引》——掌握不同路由协议之间的路由引入。