2、Fabric网络架构:Spine-Leaf架构详解、Underlay与Overlay网络、Fabric中的VXLAN技术

好,咱们进入第二章。这一章是Fabric的骨架,也是你理解后面所有隔离、多网融合的基础。说白了,就是搞清楚数据到底是怎么在数据中心里跑的,以及我们怎么用软件定义的方式去控制它。

我个人习惯把Fabric网络拆成三个层次来看:物理怎么连(Spine-Leaf)、底层怎么通(Underlay)、上层怎么建隧道(Overlay)。咱们一个一个来。

2.1 Spine-Leaf架构:为什么传统三层不行了?

先问个问题:传统网络里,服务器之间通信,流量得经过核心层、汇聚层、接入层。你想想看,如果两台服务器不在同一个接入交换机下,数据得先上到汇聚,再绕到核心,再下来。延迟高不说,带宽也被挤在核心那几台设备上。

Spine-Leaf架构就是为了解决这个问题。它只有两层:

  • Leaf(叶子层):直接连接服务器。相当于接入层,但功能更纯粹。
  • Spine(脊干层):只负责转发,不连服务器。所有Leaf都连到所有Spine。

这样做的好处是什么?任何两台服务器之间,最多经过一跳(Leaf→Spine→Leaf)。延迟固定,带宽可以水平扩展——加一台Spine,全网带宽就涨一份。

核心原则:Spine-Leaf是一个无阻塞的Clos网络。只要Leaf的上行带宽总和 ≥ 下行带宽总和,理论上就不会丢包。

我在项目中遇到过一家客户,他们原来的核心交换机撑不住了,业务一扩容就丢包。换成Spine-Leaf后,加了4台Spine,问题直接解决。嗯,这里要注意:Spine和Leaf之间必须跑ECMP(等价多路径),否则流量会哈希不均。

2.2 Underlay网络:物理层的“高速公路”

Underlay,就是Spine和Leaf之间跑的那个底层网络。它负责把物理链路打通,让所有Leaf之间能互相通信。

我个人建议Underlay用BGP或者OSPF。为什么?因为Spine-Leaf的拓扑是标准的“等腰三角形”,BGP的灵活性最好。我习惯用EBGP,每个Leaf用一个独立的AS号,Spine用另一个AS号。这样路由控制非常精细。

Underlay的核心任务就两个:

  1. 发现邻居:Leaf和Spine之间建立路由邻居。
  2. 发布Loopback地址:每个Leaf都有一个Loopback接口,作为Overlay隧道的源地址。

避坑指南:我曾经在Underlay里用了OSPF,结果因为链路震荡导致全网路由重算。后来全部改成BGP,配合BGP的收敛优化,稳定多了。如果你对延迟敏感,建议用BGP + BFD(双向转发检测),秒级切换。

2.3 Overlay网络:虚拟化的“隧道世界”

Underlay打通了物理链路,但虚拟机迁移、多租户隔离这些需求,Underlay搞不定。这时候就需要Overlay。

Overlay的本质,就是在Underlay之上再建一层虚拟网络。数据包外面再套一层包头,让虚拟机的流量在物理网络里“隐身”传输。最常用的技术就是VXLAN。

你想想看,传统VLAN只有4096个,数据中心里租户一多根本不够用。VXLAN用24位的VNI(VXLAN Network Identifier),支持1600万个网络。这才是真正的多租户隔离。

2.4 Fabric中的VXLAN技术:怎么封装的?

VXLAN的封装过程,我画个图你就明白了。

VXLAN封装与解封装流程 VXLAN封装与解封装流程 原始数据包 VXLAN封装 VNI + 外层UDP/IP 外层数据包 解封装 → 原始数据包 关键字段说明: • VNI(VXLAN Network Identifier):24位,标识虚拟网络 • 外层UDP目的端口:4789(标准VXLAN) • 外层IP:Leaf的Loopback地址(VTEP地址) • 内层MAC:虚拟机MAC地址

流程很简单:

  1. 虚拟机发出原始数据包(内层MAC + 内层IP)。
  2. Leaf交换机(VTEP,VXLAN Tunnel End Point)收到后,加上VXLAN头(包含VNI),再套上UDP头和外部IP头(源IP是本地Loopback,目的IP是远端Leaf的Loopback)。
  3. 物理网络(Underlay)只认外层IP,把包送到远端Leaf。
  4. 远端Leaf剥掉外层头,取出原始数据包,发给目标虚拟机。

注意:VXLAN的MTU问题。因为多了一层50字节的头(VXLAN 8 + UDP 8 + 外部IP 20 + 外部MAC 14),物理网络MTU必须设置成≥1550(标准1500 + 50)。否则包会被分片,性能暴跌。我建议直接设成1600或9216(如果支持Jumbo Frame)。

2.5 控制平面:怎么知道对端在哪?

VXLAN有两种控制平面模式:

模式 原理 适用场景
多播(传统) Underlay开启多播,VTEP通过IGMP加入组播组,自动发现对端 小规模网络,但多播配置复杂,不推荐
BGP EVPN(现代) 通过BGP扩展(EVPN)通告MAC/VNI/RT等信息 大规模、多租户、自动化部署

我个人强烈推荐BGP EVPN。为什么?因为多播模式在数据中心里很难排错,而且多播流量本身会占用带宽。BGP EVPN用路由协议来同步MAC地址和VNI映射,每个VTEP只需要和Spine建立BGP邻居,就能知道全网所有虚拟机的位置。

我记得有一次帮客户排查一个跨机房VXLAN不通的问题。他们用的多播模式,结果核心交换机上的IGMP Snooping配置错了,导致组播流量被丢弃。换成BGP EVPN后,问题再没出现过。

2.6 本章小结:一张图看懂Fabric网络架构

最后,我用一张SVG图把Spine-Leaf、Underlay、Overlay、VXLAN的关系串起来。

Fabric网络架构全景图 Fabric网络架构全景图 Spine层(脊干交换机) Leaf-1 (VTEP) Leaf-2 (VTEP) Leaf-3 (VTEP) 服务器A (VM1) 服务器B (VM2) 服务器C (VM3) 架构层次说明: • Underlay:Spine ↔ Leaf之间的物理链路(BGP/OSPF) • Overlay:Leaf之间建立的VXLAN隧道(VNI隔离租户) • 控制平面:BGP EVPN通告MAC/VNI映射 • 数据平面:VXLAN封装/解封装,通过Underlay转发

这张图把今天讲的内容全串起来了。Spine-Leaf是物理骨架,Underlay是底层路由,Overlay是VXLAN隧道。三者缺一不可。

嗯,这一章的内容就到这。记住:Spine-Leaf解决的是物理拓扑问题,Underlay解决的是连通性问题,Overlay解决的是虚拟化和隔离问题。VXLAN是Overlay的核心实现,而BGP EVPN是控制平面的最佳选择。后面几章,我们会基于这个架构,一步步实现多租户隔离和跨网融合。