第258篇:分布式网关与集中式网关对比

关键词

分布式网关、集中式网关、VXLAN网关、IRB、对称IRB、非对称IRB、Anycast Gateway、Spine-Leaf网关


一、VXLAN 网关的概念

1.1 为什么需要 VXLAN 网关

VXLAN 是二层 Overlay 网络,但业务不仅需要二层通信,还需要三层路由:

VXLAN 网关的作用:

  ┌──────── VNI 10001(租户A二层)────┐
  │ VM A1: 192.168.1.10              │
  │ VM A2: 192.168.1.20              │
  │   二层互通 ✓                      │
  └───────────────────────────────────┘
         │
         │ 需要三层网关才能访问外网
         ▼
  ┌──────── VNI 20001(租户A其他子网)──┐
  │ VM A3: 192.168.2.10              │
  │   跨子网通信需要网关               │
  └───────────────────────────────────┘

VXLAN 网关的功能:
  1. VXLAN 终结——剥离 VXLAN 头
  2. 三层路由——跨 VNI/子网转发
  3. 外部网络接入——访问 WAN/Internet

1.2 网关的两种模式

VXLAN 网关有两种部署方式:

集中式网关 (Centralized GW) 分布式网关 (Distributed GW)
网关功能在 Spine 单点路由 东西向流量绕行 适合小型 DC 易于管理 网关功能在 Leaf 每 Leaf 都是网关 东西向流量直连 适合大型 DC 配置复杂

二、集中式网关

2.1 架构

集中式网关拓扑:

                    出口路由器
                       │
                  ┌────┴────┐
                  │   Spine  │  ← 网关在这里!
                  │ (VXLAN GW)│
                  └────┬────┘
                       │
┌────┴────┐ ┌───┴───┐ ┌────┴────┐
Leaf1 (仅二层) Leaf2 Leaf3
│ │ │
VM A1 VNI10001 VM A2 VNI10001 VM B1 VNI20001
--- --- --- --- ---

2.2 转发流程

东西向流量(相同 VNI,不同 Leaf):

  VM A1 (Leaf1, VNI 10001) → VM A2 (Leaf2, VNI 10001)

  路径:
    VM A1 → Leaf1 → Spine(VXLAN GW) → Leaf2 → VM A2

  处理:
    Leaf1:VXLAN 封装到 Spine(GW VTEP)
    Spine:VXLAN 终结 → 查二层表 → VXLAN 封装到 Leaf2
    Leaf2:VXLAN 终结 → 转发给 VM A2

  问题:二层流量也要经过 Spine——不必要的绕行!

跨 VNI 流量(不同子网):

  VM A1 (Leaf1, VNI 10001, 192.168.1.10) 
    → VM B1 (Leaf3, VNI 20001, 192.168.2.10)

  路径:
    VM A1 → Leaf1 → Spine(VXLAN GW) → Leaf3 → VM B1

  处理:
    Leaf1:VXLAN 封装到 Spine(GW VTEP)
    Spine:VXLAN 终结 → 查三层路由 → VXLAN 封装到 Leaf3
    Leaf3:VXLAN 终结 → 转发给 VM B1

  三层路由经过 Spine——合理。

2.3 集中式网关的问题

1. 东西向流量绕行

    同一 Leaf 下的两个 VM 跨子网通信:
      VM A(VNI 10001)→ VM C(VNI 20001)

    本该:Leaf 直接路由
    实际:Leaf → Spine → Leaf(绕行一次)

2. 单点瓶颈

    Spine 处理所有 VLAN/VNI 的路由
    吞吐量受限(Spine 有瓶颈上限)

3. 扩展性差

    增加 Leaf 不变,Spine 的处理压力持续增加
    Spine 升级困难

4. 故障域

    Spine 网关故障 → 全网三层中断
    Spine 必须是主备/集群

适用场景:
  小规模数据中心(< 200 台服务器)
  简单环境,管理成本优先
  已有传统三层架构的过渡期

三、分布式网关

3.1 架构

分布式网关拓扑:

                   出口路由器
                       │
                  ┌────┴────┐
                  │  Spine   │  ← 纯 IP 转发(不终结 VXLAN)
                  │ (vxlan IP)│
                  └────┬────┘
                       │
┌────┴────┐ ┌───┴───┐ ┌────┴────┐
Leaf1 (VXLAN GW) Leaf2 (GW) Leaf3 (GW)
│ │ │
VM A1 VNI10001 VM A2 VNI10001 VM B1 VNI20001
--- --- --- --- ---

特点: 每台 Leaf 都是 VXLAN 网关(VTEP + IRB) Spine 只做 Underlay IP 转发 东西向流量 Leaf 直接转发

3.2 分布式网关的关键机制

IRB(Integrated Routing and Bridging):
  同一台 Leaf 同时做二层桥接和三层路由

  桥接部分:
    相同 VNI 内 → 二层交换(MAC 表)

  路由部分:
    跨 VNI 间 → 三层路由(网关接口)

  转发模式:

  相同 VNI(同子网)→ Leaf 直接桥接:
    VM A1(Leaf1, VNI 10001) → VM A2(Leaf2, VNI 10001)
      Leaf1: 查 MAC 表 → VTEP 10.1.1.2 → VXLAN 封装到 Leaf2
      Leaf2: VXLAN 终结 → 转发给 VM A2
    路径:Leaf1 → Spine → Leaf2(仅 IP 转发,不终结 VXLAN)

  跨 VNI(跨子网)→ Leaf 直接路由:
    VM A1(Leaf1, VNI 10001) → VM B1(Leaf3, VNI 20001)
      Leaf1: 
        1. 查路由表 → 目标 192.168.2.0/24 通过 IRB 接口可达
        2. 下一跳 VTEP = Leaf3(10.1.1.3)
        3. VXLAN 封装(VNI 20001)→ 发送到 Leaf3
      Leaf3:
        1. VXLAN 终结
        2. 查 MAC 表 → 转发给 VM B1
    路径:Leaf1 → Spine → Leaf3(直接路由,不经过 Spine 网关)

3.3 分布式网关的优势

1. 东西向流量直连

   同一 Leaf 下跨 VNI:
     VM A(VNI10001) → VM B(VNI20001)
     Leaf 本地路由,不需出 Leaf

   不同 Leaf 跨 VNI:
     Leaf1 → Spine → Leaf3
     不经过 Spine 的网关功能
     路径更短

2. 线性扩展

    每增加一台 Leaf → 增加一份网关能力
    总路由能力随 Leaf 数量线性扩展
    不会出现集中式网关的 Spine 瓶颈

3. 高可用

    一台 Leaf 故障 → 仅影响本 Leaf 下的 VM
    其他 Leaf 不受影响
    Anycast Gateway 实现无中断切换

4. 低延迟

    东西向流量减少一跳
    延迟降低 30-50%

四、对称 IRB vs 非对称 IRB

4.1 非对称 IRB(Asymmetric IRB)

非对称 IRB:入 Leaf 做路由,出 Leaf 做桥接

转发流程:
  VM A1(Leaf1, VNI10001, 192.168.1.10) 
    → VM B1(Leaf3, VNI20001, 192.168.2.10)

  入 Leaf(Leaf1):
    1. 收到 VM A1 的帧(dst MAC = 网关 MAC)
    2. 路由查找:192.168.2.10 → VNI 20001, VTEP 10.1.1.3
    3. 封装 VXLAN(VNI 20001)→ 发送到 Leaf3

  出 Leaf(Leaf3):
    1. 收到 VXLAN(VNI 20001)
    2. 查 MAC 表:VM B1 在本地
    3. 桥接转发给 VM B1
    4. 不做路由!

特点:
  入 VTEP 负责路由
  出 VTEP 只做桥接
  入 Leaf 需要知道目的子网的 VNI
  VNI 必须全局对应

问题:
  Leaf 需要在本地配置所有 VNI(即使本地没有 VM)
  VNI 在所有 Leaf 上全量配置
  资源浪费

4.2 对称 IRB(Symmetric IRB)

对称 IRB(RFC 9135):入 Leaf 和出 Leaf 都做路由

转发流程:
  VM A1(Leaf1, VNI10001, 192.168.1.10) 
    → VM B1(Leaf3, VNI20001, 192.168.2.10)

  入 Leaf(Leaf1):
    1. 收到 VM A1 的帧(dst MAC = 网关MAC)
    2. 路由查找:192.168.2.10 → VTEP 10.1.1.3
    3. 封装 VXLAN(VNI 30000 ← L3 VNI)→ 发送到 Leaf3
    4. L3 VNI 是用于三层转发的特殊 VNI

  出 Leaf(Leaf3):
    1. 收到 VXLAN(VNI 30000)
    2. 识别为 L3 VNI → 做三层路由
    3. 查路由:192.168.2.10 在 VNI 20001 本地
    4. 重新封装 VXLAN(VNI 20001)→ 转发给 VM B1

L3 VNI:
  所有 Leaf 间三层流量使用同一个 L3 VNI
  Leaf 不需要为远端子网配置 VNI
  显著减少 VNI 配置量

优点:
  Leaf 只需要配置本地 VM 的 VNI
  远端 VNI 通过 L3 VNI 桥接
  配置量大幅减少

华为实现:默认使用对称 IRB
  # 配置 L3 VNI
  ip vpn-instance Tenant-A
   route-distinguisher 10.1.1.1:1
   vpn-target 10001:10001 export-extcommunity
   vpn-target 10001:10001 import-extcommunity
   vxlan vni 30000                         # L3 VNI

  对比:
    非对称 IRB:每 Leaf 需配所有 VNI
               Leaf1 配 VNI 10001, 20001, 30001...
    对称 IRB:每 Leaf 只配本地 VNI
               Leaf1 配 VNI 10001 + L3 VNI 30000

五、集中式 vs 分布式详细对比

对比维度      集中式网关       分布式网关      分布式优势
────────────────────────────────────────────────────────
路由位置      Spine/专用 GW    每台 Leaf        无单点瓶颈
东西向路径    Spine → Leaf     Leaf → Spine     少一条路径
                              → Leaf(直连)
扩展性        受限于 Spine     Leaf 线性扩展    规模无上限
延迟          更高            更低              ~30% 延迟降低
故障域        Spine 故障全网   单 Leaf 故障    故障隔离
              中断            局部影响
配置复杂度    简单             复杂             EVPN 控制面
VNI 配置      Leaf 只需配      Leaf 需配 L3    对称 IRB 简化
              二层 VNI         VNI
适用于        小型 DC          中大型 DC       --

推荐选择:
  < 500 台服务器:集中式网关——简单易管
  > 500 台服务器:分布式网关——性能和扩展性
  Spine-Leaf 架构:分布式网关——架构匹配

六、华为分布式网关配置示例

# Leaf1 分布式网关配置
#
# 1. L2 VNI(本地 VNI)
bridge-domain 10001
 vxlan vni 10001
 evpn encapsulation vxlan
 #
bridge-domain 20001
 vxlan vni 20001
 evpn encapsulation vxlan
 #
# 2. L3 VNI(三层转发)
ip vpn-instance Tenant-A
 route-distinguisher 10.1.1.1:1
 vpn-target 10001:10001 export-extcommunity
 vpn-target 10001:10001 import-extcommunity
 vxlan vni 30000
 #
# 3. IRB 接口
interface Vbdif10001
 description GW-VNI-10001
 ip binding vpn-instance Tenant-A
 ip address 192.168.1.1 255.255.255.0
 mac-address 0000-5e00-0101
 #
interface Vbdif20001
 description GW-VNI-20001
 ip binding vpn-instance Tenant-A
 ip address 192.168.2.1 255.255.255.0
 mac-address 0000-5e00-0102
 #
# 4. EVPN 配置
bgp 65001
 l2vpn-family evpn
  advertise irb                                    # 通告 IRB 路由
  advertise arp                                    # 通告 ARP

七、总结

知识点 核心要点
集中式网关 Spine 或专用设备终结 VXLAN,做三层路由
集中式问题 东西向绕行、单点瓶颈、扩展性差
分布式网关 每 Leaf 都是网关,VXLAN 终结+路由就地完成
IRB 集成交叉桥接路由,同一设备做二层和三层
对称 IRB 使用 L3 VNI,入/出 Leaf 都做路由,配置量少
非对称 IRB 入 Leaf 路由,出 Leaf 桥接,全量 VNI 配置
Anycast 网关 每 Leaf 相同的网关 IP/MAC,主机侧无感切换
适用场景 小型选集中式,中大型选分布式

八、思考

  1. 集中式网关中,同一 Leaf 下不同 VNI 的两个 VM 通信时,流量路径是怎样的?为什么这不是最优路径?
  2. 分布式网关如何实现"东西向流量不绕行"?请描述跨 Leaf 跨 VNI 的完整转发流程。
  3. 对称 IRB 和 非对称 IRB 的核心区别是什么?L3 VNI 在对称 IRB 中扮演什么角色?
  4. 在分布式网关架构中,Spine 设备需要配置 VXLAN 相关的功能吗?Spine 的角色是什么?
  5. 如果一个数据中心有 2000 台服务器,你会推荐集中式还是分布式网关?为什么?

下篇预告:第259篇《Anycast Gateway 与主机路由》——分布式网关中的 Anycast 地址设计、主机路由分发和无中断故障切换机制。