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的核心任务就两个:
- 发现邻居:Leaf和Spine之间建立路由邻居。
- 发布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的封装过程,我画个图你就明白了。
流程很简单:
- 虚拟机发出原始数据包(内层MAC + 内层IP)。
- Leaf交换机(VTEP,VXLAN Tunnel End Point)收到后,加上VXLAN头(包含VNI),再套上UDP头和外部IP头(源IP是本地Loopback,目的IP是远端Leaf的Loopback)。
- 物理网络(Underlay)只认外层IP,把包送到远端Leaf。
- 远端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的关系串起来。
这张图把今天讲的内容全串起来了。Spine-Leaf是物理骨架,Underlay是底层路由,Overlay是VXLAN隧道。三者缺一不可。
嗯,这一章的内容就到这。记住:Spine-Leaf解决的是物理拓扑问题,Underlay解决的是连通性问题,Overlay解决的是虚拟化和隔离问题。VXLAN是Overlay的核心实现,而BGP EVPN是控制平面的最佳选择。后面几章,我们会基于这个架构,一步步实现多租户隔离和跨网融合。