目录
前文列表
《数据中心网络架构的问题与演进 — 传统路由交换技术与三层网络架构》
《数据中心网络架构的问题与演进 — 网络虚拟化》
《数据中心网络架构的问题与演进 — CLOS 网络与 Fat-Tree、Spine-Leaf 架构》
数据中心网络架构演进回顾
传统的数据中心使用三层架构(Three-tier Architecture),根据物理位置将服务器划分为不同 POD。这种架构由核心交换机、汇聚交换机和接入交换机组成。在汇聚交换机和接入交换机之间运行生成树协议(Spanning Tree Protocol,STP)以保证网络的二层部分(L2)没有环路。三层架构中,每个 POD 内的服务器都属于同一个 VLAN, 因此服务器无需修改 IP 地址和网关就可以在 POD 内部任意迁移位置。POD 内走二层广播,POD 间走三层路由,所以横向流量路径会很长(接入→汇聚→核心→汇聚→接入)而导致高时延。STP 有许多好处:简单,即插即用(plug-and-play,P&P),只需很少配置。但是,STP 无法使用并行转发路径(Parallel Forwarding Path),所以它永远会禁用 VLAN 内的冗余路径,这意味着在未发生故障时,最大链路带宽的 50% 会被 Block(阻塞)掉。
2010 年,Cisco 提出了 vPC(Virtual Port Channel,虚拟链路聚合)技术来解决 STP 的限制。 vPC 解放了被 STP 禁用的端口,提供接入交换机到汇聚交换机之间的 Active-Active 上行链路,充分利用可用的带宽。使用 vPC 技术时,STP 会作为备用机制(Fail-safe Mechanism)。虚拟机、容器等技术的发展,使得应用的部署方式越来越分布式,导致数据中心内部横向流量(East-West-Traffic)显著提升。这些流量需要被高效地处理,并且还要保证低的、可预测的延迟。然而,vPC 只能提供两个并行上行链路,因此三层数据中心架构中的带宽成为了瓶颈。
随着虚拟化技术的发展,原来三层网络架构的数据中心中基于 POD 的二层设计,已经无法满足虚拟化、云计算大规模的二层扩展需求,例如:vMotion 等 Live Migration 技术要求 L2 越大越好。所以在二层以 POD 形式做了隔离的计算、网络和存储资源,现在都应该可以被池化(Pooled,继而催生了从接入层到核心层的大二层域(Larger L2 Domain)。大二层域,即整个数据中心网络都是一个 L2 广播域(L2 Segment 被扩展到所有 POD)。这样,数据中心的管理员可以创建一个集中式的、更加灵活的、能够按需分配的资源池,服务器/虚拟机就可以在任意地点创建,迁移,而不需要修改 IP 地址或默认网关。
大二层网络的缺点是 BUM(Broadcase,Unknown Unicast,Multicast)会在整个数据中心传播,这最终限制了网络的规模。因为网络规模大到一定程度时,BUM 风暴就会严重影响正常的网络通讯。这是数据中心网络发展过程中向网络服务提供商们提出的又一个新的课题,而服务商们交出的答卷就是 Overlay 网络。
Overlay 网络
现代虚拟化数据中心的网络要加速应用部署和支持 DevOps,必须满足特定的前提条件。例如:需要支持扩展转发表、扩展网段、L2 Segment Extension、虚拟设备漂移(Mobility)、转发路径优化、共享物理基础设施上的网络虚拟化和多租户等等。Overlay 网络可以解决以上提到的问题,因此各厂家在今年来陆续推出了多种新的帧封装格式(Encapsulation Frame Format):
- VXLAN
- GRE
- Geneva
- NVGRE: Network Virtualization Using Generic Routing Encapsulation
- TRILL: Transparent Interconnection of Lots of Links
- LISP: Location/Identifier Separation Protocol
Overlay 网络是指在现有的网络(Underlay Network)的基础上再构建的一个虚拟网络。所谓的 Underlay 网络,就是之前的交换机所在的网络,只要是 IP 网络就行。而新构建的 Overlay 网络,用来作为服务器通讯的网络。Overlay 网络是一个 L3 in L2 网络。也就是说,只要 L3 网络能覆盖的地方,那 Overlay 的 L2 网络也能覆盖。
简而言之,Overlay 网络就是是在共享底层网络(Underlay Network)的节点之间互连形成的虚拟网络,这使得在不修改底层网络的情况下,可以部署对网络拓扑有特定要求的应用。
Overlay 网络的优势
优化的设备功能:Overlay 网络使得可以根据设备在网络中的位置不同而对设备进行分类(和定制)。Edge 或 Leaf 设备可以根据终端状态信息和规模优化它的功能和相关的协议;Core 或 Spine 设备可以根据链路状态优化它的功能和协议,以及针对快速收敛进行优化。
Fabric 的扩展性和灵活性:Overlay 网络使得可以在 Overlay 边界设备上进行网络的扩展。当在 Fabric 边界使用 Overlay 时,Spine 或 Core 设备就无需向自己的转发表中添加终端主机的信息(e.g. 如果在宿主机内进行 Overlay 的封装和解封装,那 Overlay 边界就是在宿主机内部)。
可重叠的 IP 地址:数据中心中使用的大部分 Overlay 技术都支持虚拟网络 ID(VID,),用来唯 一地对每个私有网络进行范围限定和识别(scope and identify)。这种限定使得不同租 户的 MAC 和 IP 地址可以重叠(overlapping)。overlay 的封装使得租户地址空间和 underlay 地址空间的管理分开。
基于 VxLAN Overlay 的 Spine-Leaf 网络架构
基于 VxLAN 的 Overlay 网络在 L3 IP Underlay 网络之上构建了一层 L2 Overlay 网络,通过 VTEP 隧道机制传输 L2 包。例如下图中,原有的交换机网络不变,服务器之间通过 Overlay 网络实现了跨 Leaf 交换机的 L2 网络。这样,在 Overlay 网络中,服务器可以任意部署,而不用考虑现有网络的架构。
-
单纯的 Spine-Leaf
-
基于 VxLAN Overlay 的 Spine-Leaf
一个完整的, 基于 VxLAN Overlay 的 Spine-Leaf 网络架构如下图所示。这种网络架构称为 VxLAN Fabric,通常有两种实现方式:一种是基于 Flood-Learn 的模式,与传统的 L2 网络类似;另一种是基于 MP-BGP EVPN 作为控制层。在该架构中的 VM 并不知道 VxLAN Overlay 的存在,VM 只是把 Ethernet Frame 发出来。待 Leaf 交换机上的 VTEP(VxLAN Overlay,需要在 Leaf 交换机上集成 VTEP)接收到 VM 的 Ethernet Frame 后,就会自动的将其封装成 VxLAN 数据包(本质是一个 UDP 包),然后在原有的 Spine-Leaf 的 Underlay 网络上进行 L3 传输。基于 VxLAN Overlay 的 Spine-Leaf 网络架构就是通过这种方式来打破了大二层网络的限制,即将 L2 广播域限制在了 Underlay 上(Leaf 节点),又将 POD 扩展到了整个 Overlay。
关于 VxLAN 技术的实现原理在《Networking 基本术语/概念》一文中已有记录,这里不再赘述。
参考文章
https://arthurchiao.github.io/blog/spine-leaf-design-zh/
https://zhuanlan.zhihu.com/p/30119950