数据中心网络即数据中心的网络架构。
一、数据中心网络架构设计原则
网络是数据中心的最重要组成部分,主要由大量的二层接入设备和少量的三层设备组成的网络结构。以前,数据中心的网络规模普遍不大,网络通过数十台设备简单互连就可达到互联互通的目的。而现在,数据中心对网络的要求越来越高,为了满足各种应用,网络架构也需要及时调整,网络架构经历了多种多样的变化。在一个数据中心建设过程中,网络架构是重要部分,架构设计的好坏直接决定了数据中心数据转发效率和可靠性。
(1)可扩展性 为适应业务的发展、需求的变化、先进技术的应用,数据中心网络必须具备足够的可扩展来满足发展的需要。如采用合理的模块化设计,尽量采用端口密度高的网络设备、尽量在网络各层上具备三层路由功能,使得整个数据中心网络具有极强的路由扩展能力。功能的可扩展性是数据中心网络随着发展提供增值业务的基础。
(2)可用性 包括网络设备和网络本身的冗余。关键设备均采用电信级全冗余设计,采用冗余网络设计,每个层次均采用双机方式,层次与层次之间采用全冗余连接。提供多种冗余技术,在不同层次可提供增值冗余设计。
(3)灵活性 灵活的目的是实现可根据数据中心不同用户的需求进行定制,网络/设备能够灵活提供各种常用网络接口、能够根据不同需求对网络模块进行合理搭配。
(4)安全性 安全性是数据中心的用户最为关注的问题,也是数据中心建设的关键,它包括物理空间的安全控制及网络的安全控制。
二、网络架构和网络接入
传统网络架构
在传统的大型数据中心,网络通常是三层结构。Cisco称之为:分级的互连网络模型(hierarchical inter-networking model)。这个模型包含了以下三层:
Access Layer(接入层):在局域网中,接入层提供终端设备接入网络的功能;在广域网中,它可能还提供远程办公( teleworker)或远程 site 通过 WAN 访问公司网络的功能。
Distribution Layer(分发层):分发层对接入层的包进行聚合(aggregate),然后送到核心层进行路由。分发层是 L2 网络(交换)和 L3 网络(路由)的边界。
Core Layer(核心层):核心层也称作网络骨干(network backbone),由高速网络设备组成。核心层设计用来尽可能快地转发包,以及互联多个网络模块 ,例如分发模块、服务模块、数据中心,以及 WAN 边缘。
基于clos的网络架构
Clos架构模型在上世纪50年代就已经被理论提出,以应对爆炸式的网络增长。图1显示了最简单的Clos模型。其中,方框节点代表交换机,灰色节点代表服务器。在方框节点中,顶部是Spine节点,下部是Leaf节点。Spine节点与Leaf节点相互连接,每片Leaf都连接到每个Spine节点,反之亦然。此外,Leaf节点下连服务器,为服务器提供网络接入服务。
在Clos架构中,Spine节点角色通常负责同子网内的高速IP转发,并不进行解封包,因此带来快速的连接。服务器通常距离任何其他服务器只有三跳,网络质量容易保证,其中核心spine网络构成的大二层通过vxlan隧道实际上构成overlay网络只消耗了一跳。 每一个Spine和Leaf节点都有线路连接,其中一条或者多条链路故障对整个网络对影响不大。所有服务器直接与Leaf交换机直接相连,Spine只是作为连接器来完善服务器之间的连接。
想要对该模型架构进行扩容,通常有两个方法。一个是增加Leaf和Spine节点的数量、更换更好的设备以及接口转发速率,但是这种方式很容易受到每个交换机接口数量,投入成本以及转发效率的限制。还有一种方式则是增加Clos网络的层级,例如从二层Clos网络转变为三层Clos网络架构。
这从根本上展示了Clos网络的美妙之处:就像分形设计一样,更大块都是从本质上相同的积木组装而成的,每一个积木并不需要有超强的转发能力。甚至我们可以将网络层级扩大到四级或者更多,以绕过较小构建块的规模限制。
通过扩大层级的方式,我们使用固定的,相对廉价的交换机就能过建成规模庞大的网络。同时受益于每一层级间丰富的互联的链路,及时链路乃至设备出现故障,所损书的带宽依然在可控范围内,并且所影响的服务器不多(传统网络中通常两台设备做备份,其中一台出现故障,带宽直接减少百分之50)。最后,由于交换机以模块化的形式部署,我们只需要选择几类不同型号的即可,方便管理和排错。
服务器接入模型
大型企业的数据中心拥有丰富的服务器,因此因网络工作故障而损失整个机架无关紧要。然而,在许多较小的网络中,由于失去一个Tor会导致整个机架的服务器无法使用,并且无法承担该后果。因此,它们双连接服务器,每个链接都连接到不同的ToR,并且这两个ToR都位于同一个机架上。
当服务器双连接时,双链路使用供应商专有协议聚合成单个逻辑链路,Cisco称其为虚拟端口通道(vPC),Arista称其为多机箱链路聚合协议(MLAG)等等。从协议的角度来看,连接到服务器的两个交换机提供了一种错觉,即它们是单个交换机。此外,两台Tor之间还需要通过标准的链路聚合控制协议(LACP)协议捆绑链路,以提高互联接的可靠性。下图显示了带有MLAG的双连接服务器架构。
子网接入外部网络
Clos网络访问外部网络通常有两种方式,分别是通过Border pod或者Spine。它们的架构图分别如下图所示:
- 通过 border pod 访问外网。
- 通过 spine访问外网
这两种模型各有优势。首先是通过Border Pod访问外部网络,这种方式最大的优势就是将内部网络和外部网络进行了分离,内部的路由协议不会和外部进行交互,保证了内部网络的稳定和安全性。但是,如果是在小规模的网络中,通常是没有成本去专门部署Boeder Pod的,因此也可以直接通过Spine实现对外网的访问。需要注意的是,在这个模型中,所有Spine都需要连接到外部网络,以实现流量的负载(ECMP),否则所有流量仅通过少数的Spine访问外网,会照常相应的链路拥塞和设备故障。
三、数据中心网络组网设计
Fabric网络
在服务器虚拟化技术广泛应用的前提下,服务器在迁移时,为了保证迁移时业务不中断,就要求不仅虚拟机的IP地址不变,而且虚拟机的运行状态也必须保持原状(例如TCP会话状态),所以虚拟机的动态迁移只能在同一个二层域中进行,而不能跨二层域迁移,采样才能保证IP漂移和低延迟。
M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制,将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到了设备级。对二层来讲,可将M-LAG理解为一种横向虚拟化技术,将M-LAG的两台设备在逻辑上虚拟成一台设备,形成一个统一的二层逻辑节点。M-LAG提供了一个没有环路的二层拓扑同时实现冗余备份,不再需要繁琐的生成树协议配置,极大的简化了组网及配置。这种设计相对传统的xSTP破环保护,逻辑拓扑更加清晰、链路利用更加高效。
fabric网络即扁平网络,同网乃至跨网构成一个大二层网络。
Overlay网络
Overlay在网络技术领域,指的是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离,并且以基于IP的基础网络技术为主。其实这种模式是以对传统技术的优化而形成的。
针对VLAN数量4000以内的限制,在Overlay技术中引入了类似12比特VLAN ID的用户标识,支持千万级以上的用户标识,并且在Overlay中沿袭了云计算"租户"的概念,称之为Tenant ID(租户标识),用24或64比特表示。针对VLAN技术下网络的TRUANK ALL(VLAN穿透所有设备)的问题,Overlay对网络的VLAN配置无要求,可以避免网络本身的无效流量带宽浪费,同时Overlay的二层连通基于虚机业务需求创建,在云的环境中全局可控。
Spine+Leaf 网络
Spine+Leaf两层设备的扁平化网络架构来源于CLOS网络,CLOS网络以贝尔实验室的研究人员Charles Clos命名,他在1952年提出了这个模型,作为克服电话网络中使用的机电开关的性能和成本相关挑战的一种方法。Clos用数学理论来证明,如果交换机按层次结构组织,在交换阵列(现在称为结构)中实现非阻塞性能是可行的,主要是通过组网来形成非常大规模的网络结构,本质是希望无阻塞。在此之前,要实现"无阻塞的架构",只能采用NxN的Cross-bar方式。接入连接的数量仍然等于折叠后的三层CLOS网络架构的Spine与Leaf之间的连接数,流量可以分布在所有可用的链接上,不用担心过载问题。随着更多的连接被接入到Leaf交换设备,我们的链路带宽收敛比将增加,可以通过增加Spine和Leaf设备间的链路带宽降低链路收敛比。
Spine+Leaf网络架构的另一个好处就是,它提供了更为可靠的组网连接,因为Spine层面与Leaf层面是全交叉连接,任一层中的单交换机故障都不会影响整个网络结构。因此,任一层中的一个交换机的故障都不会使整个结构失效。
BGP EVPN
EVPN是基于BGP协议的技术,需要部署在网络交换机上。这意味着网络交换机需要作为VTEP节点,进行VXLAN封装。服务器通过接口或VLAN接入网络交换机。这些接口或VLAN会映射到对应的广播域BD,同时BD也会绑定一个EVPN实例,通过EVPN实例间路由的传递实现VXLAN隧道的建立、MAC学习。通过BGP EVPN在两个数据中心内部各建立一段VXLAN隧道,数据中心之间再建立一段VXLAN隧道,可以实现数据中心互联。
四、数据中心网络架构
facebook数据中心
F4架构
Facebook从14年开始对自己原有的数据中心网络架构进行改造,原因就在于面对网络流量2-4倍的未来扩张,现有的三层网络架构难以胜任。因此,Facebook提出了自己的下一代数据中心网络------data center fabric网络架构(也称为F4网络),在原始叶脊网络基础上进行模块化组网,能够承载数据中心内部的大量东西流量的转发,并且保证了足够的扩展性。
F16架构
目前Facebook已经演进到F16架构,将Spine平面增加为16个。单芯片处理能力提升为12.8TBps, 使得Spine交换机由原来的BackPack更新为MiniPark架构,不仅体积更小,所要通过的路径仅需跨越5个芯片。
如上图:
- edge sw 对应 border leaf
- rack sw 相当于 tor 接入
google数据中心
2015年,谷歌在SIGCOMM会议上发表论文《Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network》,详细地阐述了谷歌过去多年在数据中心网络的创新和演进。
其中第五代的架构叫做Jupiter Network Fabrics,可以视为一个三层Clos。leaf交换机还是作为ToR,向北连接到叫做 Middle Block的spine交换机。Middle Block和ToR组成一个集群(相当于Facebook的Server Pod,内部是一个二层Clos)叫做Aggregation Block Superblock。MiddleBlock向北还有一层super spine也就是Spine Block。
super spine的数量可以一直增长,加入更多super spine交换机。但是每个新加入的super spine都要和原有的Pod全互联。从Pod的角度看,每加入一个super spine,Pod就要额外增加连接。为了解决这个问题,Google在spine 层和Pod层之间加入了Apollo Fabric。Apollo结构解除了spineblock和superblock的直连,但又能够动态地调整spineblock和superblock的连接关系,高效实现了全互联,并且能够动态地调整网络流量的分布。
参考: