叶脊网络架构英文叫Spine-leaf architecture,如下图所示:
Spine+Leaf两层设备的扁平化网络架构来源于CLOS网络,CLOS网络以贝尔实验室的研究人员Charles Clos命名,他在1952年提出了这个模型,作为克服电话网络中使用的机电开关的性能和成本相关挑战的一种方法。Clos用数学理论来证明,如果交换机按层次结构组织,在交换阵列(现在称为结构)中实现非阻塞性能是可行的,主要是通过组网来形成非常大规模的网络结构,本质是希望无阻塞。在此之前,要实现“无阻塞的架构”,只能采用 NxN 的 Cross-bar 方式。
多年以来数据中心一直采用三层网络架构进行网络部署,一个典型的企业分层局域网(hierarchical LAN)包括三层:
- 接入层:提供工作组/用户接入网络的功能
- 汇聚层:提供基于策略的连接功能,控制接入层和核心层的边界
- 核心层:提供汇聚层交换机之间的高速传输
随着虚拟化技术的发展,节点虚机vm的数量增多,应用的部署方式越来越分布式,东西向流量( east-west-traffic)越来越大。这些流量需要被高效地处理,并且还要保证低的、可预测的延迟。而虚机互访需要通过层层的上行口,因此三层数据中心架构中的带宽成为了瓶颈。 三层架构的另一个问题是服务器到服务器延迟(server-to-server latency)随着流量路 径的不同而不同。
由于传统三层网络架构存在的问题,在2008年一篇文章A scalable, commodity data center network architecture,提出将Clos架构应用在网络架构中。2014年,在Juniper的白皮书中,也提到了Clos架构。
事实已经证明,基于 Clos 网络的 Spine-and-Leaf 架构(Clos network-based Spine-and-Leaf architecture)架构可以提供高带宽、低延迟、非阻塞的服务器到服务器连接。
叶脊架构主要有两个特点:
- 减少层级
由三层变二层,这样就减少了跨交换机时的数据转发次数,有利于降低延迟 - full mesh结构
也就是全互联结构,每个spine都与所有leaf相连接,leaf之前的数据连接要经过spine,但具体经过哪个spine是按负载均衡策略选择的(ECMP协议),等于所有spine的带宽是共享的,这样提高了带宽也提高了可靠性(一条线路或spine损坏不影响通信)。扩容也方便,只要加入新的spine交换机即可。 - 工作在第三层
spine和leaf都是三层交换机工作在第三层,交换机之前通过ECMP协议负载均衡
为了解决数据中心的另一个问题,即服务器/虚拟机的任意位置迁移,传统的解决方法是大二层网络,汇聚层和接入层交换机都工作在二层模式,但这样广播域太大,MAC地址表也太大,网络容易出现各种问题。新的解决方法是Overlay网络,在overlay模式下所有交换要工作在三层,都有IP地址,这样隔离了广播域。在后在这个spine-leaf架构的三层网络上再建一个大型虚拟二层局域网,就是overlay网络。目前数据中心主要使用VxLAN实现overlay网络。
中国电信提出的实现固移融合的新型城域网就借鉴了数据中心采用的叶脊网络架构和overlay网络,不过城域网中是用SRv6 over EVPN实现的overlay网络,比VxLAN更复杂一些。
数据中心里还有一项技术是网络虚拟化,其实就是NFV(只不过IT领域不常用NFV这个叫法,NFV主要是电信行业在叫)。比如VMware的网络虚拟化平台NSX,OpenStack Neutron。