第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,主机侧无感切换 |
| 适用场景 | 小型选集中式,中大型选分布式 |
八、思考
- 集中式网关中,同一 Leaf 下不同 VNI 的两个 VM 通信时,流量路径是怎样的?为什么这不是最优路径?
- 分布式网关如何实现"东西向流量不绕行"?请描述跨 Leaf 跨 VNI 的完整转发流程。
- 对称 IRB 和 非对称 IRB 的核心区别是什么?L3 VNI 在对称 IRB 中扮演什么角色?
- 在分布式网关架构中,Spine 设备需要配置 VXLAN 相关的功能吗?Spine 的角色是什么?
- 如果一个数据中心有 2000 台服务器,你会推荐集中式还是分布式网关?为什么?
下篇预告:第259篇《Anycast Gateway 与主机路由》——分布式网关中的 Anycast 地址设计、主机路由分发和无中断故障切换机制。