传统的三层网络架构一般分为接入层,汇聚层和核心层.
汇聚层和接入层之间是二层连接,使用生成树协议来阻塞冗余链路,避免二层环路.
汇聚层和核心层之间一般采用三层连接,使用动态路由协议,在多个冗余路径间进行负载均衡.
整个网络带宽有比较大的收敛比.
传统的三层网络架构设计初衷适用于东西流量、南北流量相对均衡的流量环境.
但近年来,随着企业三层软件架构、计算机虚拟化、私有云技术的成熟和广泛采用,数据中心的流量发生了很大的变化.
现代数据中心中东西向的网络流量将会远大于南北向的流量.
现代数据中心的流行架构是基于CLOS架构发展起来的,它诞生于1952年,是由 CharlesClos 提出的.
这个架构主要描述了一种多级交换网络的结构.
CLOS最大的优点就是对Crossbar结构的改进,通过Clos架构可以提供无阻塞的网络.
2008年,FatTree拓扑结构是由MIT的Fares等人在改进传统树形结构性能的基础上提出.
整个拓扑网络分为三个层次:自上而下分别为边缘层(edge)、汇聚层(aggregate)和核心层(core),其中汇聚层交换机与边缘层交换机构成一个pod,交换设备均采用商用交换设备.
FatTree结构通过在核心层多条链路实现负载的及时处理,避免网络热点;通过在pod内合理分流,避免过载问题.
FatTree对分带宽随着网络规模的扩展而增大,因此能够为数据中心提供高吞吐传输服务;
不同pod之间的服务器间通信,源、目的节点之间具有多条并行路径,因此网络的容错性能良好,一般不会出现单点故障;
采用商用设备取代高性能交换设备,大幅度降低网络设备开销;
网络直径小,能够保证视频、在线会与等服务对网络实时性的要求;
拓扑结构规则、对称,利于网络布线及自动化配置、优化升级等.
FatTree构建拓扑规则如下:FatTree拓扑中包含的Pod数目为 k,每一个pod连接的sever数目为(k/2)2,
每一个pod内的边缘交换机及聚合交换机数量均为k/2,核心交换机数量为(K/2)^2,
网络中每一个交换机的端口数量为k,网络所能支持的服务器总数为K^3/4.
FatTree结构采用水平扩展的方式,当拓扑中所包含的pod数目增加,交换机的端口数目增加时,
FatTree能够支持更多的服务器,满足数据中心的扩展需求,如k=48 时, FatTree能够支持的服务器数目为27648.
FatTree拓扑和传统拓扑组建网络时的成本差异.
现在数据中心网络一般多采用“leaf-spine架构”,也称为分布式核心网络,它及基于以上介绍的两种技术演变而来.
如上图核心节点包括两种:第一种leaf叶节点负责连接服务器和网络设备;第二种spine针节点连接交换机,
保证节点内的任意两个端口之间提供延迟非常低的无阻塞性能,
从而实现3级CLOS网络.通过一定的端口收敛比/超配比可以满足数万台服务器的线速转发.
现在流量可以分布在所有可用的链接上,不用担心过载问题。
随着更多的连接被接入到Leaf交换设备,我们的链路带宽收敛比将增加,
可以通过增加Spine和Leaf设备间的链路带宽降低链路收敛比.
除了支持Overlay层面技术之外,Spine+Leaf网络架构的另一个好处就是,它提供了更为可靠的组网连接,
因为Spine层面与Leaf层面是全交叉连接,任一层中的单交换机故障都不会影响整个网络结构.
因此,任一层中的一个交换机的故障都不会使整个结构失效.
FACEBOOK 数据中心的网络架构,可以很容易的进行横向和纵向流量带宽扩展,可以同时接入海量的服务器,并进行无阻塞线速转发.
CLOS架构的物理网络提供了足够可用的物理通信带宽,但如何更加高效智能的对这些资源进行利用,
这就必须借助于下一代网络—软件定义网络.
SDN的三个主要特征:
1 转控分离:网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上.
2 集中控制:设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器进行配置即可.
3 开放接口:第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可.
总的来说,随着现代数据中心里虚拟化技术和软件三层架构的广泛采用,数据中心内部的流量已经和过去发生了很大的变化,
数据中心的东西流量预测会达到80%,所以我们要思考如何对数据中心网络架构进行演进,
适应现在的流量模型,提供更大的东西带宽和最低的延迟,同时我们也要思考下一次软件定义网络所具备的特征,
包括控制层面和数据转发层面时的分流,分布式处理,应用流量的自动感知及策略的自动部署,设备的自动化提供及运维等.