数据中心为什么不用 STP 了?Spine-Leaf 架构一次讲透



一、开场:从园区网走进机房,老一套突然不灵了

前面五十多课,我们一直在跟园区网打交道,终端接入、VLAN、网关、出口,这套东西很熟。但如果把场景换成数据中心——机房里一排排机柜、成千上万台服务器,你会发现传统三层架构突然就不好使了。

我第一次接触数据中心项目时也纳闷:不就是交换机多一点吗,至于重新搞一套架构?后来跟着做下来才明白,园区网和数据中心最大的区别,是流量方向不一样。园区网主要是终端到网关、到出口的南北向流量;数据中心里,服务器之间要互相调用、分布式存储要同步、微服务之间来回通信,绝大部分是服务器之间的东西向流量。

东西流量一上来,传统架构的毛病全暴露了。这一课就讲数据中心的标准答案——Spine-Leaf(脊叶)架构。


二、传统三层架构,在数据中心为什么水土不服

1. STP 把冗余链路“堵死”了

  • 传统架构靠 STP 防环,冗余链路中总有一条被阻塞、不转发数据,花了钱买的链路只能闲着;
  • 一旦主用链路出问题,STP 重新收敛,期间有秒级甚至更长的中断,对服务器业务很不友好。

2. 带宽和延迟不可预测

  • 流量越往上层越集中,核心很容易成瓶颈;
  • 服务器之间通信要经过接入、汇聚、核心多层转发,跳数多、路径不固定,延迟难预测。

3. 扩容牵一发动全身

  • 想加带宽、加端口,往往要动上层设备、改整体拓扑,扩容成本高、风险大;
  • 而数据中心服务器是逐年、逐批上架的,架构必须能平滑“长大”。

4. 类比

  • 传统三层像所有房间都要经过一个中央走廊,平时还行,人一多走廊就堵,还只开一扇门、另一扇锁着备用;
  • 数据中心需要的是一个“怎么加人和加房间都不堵、每条路都能走”的结构。

三、Spine-Leaf 是什么:两层 Clos,全互联

1. 两种角色,分工明确

图1:Spine-Leaf 全互联拓扑,Leaf 接入服务器,Spine 高速互联,每个 Leaf 与每个 Spine 全互联

  • Leaf(叶交换机):放在机柜顶部,就是 ToR(Top of Rack),直接连接服务器,负责接入;
  • Spine(脊交换机):不接服务器,专门负责把所有 Leaf 高速互联起来;
  • 规则很简单:每一台 Leaf 都和每一台 Spine 用一条链路连起来,形成全互联(full-mesh)。

2. 路径可预测:东西流量永远“三跳”

  • 任意两台服务器通信,路径都是:源 Leaf → Spine → 目的 Leaf,中间固定经过一台 Spine;
  • 无论服务器在哪个机柜,跳数都一样,延迟稳定可预测,这对分布式业务非常重要。

东西向流量转发路径

源服务器

源Leaf

Spine

目的Leaf

目的服务器

3. 带宽规划:Leaf 上行要扛得住

  • 服务器往下连着 Leaf,Leaf 再把下联服务器的流量汇聚到 Spine,Leaf 上联带宽和下联带宽的比值叫收敛比(过载比);
  • 通用数据中心常见 3:1、4:1 的收敛比,意味着一定程度的超卖;AIDC 做无阻塞常要求 1:1,即 Leaf 上联总带宽等于下联带宽;
  • 所以 Leaf 要规划足够的高速上联口(如 100G/200G/400G),Spine 则要提供高密度的对应端口,这直接决定设备选型。

4. 它的老祖宗是 Clos 网络

  • 这种多级交换、全互联的思路最早来自电话交换网的 Clos 网络,数据中心把它做成了 Spine-Leaf 两层形态;
  • 规模特别大时还可以再叠加成多级胖树(Fat Tree),AIDC 里很常见。

四、Spine-Leaf 的核心优势

1. 横向扩展,加设备不影响现网

  • 加 Spine:等于给所有 Leaf 增加上联带宽和可用路径,分担压力;
  • 加 Leaf:等于增加服务器接入端口,新 Leaf 接上所有 Spine 即可;
  • 扩容就是“按模块加盒子”,不用动现有设备和业务,这正是数据中心最看重的弹性。

2. ECMP:所有链路都能用,不再依赖 STP

  • Spine-Leaf 是三层路由组网(routed fabric),Leaf 到多台 Spine 走等价路由;
  • ECMP(等价多路径)把流量哈希分摊到多条上联链路上,链路全部利用、没有 STP 阻塞;
  • 某条链路或某台 Spine 故障,流量自动走剩余路径,故障域小、收敛快。

3. 低延迟、故障域小

  • 固定三跳、设备间跑路由协议,单点故障影响被限制在小范围;
  • 对比 STP 的整网收敛,Spine-Leaf 上一个故障只影响局部,业务几乎无感。

4. 类比

  • Spine-Leaf 像城市的方格路网:每个路口(Leaf)都有多条平行主干道(Spine),一条堵了立刻换另一条,楼盖到哪、路就平行修到哪,不用把全城拆了重建。

五、关键技术:IP Fabric、VXLAN 与 EVPN

1. Underlay:底层的三层 IP 网络

图2:Underlay 与 Overlay 关系,Underlay 跑 BGP 和 ECMP,Overlay 用 VXLAN 构建大二层,EVPN 做控制平面

  • Spine 和 Leaf 之间跑路由协议(数据中心常用 BGP,也有用 OSPF 的),构成一张纯三层的底层网络,叫 Underlay;
  • Underlay 只负责把报文可靠、多路径地送到对端,ECMP 就作用在这一层。

2. Overlay:用 VXLAN 构建“大二层”

  • 服务器迁移、集群、多租户都需要二层可达,但物理网络是三层的,于是用 VXLAN(MAC in UDP) 在上面叠出逻辑大二层;
  • VXLAN 用 24 位 VNI 标识网络,能支持上千万个逻辑网络(2^24 约 1600 万个),远多于 VLAN 的 4094 个可用数量,默认封装在 UDP 4789;
  • 物理 Underlay 保持简单稳定,租户的二层网络在 Overlay 上灵活构建,互不影响;
  • 负责 VXLAN 封装和解封装的设备叫 VTEP(虚拟隧道端点),在这套架构里就是 Leaf 交换机,服务器自身通常感知不到 VXLAN,由接入 Leaf 替它完成封装。

3. EVPN:让控制平面更聪明

  • 传统二层靠数据面泛洪学 MAC,规模大了广播泛滥;EVPN 用 BGP 扩展(BGP EVPN)在控制面分发 MAC/IP 路由;
  • Leaf 之间通过 EVPN 直接知道对端的 MAC 和地址,支持 ARP 抑制、减少泛洪,多租户和迁移更可控;
  • EVPN 还支持多归接入,一台服务器双上联到两台 Leaf,负载分担且单点故障不影响业务,这也是它被广泛采用的重要原因;
  • 现在主流数据中心基本是“VXLAN + EVPN”这一对组合。

4. 类比

  • Underlay 像城市的实际道路网,Overlay 像在上面规划的专用快速通道,VXLAN 是给每类车队贴的分组标签,EVPN 则是实时导航系统,提前告诉每辆车该走哪条路,而不是到路口瞎问。

六、Spine-Leaf 与传统三层对比

对比项传统三层Spine-Leaf
防环机制STP,链路阻塞路由 + ECMP,链路全用
东西流量跳数多、易瓶颈固定三跳、延迟稳定
带宽利用冗余链路闲置多路径并行、利用率高
扩容方式改上层、动整体加 Spine/Leaf 模块化扩展
故障影响STP 整网收敛局部故障、快速绕行
多租户VLAN 数量受限VXLAN/EVPN,海量逻辑网络
典型场景园区、传统网络数据中心、云、AIDC

补充:Spine-Leaf 也不是万能的

  • 全互联意味着规模受 Spine 端口密度限制:Leaf 越多,每台 Spine 要拿出的端口越多,超过上限就得引入多级架构;
  • 对几十、几百台终端的普通园区,全三层加 VXLAN 反而增加运维复杂度,用熟悉的两层园区架构更划算;
  • 架构没有绝对优劣,关键看流量模型、规模和团队运维能力,别为了“看起来先进”盲目上 Spine-Leaf。

七、AIDC 智算中心:Spine-Leaf 的“升级版”

图3:AIDC 多级胖树与无损网络,GPU 服务器接入,RoCEv2 流量经 PFC 与 ECN 保障不丢包

  • GPU 集群里参数同步、分布式训练产生超大东西向流量,对带宽和延迟比通用数据中心更敏感;
  • 智算网络普遍采用多平面、多级胖树 Spine-Leaf,并引入无损以太网技术:RoCEv2、PFC(优先级流控)、ECN/DCQCN 拥塞控制,让 RDMA 流量不丢包;
  • 算力规模越大,Leaf 上行带宽和 Spine 容量越要按无阻塞比(如 1:1 收敛比)设计,这也是第 103 课把数据中心/AIDC 列为重要转型方向的原因;
  • 具体参数和设备能力差异很大,规划时以实际产品和业务模型为准。

八、配置示例:Leaf/Spine 路由与 VXLAN

1. Leaf 上 BGP 与 ECMP

[Leaf] bgp 65001
[Leaf-bgp] router-id 10.0.0.1
[Leaf-bgp] peer 10.1.1.1 as-number 65000
[Leaf-bgp] peer 10.1.2.1 as-number 65000
[Leaf-bgp] maximum load-balancing 4
[Leaf-bgp] quit
  • Leaf 与两台 Spine(接口地址 10.1.1.1、10.1.2.1)建立 BGP 邻居,maximum load-balancing 4 开启 ECMP,让多条上联链路同时分担流量,路径按报文五元组哈希分配。

2. VXLAN 接入(Leaf 侧)

[Leaf] bridge-domain 10
[Leaf-bd10] vxlan vni 10010
[Leaf-bd10] quit
[Leaf] interface Nve1
[Leaf-Nve1] source 10.0.0.1
[Leaf-Nve1] vni 10010 head-end peer-list 10.0.0.2
[Leaf-Nve1] quit
  • BD 绑定 VNI,Nve 接口做 VXLAN 封装,head-end peer-list 指定对端 Leaf 的 VTEP 地址。

3. 验证

[Leaf] display bgp peer
Peer        State
10.1.1.1    Established
10.1.2.1    Established
[Leaf] display vxlan vni
VNI      BD    State
10010    10    Up

关键看 BGP 邻居是否 Established、VXLAN VNI 是否 Up,再结合 display ip routing-table 确认等价路由下一跳有多条。

4. 光纤与光模块衰减:收光功率是关键

  • Spine-Leaf 全互联,光纤和光模块数量巨大,光信号在链路上的衰减直接决定端口会不会误码、闪断;
  • 光模块有两个关键功率:发送光功率 Tx 和 接收光功率 Rx,接收端还有个接收灵敏度,即能正确识别的最弱光功率;
  • 光功率预算 = 发送光功率 − 接收灵敏度,整条链路的实际衰减必须小于这个预算,否则收光功率低于灵敏度,开始丢包;
  • 衰减来源:光纤本身(距离越长衰减越大,单模/多模、波长不同衰减不同)、法兰盘和熔接点的插损、过度弯折、端面脏污;
  • 排障用 display transceiver 看两端收发光功率,对照模块标称范围判断。
[Leaf] display transceiver interface 100GE1/0/1 verbose
Current Rx Power(dBm) : -6.21
Current Tx Power(dBm) : -2.05

关键看 Rx 是否落在模块接收范围内、且高于灵敏度;Rx 明显偏低往往是端面脏、弯折或熔接差,先清洁端面、更换跳纤再测,具体门限以模块规格为准。

  • 端口时通时断、错误包计数增长但配置全对,优先查光功率和光模块;
  • 两端功率都正常仍报错,检查两端模块速率、波长是否匹配兼容,必要时换模块或换端口。

九、数据中心网络问题排查

现象命令看到什么判断动作
邻居起不来display bgp peerState 非 Established路由/IP 配置问题查接口 IP、AS 号
链路未分担display ip routing-table只有一个下一跳ECMP 未生效查负载均衡配置
VXLAN 不通display vxlan vniState DownVNI/VTEP 问题查 Nve、peer-list
局部丢包display interface错误包/拥塞计数物理或拥塞问题查光模块、ECN
收光功率低display transceiverRx 接近或低于灵敏度光纤衰减/端面脏清洁端面、换跳纤
端口闪断display transceiver功率时高时低弯折/模块不匹配查布线、换光模块
无损网络丢包display priority-flow-control statisticsPFC 死锁/缓存丢无损配置问题调 PFC/ECN 水线
扩容后异常display bgp routing-table路由缺失新设备未放通查路由策略、全互联

十、🔧 运维视角 & 📐 设计视角

🔧 运维视角:

  • 数据中心排障先看 BGP 邻居和 Underlay 连通,再看 VXLAN/EVPN 的 Overlay,分层定位;
  • 扩容严格按“新 Leaf 接全所有 Spine、新 Spine 接全所有 Leaf”的规矩,漏接就会出现路径不均;
  • 关注 ECMP 哈希是否均衡,避免个别链路偏热点;
  • 光模块故障最隐蔽,端口配置全对却丢包时,用 display transceiver 看收光功率,清洁端面、换跳纤是最快的验证手段。

📐 设计视角:

  • 先按服务器规模和东西流量估算 Leaf/Spine 数量、端口密度和收敛比,再选设备;
  • 提前定好 Underlay 编址、BGP AS 规划和 VNI/VTEP 方案,多租户留足余量;
  • AIDC 要把无损网络和无阻塞比作为硬性指标,不能照搬通用数据中心。

十一、思科对照

目的华为思科
数据中心架构CloudEngine Spine-LeafNexus + ACI/VXLAN
底层路由BGP + ECMPBGP + ECMP
大二层VXLANVXLAN(VTEP)
控制平面BGP EVPNMP-BGP EVPN
看邻居display bgp peershow bgp summary
看 VXLANdisplay vxlan vnishow nve vni

设备和命令不同,Clos、全互联、ECMP、VXLAN/EVPN 的设计思想完全一致。


十二、小结与命令速查表

  • 数据中心东西流量大,传统三层受 STP 阻塞、扩容难、延迟不可预测,Spine-Leaf 是标准答案;
  • Leaf 接服务器、Spine 做互联,全互联后东西流量固定三跳、延迟稳定;
  • 靠 BGP + ECMP 让所有链路并行可用,VXLAN 构建大二层、EVPN 做控制面,支持海量租户;
  • 扩容模块化、故障域小,AIDC 进一步用胖树和无损网络承载 GPU 流量。

本篇命令速查表:

目的关键命令
BGP 进程bgp as-number
建邻居peer ... as-number
等价多路径maximum load-balancing
绑定 VNIvxlan vni
VXLAN 隧道interface Nve + head-end peer-list
看邻居display bgp peer
看 VXLANdisplay vxlan vni
看路由display ip routing-table
看光模块功率display transceiver

十三、思考题 & 评论区接招

💬 互动题(评论区接招):

你们机房是传统三层还是 Spine-Leaf?多少台服务器、多少台 Spine?

  1. 不看资料,说说 Leaf 和 Spine 各管什么,为什么东西流量能固定三跳?
  2. ECMP 相比 STP 解决了什么问题?VXLAN 为什么能突破 VLAN 数量限制?
  3. EVPN 相比传统泛洪学 MAC 好在哪?AIDC 为什么要上无损网络?

把你的数据中心组网(服务器规模、Spine/Leaf 数、是否 VXLAN,打码)发在评论区,我帮你看架构和收敛比合不合理。


系列导航:

我是你们的老网工。这一课你已经看懂了数据中心的 Spine-Leaf,也明白了 VXLAN/EVPN 和 AIDC 无损网络是怎么回事。回到园区网,无论哪种架构,可靠性都是绕不开的硬指标:双链路、双核心、双电源到底怎么配,故障域怎么划,可靠性预算怎么算?下一课《冗余设计——消灭单点》,我们接着讲。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐