一、引言:数据中心网络,为什么不再像一棵树?
如果把传统企业网络比作一棵树,那么它通常具有清晰的层级结构:
-
接入层(Access):负责连接终端和服务器。
-
汇聚层(Aggregation):负责汇总接入流量,实现策略控制。
-
核心层(Core):负责高速转发,连接不同网络区域。
这种架构在传统企业园区网络中非常成熟,也曾经是数据中心网络建设的主流方案。
但是,随着云计算、虚拟化、分布式存储、大数据以及人工智能的发展,数据中心内部的通信模式发生了巨大变化。
过去,用户访问服务器,主要表现为客户端与服务器之间的通信,流量更多地从外部进入数据中心,再从数据中心返回外部,这类流量被称为南北向流量(North-South Traffic)。
而在现代数据中心中,一台服务器可能需要与其他数十台甚至数百台服务器进行通信。
例如:
-
分布式数据库需要在不同节点之间同步数据。
-
虚拟化平台需要在不同物理主机之间迁移虚拟机。
-
分布式存储需要在多个节点之间复制数据。
-
AI 大模型训练需要大量 GPU 之间进行梯度同步和数据交换。
这些发生在数据中心内部的通信,被称为东西向流量(East-West Traffic)。
当东西向流量不断增加,传统三层网络架构就逐渐暴露出一些问题:
-
网络层级较多,服务器之间通信可能需要经过多个交换设备。
-
上行链路容易成为流量瓶颈。
-
传统二层网络中的生成树协议可能阻塞部分冗余链路。
-
网络扩容往往需要调整多个层级,增加运维复杂度。
-
网络规模扩大后,带宽、时延和可靠性之间的平衡越来越难。
于是,一种更加适合现代数据中心的网络架构逐渐成为主流:
Leaf-Spine(叶脊网络架构),也称为叶脊架构或 Clos 网络架构。
它的核心思想并不复杂:
将传统复杂的多层树形网络进行扁平化设计,让每一台 Leaf 交换机都连接到所有 Spine 交换机,通过多条等价路径实现高带宽、低时延和高可靠性。
这不仅是网络拓扑的改变,更是数据中心网络设计思想的一次转变。
二、传统三层网络架构:为什么需要改变?
在理解叶脊架构之前,我们先回顾一下传统数据中心三层网络。
2.1 传统三层架构的组成
传统三层网络通常由以下三个层级组成:
1. 接入层(Access Layer)
接入层直接连接服务器、存储设备以及其他网络终端,负责设备接入和基础二层转发。
2. 汇聚层(Aggregation Layer)
汇聚层连接多个接入交换机,负责流量汇总、三层网关、路由控制以及部分安全策略。
3. 核心层(Core Layer)
核心层提供高速网络转发能力,负责不同汇聚区域之间的通信,以及数据中心与外部网络之间的连接。
传统架构示意:
Core
+--------+
| Core 1 |
+--------+
|
+--------+
| Core 2 |
+--------+
|
+------+------+
| |
+---------+ +---------+
| Agg 1 | | Agg 2 |
+---------+ +---------+
| | | |
+--+ +--+ +--+ +--+
| | | |
Access Access Access Access
| | | |
Server Server Server Server
这种架构的优势是层次清晰、职责明确,适合传统业务流量模型。
但是,当数据中心内部东西向流量不断增加时,传统架构就会面临一些挑战。
2.2 传统架构的主要问题
问题一:通信路径较长
假设服务器 A 和服务器 B 分别连接到不同的接入交换机。
在传统三层网络中,数据可能需要经过:
Server A
|
Access Switch A
|
Aggregation Switch
|
Core Switch
|
Aggregation Switch
|
Access Switch B
|
Server B
实际路径取决于网络设计,但可以看出,跨区域通信可能经过多个网络层级。
设备转发越多,网络路径就越复杂,也越难保证稳定、可预测的时延。
问题二:冗余链路利用率受限
传统二层网络通常会使用 STP(生成树协议)避免二层环路。
STP 为了防止环路,可能将部分冗余链路置于阻塞状态。
这意味着:
即使物理上部署了多条链路,也不代表所有链路都能够同时转发业务流量。
问题三:扩展能力受到限制
当服务器规模不断增加时,接入层、汇聚层和核心层都可能需要进行扩容。
设备端口密度、上行带宽、网络收敛以及故障域都会成为新的设计问题。
对于需要快速扩展的云计算和 AI 数据中心来说,这种扩容方式显然不够灵活。
因此,现代数据中心需要一种更加扁平化、更加容易横向扩展的网络架构。
这就是 Leaf-Spine 架构出现的重要原因。
三、什么是 Leaf-Spine 叶脊网络架构?
Leaf-Spine 是一种基于 Clos 网络设计思想的数据中心网络拓扑。
它主要由两个交换层组成:
-
Leaf Layer(叶子层)
-
Spine Layer(脊骨层)
其最重要的设计原则是:
每一台 Leaf 交换机都必须连接到网络中的每一台 Spine 交换机。
Spine 交换机之间通常不直接互联,Leaf 交换机之间也不直接互联。
整个网络通过 Leaf 和 Spine 之间的全互联关系,构建出一个具有多条等价转发路径的网络 Fabric。
3.1 Leaf 层:服务器接入的核心位置
Leaf 交换机位于叶脊架构的接入层,主要负责连接服务器、存储设备以及其他数据中心基础设施。
它的主要职责包括:
-
连接物理服务器和虚拟化基础设施。
-
提供服务器之间的二层或三层通信。
-
承担 VLAN、网关以及相关网络策略功能。
-
将业务流量转发到 Spine 层。
-
在采用 VXLAN 架构时,承担 VTEP 等 Overlay 网络功能。
在实际数据中心中,Leaf 交换机通常部署在机柜顶部,也就是常见的 ToR(Top of Rack)交换机。
例如,一个机柜中部署了 20 台服务器,这些服务器可以通过 25G 或 100G 网卡连接到 Leaf 交换机。
Leaf 再通过高速上行链路连接到 Spine。
需要注意:
Leaf 不只是传统意义上的接入交换机。在现代数据中心网络中,它往往还是网络三层边界、网关和 Overlay 隧道的关键位置。
3.2 Spine 层:整个网络的高速骨干
Spine 交换机相当于叶脊网络中的高速骨干层。
它主要负责连接所有 Leaf 交换机,为不同 Leaf 之间的通信提供高速转发路径。
Spine 的主要职责包括:
-
提供 Leaf 之间的高速互联。
-
承担大规模东西向流量转发。
-
通过 ECMP 实现多路径负载分担。
-
提供网络冗余和链路故障切换能力。
Spine 通常不直接连接服务器,而是专注于高速转发。
在典型的三层 Underlay 设计中,Spine 主要承担 IP 路由转发功能,不需要承担复杂的业务网关和终端接入职责。
3.3 Leaf-Spine 拓扑结构
下面通过一个简单的拓扑理解叶脊架构:
Spine Layer
+--------+ +--------+
| Spine1 | | Spine2 |
+--------+ +--------+
|\ \ / /|
| \ \ / / |
| \ \ / / |
| \ \/ / |
| / /\ \ |
| / / \ \ |
| / / \ \ |
|/ / \ \|
Leaf Layer
+--------+ +--------+
| Leaf1 | | Leaf2 |
+--------+ +--------+
| |
+------+ +------+
|Server| |Server|
+------+ +------+
实际部署中,每一台 Leaf 都需要连接到所有 Spine。
例如:
-
Leaf1 连接 Spine1、Spine2。
-
Leaf2 连接 Spine1、Spine2。
-
Leaf3 也连接 Spine1、Spine2。
这样,任意两台不同 Leaf 下的服务器,都可以通过 Spine 建立通信。
这就是叶脊架构最核心的设计思想。
四、Leaf-Spine 的工作原理:数据包究竟如何转发?
理解了拓扑结构之后,我们再从数据转发角度分析叶脊架构。
假设数据中心中存在两台服务器:
-
Server A:连接 Leaf1。
-
Server B:连接 Leaf2。
当 Server A 需要访问 Server B 时,数据包的典型转发路径如下:
Server A
|
v
Leaf1
|
v
Spine
|
v
Leaf2
|
v
Server B
如果两台服务器位于同一个 Leaf 下,并且通信条件允许,则可以直接通过 Leaf 完成转发,不需要经过 Spine。
如果两台服务器位于不同 Leaf 下,则通常需要经过一个 Spine。
这也是叶脊架构能够提供较为稳定通信路径的重要原因。
4.1 为什么说叶脊架构的网络时延更加可预测?
假设:
-
Server A 连接 Leaf1。
-
Server B 连接 Leaf3。
-
Server C 连接 Leaf5。
只要它们分别处于不同 Leaf 下,那么跨 Leaf 通信的典型路径都是:
Server → Leaf → Spine → Leaf → Server
无论服务器之间相隔几个机柜,在同一个两层 Fabric 内,其网络设备转发跳数基本一致。
这意味着:
网络规模增加,并不必然导致不同机柜之间的通信路径不断增加。
当然,这里说的是网络拓扑层面的设备跳数,并不代表实际端到端时延完全相同。
实际时延还受到以下因素影响:
-
交换机转发时延。
-
链路速率和传输距离。
-
排队和拥塞情况。
-
网络设备缓存。
-
流量负载以及路径选择。
因此,Leaf-Spine 的优势是让网络路径更加规整、时延更加容易预测,而不是保证所有通信时延完全一致。
五、ECMP:为什么叶脊网络能够同时使用多条链路?
如果说 Leaf-Spine 是整个网络的骨架,那么 ECMP 就是让这个骨架真正发挥多路径能力的关键技术之一。
ECMP 的全称是:
Equal-Cost Multi-Path,等价多路径路由。
它的主要作用是:
当网络中存在多条到达同一目的网络、且路由开销相同的路径时,可以同时利用这些路径进行流量转发。
5.1 传统单路径与 ECMP 的区别
假设 Leaf1 需要向 Leaf2 转发数据。
网络中存在两台 Spine:
Spine1
/ \
Leaf1 Leaf2
Spine2
/ \
Leaf1 Leaf2
如果采用单路径转发,可能只有 Spine1 承担实际业务流量。
而使用 ECMP 后,Leaf1 可以同时通过 Spine1 和 Spine2 到达 Leaf2。
这样就能够充分利用多条上行链路的带宽。
5.2 ECMP 如何进行负载分担?
ECMP 通常根据数据流的哈希值选择转发路径。
哈希字段可能包括:
-
源 IP 地址。
-
目的 IP 地址。
-
源端口。
-
目的端口。
-
IP 协议类型。
不同的数据流可能被分配到不同的 Spine 路径。
例如:
Flow A → Spine1
Flow B → Spine2
Flow C → Spine1
Flow D → Spine2
需要特别注意:
ECMP 通常是以流为单位进行哈希分担,而不是保证每个数据包都平均分配到不同路径。
这样做是为了避免同一数据流中的数据包经过不同路径后出现乱序。
另外,ECMP 也不意味着每条链路一定获得完全相同的流量。哈希碰撞、流量大小差异以及大象流(Elephant Flow)都可能造成负载不均衡。
5.3 ECMP 带来的优势
第一,提高链路利用率。
多条等价路径可以同时承担业务流量,减少传统网络中冗余链路闲置的问题。
第二,提高网络带宽。
通过增加 Spine 或 Leaf-Spine 之间的并行链路,可以扩展网络整体转发能力。
第三,提高网络可靠性。
当某条链路或者某台 Spine 发生故障时,路由协议可以重新计算可用路径,ECMP 也可以使用剩余的有效路径。
不过,故障恢复时间仍然取决于路由协议、故障检测机制和具体设备实现,并不是链路故障后完全没有业务影响。
六、Leaf-Spine 的扩展能力:Scale-Out 横向扩展
传统网络在扩容时,经常需要考虑核心设备的端口密度、设备性能以及不同层级之间的带宽匹配。
而叶脊架构采用的是 Scale-Out(横向扩展)思想。
简单来说:
当数据中心需要增加服务器时,可以增加 Leaf;当网络需要增加整体转发能力时,可以增加 Spine。
6.1 增加 Leaf:扩展服务器接入规模
假设原本有 4 台 Leaf,每台 Leaf 连接 20 台服务器。
那么:
4 × 20 = 80 台服务器
当服务器规模增加到 120 台时,可以增加 2 台 Leaf。
这样就能够扩展服务器接入规模。
6.2 增加 Spine:扩展网络转发能力
假设原本有 4 台 Spine,每台 Leaf 都与这 4 台 Spine 建立连接。
当网络流量不断增加时,可以根据端口资源和网络设计增加 Spine。
增加 Spine 后,每台 Leaf 就拥有更多等价的上行转发路径。
但这里需要注意一个工程问题:
增加 Spine 并不是无限制的。Leaf 的上行端口数量、Spine 的端口密度、光模块成本以及链路布线都会影响最终扩展规模。
6.3 Scale-Out 的核心价值
Leaf-Spine 最大的价值之一,就是可以按照业务增长情况逐步扩展网络。
不必每次增加服务器都重新设计整个数据中心网络。
这种模块化扩展方式特别适合:
-
云计算数据中心。
-
大型互联网数据中心。
-
虚拟化平台。
-
分布式存储集群。
-
AI 训练集群。
七、网络设计中的关键指标:超售比(Oversubscription)
真正的数据中心网络设计,不能只看交换机数量和链路速率。
还必须考虑一个非常重要的指标:
超售比(Oversubscription Ratio)。
它反映的是下行接入带宽与上行可用带宽之间的比例关系。
通常可以表示为:
超售比 = 下行总带宽 / 上行总带宽
例如:
某台 Leaf 交换机具有:
-
48 个 25Gbps 服务器接入口。
-
8 个 100Gbps Spine 上行接口。
那么:
下行总带宽:
上行总带宽:
超售比:
也就是:
这表示接入侧总带宽是上行侧总带宽的 1.5 倍。
如果所有服务器同时以线速向上发送数据,那么上行链路无法同时承载全部流量。
但这并不意味着网络一定会拥塞。
因为实际业务流量通常具有一定的统计特征,设计时需要结合业务模型、流量峰值和通信模式进行判断。
7.1 为什么 AI 数据中心更加关注超售比?
在传统业务中,不同服务器之间的通信往往存在一定随机性。
但是,在 AI 大模型训练集群中,GPU 之间可能需要频繁进行数据交换。
例如:
-
All-Reduce。
-
All-Gather。
-
Reduce-Scatter。
-
参数同步。
-
梯度同步。
这些通信模式可能在特定训练阶段产生大量突发流量。
如果网络超售比过高,就可能导致拥塞、排队和通信性能下降。
因此,AI 数据中心往往需要根据训练规模和通信模式设计更高带宽、低超售甚至无超售的网络。
需要强调的是,是否采用 1:1 并不是固定答案,而是取决于业务需求、预算、网络规模和通信模式。
八、Leaf-Spine 与 VXLAN EVPN:从物理网络走向虚拟化网络
如果说 Leaf-Spine 解决的是物理网络如何连接,那么 VXLAN EVPN 解决的就是业务网络如何在这个物理网络之上灵活构建。
现代数据中心通常不会只部署简单的二层交换网络。
随着虚拟机、容器和多租户业务不断增加,传统 VLAN 的数量和二层网络扩展能力逐渐难以满足复杂业务需求。
因此,越来越多的数据中心采用:
Underlay + Overlay 的网络架构。
8.1 Underlay:底层物理网络
Underlay 是数据中心的基础网络,通常采用三层 IP 路由设计。
在 Leaf-Spine 网络中:
-
Leaf 和 Spine 之间建立三层 IP 连接。
-
通过 OSPF、IS-IS 或 BGP 等路由协议实现网络可达。
-
使用 ECMP 实现多路径转发。
Underlay 的核心目标是:
为整个数据中心提供稳定、高速、可靠的 IP 传输网络。
8.2 Overlay:构建虚拟业务网络
Overlay 是建立在 Underlay 之上的逻辑网络。
通过 VXLAN 技术,可以在三层 IP 网络之上构建逻辑二层网络。
VXLAN 的全称是:
Virtual Extensible LAN,虚拟可扩展局域网。
它通过 UDP 封装方式,将原始以太网帧封装在 IP 报文中进行传输。
VXLAN 使用 24 位 VNI(VXLAN Network Identifier)标识不同的逻辑网络。
其理论上可以支持:
个 VNI 编号空间。
相比传统 VLAN 的 12 位 VLAN ID,VXLAN 在网络隔离和多租户场景中拥有更大的标识空间。
8.3 EVPN:控制平面如何工作?
EVPN 的全称是:
Ethernet VPN,以太网虚拟专用网络。
在 VXLAN EVPN 架构中,EVPN 通常使用 MP-BGP 作为控制平面,负责发布 MAC、IP 等网络可达信息。
VXLAN 负责数据平面的封装和转发,EVPN 则负责控制平面的信息交换。
两者配合,可以实现:
-
不同 Leaf 之间的 MAC 地址学习和分发。
-
多租户网络隔离。
-
跨 Leaf 的二层业务互通。
-
分布式网关部署。
-
更灵活的虚拟机和容器网络连接。
8.4 Underlay 与 Overlay 的关系
可以简单理解为:
业务服务器 / 虚拟机 / 容器
|
|
Overlay 网络
VXLAN + EVPN
|
|
Underlay 网络
IP + ECMP
|
|
Leaf-Spine
|
|
物理交换机与链路
Underlay 解决网络设备之间如何通信。
Overlay 解决不同业务、租户以及虚拟网络之间如何通信。
这也是现代云数据中心网络架构的重要组成部分。
九、Leaf-Spine 的优势与不足:没有一种架构是万能的
从数据中心架构设计的角度来看,Leaf-Spine 具有非常明显的优势,但它也并不是没有代价。
9.1 主要优势
1. 网络路径更加扁平化
跨 Leaf 通信通常只需要经过一个 Spine,能够减少网络层级和不必要的转发跳数。
2. 多路径转发能力强
通过 ECMP,可以充分利用多条等价链路,提高网络整体带宽利用率。
3. 网络扩展能力强
可以通过增加 Leaf 扩展服务器接入规模,通过增加 Spine 扩展网络转发能力。
4. 网络可靠性较高
Leaf 到 Spine 存在多条独立路径,单链路或单台 Spine 故障时,通常仍然存在其他可用路径。
5. 更适合东西向流量
能够满足云计算、分布式存储以及 AI 集群的大规模内部通信需求。
9.2 主要不足
1. 物理布线复杂
每台 Leaf 都需要连接到每台 Spine。
当 Leaf 和 Spine 数量增加时,光纤链路和光模块数量也会快速增长。
2. 初期建设成本较高
需要部署多台高速交换机,同时还需要考虑光模块、光纤、机柜空间以及电力和散热成本。
3. 网络设计复杂度提高
需要综合考虑 IP 地址规划、路由协议、ECMP、故障域、链路利用率以及网络自动化。
4. 网络排障要求更高
多路径网络中,问题可能涉及哈希分担、路由收敛、链路状态、拥塞以及 Overlay 封装等多个层面。
5. 并非所有业务都需要高规格叶脊架构
对于规模较小、东西向流量较少的网络,传统架构可能已经足够,没有必要盲目追求复杂的 Fabric。
真正优秀的架构设计,不是采用最先进的技术,而是让网络能力与业务需求相匹配。
十、从传统数据中心到 AI 数据中心:叶脊架构正在面临什么变化?
如果说云计算推动了数据中心网络从传统三层架构向 Leaf-Spine 演进,那么 AI 大模型的发展,则进一步提高了数据中心对网络带宽、时延和可靠性的要求。
传统数据中心主要关注服务器之间的业务访问。
而 AI 数据中心需要面对大量 GPU 之间的高频通信。
例如,一个大规模模型训练任务可能涉及数百甚至数千张 GPU。
这些 GPU 不仅需要访问存储和数据集,还需要在训练过程中持续交换数据。
网络性能可能直接影响 GPU 的计算效率。
10.1 AI 集群为什么需要高带宽网络?
假设一个 GPU 集群包含 256 张 GPU。
在分布式训练过程中,GPU 之间需要执行梯度同步等集合通信操作。
如果网络带宽不足,就可能出现:
-
GPU 等待网络传输完成。
-
集合通信耗时增加。
-
网络拥塞导致传输延迟上升。
-
GPU 计算资源无法充分利用。
这意味着:
即使 GPU 本身拥有极高的计算能力,如果网络不能及时提供数据交换能力,整个集群的训练效率也可能受到影响。
10.2 AI 数据中心的网络技术演进
在传统叶脊架构的基础上,AI 数据中心还会进一步引入:
-
200G / 400G / 800G 高速以太网。
-
RDMA(Remote Direct Memory Access)。
-
RoCEv2(RDMA over Converged Ethernet)。
-
PFC(Priority Flow Control)。
-
ECN(Explicit Congestion Notification)。
-
DCQCN 等拥塞控制机制。
-
高性能网络适配器和智能网卡。
这些技术共同解决大规模 GPU 集群中的高速数据传输和拥塞控制问题。
不过,AI 网络也并不是简单地把交换机升级到 400G 或 800G 就可以解决所有问题。
真正的 AI 数据中心网络设计,需要同时考虑:
-
GPU 集群规模。
-
GPU 之间的通信模式。
-
网络拓扑和链路带宽。
-
网络收敛和故障恢复。
-
拥塞控制机制。
-
交换机缓存和队列设计。
-
网络与计算、存储系统的协同。
从这个角度来看,Leaf-Spine 已经不仅仅是一种网络拓扑,更是现代 AI 数据中心网络 Fabric 的重要基础。
十一、总结:叶脊架构改变的不只是网络拓扑
回顾整个 Leaf-Spine 架构,我们可以发现,它最重要的价值并不是简单地减少了一层交换机。
而是通过更加扁平化的网络设计,实现了几个重要目标:
-
让不同机柜之间的通信路径更加统一。
-
让多条等价链路能够同时参与流量转发。
-
让数据中心能够通过横向扩展适应业务增长。
-
让 Underlay 和 Overlay 分离,提升业务网络的灵活性。
-
为云计算、分布式存储以及 AI 集群提供更适合的网络基础设施。
如果用一句话总结:
传统三层网络强调层级汇聚,而 Leaf-Spine 强调全互联、多路径和横向扩展。
对于正在学习数据中心网络的工程师来说,我认为真正需要掌握的不是 Leaf 和 Spine 两个英文单词,而是理解它背后的设计思想:
网络架构需要围绕业务流量模型进行设计;网络带宽不能只看单条链路速率,还要考虑整体转发能力;网络可靠性也不能只依赖设备冗余,而要通过多路径、路由收敛和故障域设计共同实现。
未来,无论是云计算、超大规模数据中心,还是 AI 算力集群,网络都将成为决定基础设施性能的重要因素。
而 Leaf-Spine,正是理解现代数据中心网络架构的一块重要基石。
学习心得:理解 Leaf-Spine 之后,再去学习 BGP、ECMP、VXLAN、EVPN,就不再是孤立地记忆协议,而是能够从整个数据中心网络架构的角度理解每项技术为什么存在,以及它们分别解决什么问题。