【Calico系列】4 数据中心网络简述

本文是 Calico 系列的第四篇文章,上一篇了解了 calico 的组件、架构与原理,这篇学习数据中心的网络设计。本篇的内容为血衫学习文末参考资料后的笔记。

由于网络的水深与个人能力有限,本文不免存在错误之处。如有疑问,请查阅文末参考资料或与我线上/线下讨论。

一、分层网络设计

思科的分层(三层)互连网络模型(hierarchical internetworking model)是工业界设计可靠、可扩展、高性价比的互连网络时广泛采用的模型。

讨论网络设计时,通常根据设备数量将网络分成几类:

  • 小型网络:支持最多 200 个设备
  • 中型网络:支持 200 ~ 1000 个设备
  • 大型网络:支持 1000+ 设备

网络设计随规模和公司需求的不同而不同。例如,小公司的设备数量比较少,因此网络基础 设施就无需像大公司设计的那么复杂。

思科分层网络模型中的三个层:接入层、汇聚层、核心层。

早期网络

早期的网络都是扁平拓扑(flat topology):

img

当更多的设备需要接入网络时,就添加集线器(hub)和交换机(switch)。扁平网络设计 的缺点是很难控制广播流量,或者对特定流量进行过滤。当网络中的设备越来越多时, 响应时间也会越来越慢,最终使得网络不可用。

因此,我们需要一个更好的方案。现在,大部分公司都使用下图所示的分层网络方案:

img

将扁平网络划分成更小、更易管理的组成部分的好处是可以将本地流量限制在本地( local traffic remains local)。只有目的是其他网络的流量才会被传送到更高的层。

一个典型的企业分层局域网(hierarchical LAN)包括三层:

  • 接入层:提供工作组/用户接入网络的功能
  • 汇聚层:提供基于策略的连接功能,控制接入层和核心层的边界
  • 核心层:提供汇聚层交换机之间的高速传输

另一个三层分层网络设计如下图所示,注意其中的每个 building 都是分层网络模型 ,包括了接入层、汇聚层和核心层。

img

注意:设计网络的物理拓扑并没有绝对的规则。虽然很多网络都是基于三层的物理 设备搭建的,但这并不是强制条件。在小一些的网络中,核心层和汇聚层可能会合并为一层,由同一个物理交换机充当,这样网络就变成了两层。这被称为 collapsed core design(塌缩的核心层设计)。

二、传统三层网络架构

一个标准的传统三层的网络结构如下l两张图所示:

img

基于传统的三层架构,基本都是从园区网络设计中复制而来的。

这种架构由核心路由器汇聚路由器接入交换机组成。

随着虚拟化技术的发展,节点虚机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)架构可以提供高带宽、低延迟、非阻塞的服务器到服务器连接。

三、Spine-Leaf 架构

如下图是一个典型的两级 Spine-and-Leaf 拓扑。

img

在以上两级 Clos 架构中,每个低层级的交换机(leaf)都会连接到每个高层级的交换机 (spine),形成一个 full-mesh 拓扑。leaf 层由接入交换机组成,用于连接服务器等 设备。spine 层是网络的骨干(backbone),负责将所有的 leaf 连接起来。 fabric 中的每个 leaf 都会连接到每个 spine,因此任一层中的单交换机故障都不会影响整个网络结构。

如果某个链路被打满了,扩容过程也很直接:添加一个 spine 交换机就可以扩展每个 leaf 的上行链路,增大了 leaf 和 spine 之间的带宽,缓解了链路被打爆的问题。如果接入层 的端口数量成为了瓶颈,那就直接添加一个新的 leaf,然后将其连接到每个 spine 并做相 应的配置即可。这种易于扩展(ease of expansion)的特性优化了 IT 部门扩展网络的过 程。leaf 层的接入端口和上行链路都没有瓶颈时,这个架构就实现了无阻塞(nonblocking)。

在 Spine-and-Leaf 架构中,任意一个服务器到另一个服务器的连接,都会经过相同数量 的设备(除非这两个服务器在同一 leaf 下面),这保证了延迟是可预测的,因为一个包 只需要经过一个 spine 和另一个 leaf 就可以到达目的端。

三、Overlay 网络

现代虚拟化数据中心的网络要加速应用部署和支持 DevOps,必须满足特定的前提 条件。例如,需要支持扩展转发表、扩展网段、L2 segment extension、虚拟设备漂移(mobility)、转发路径优化、共享物理基础设施上的网络虚拟 化和多租户等等。

虽然 overlay 的概念并不是最近才提出的,但因为它可以解决以上提到的问题,因此近几 年这个概念又火了起来。最近专门针对数据中心提出的新的帧封装格式(encapsulation frame format)更是为这个势头添了一把火。这些格式包括:

  • VXLAN:Virtual Extensible LAN
  • NVGRE: Network Virtualization Using Generic Routing Encapsulation
  • TRILL: Transparent Interconnection of Lots of Links
  • LISP: Location/Identifier Separation Protocol

overlay 网络是共享底层网络(underlay network)的节点之间互连形成的虚拟网络,这使得在不修改底层(underlay)网络的情况下,可以部署对网络拓扑有特定要求的应用:

img

overlay 虚拟化带来的好处包括:

  • 优化的设备功能:overlay 网络使得可以根据设备在网络中的位置不同而对设备进行 分类(和定制)。edge 或 leaf 设备可以根据终端状态信息和规模优化它的功能和相关 的协议;core 或 spine 设备可以根据链路状态优化它的功能和协议,以及针对快速收敛 进行优化。
  • fabric 的扩展性和灵活性:overlay 技术使得可以在 overlay 边界设备上进行网络 的扩展。当在 fabric 边界使用 overlay 时,spine 或 core 设备就无 需向自己的转发表中添加终端主机的信息(例如,如果在宿主机内进行 overlay 的封 装和解封装,那 overlay 边界就是在宿主机内部,译者注)。
  • 可重叠的寻址:数据中心中使用的大部分 overlay 技术都支持虚拟网络 ID,用来唯 一地对每个私有网络进行范围限定和识别(scope and identify)。这种限定使得不同租 户的 MAC 和 IP 地址可以重叠(overlapping)。overlay 的封装使得租户地址空间和 underlay 地址空间的管理分开。

四、IP Fabric

IP Fabric指的是在IP网络基础上建立起来的Overlay隧道技术。如下图,基于胖树的Spine+Leaf拓扑结构的IP Fabric组网图 img

在这种组网方式中,任何两台服务器间的通信不超过3台设备,每个Spine和Leaf节点全互连,可以方便地通过扩展Spine节点来实现网络规模的弹性扩展。只要遍历一定数量的交换机,可以在几乎所有数据中心结构体系中的服务器节点之间传输流量,该架构由多条高带宽的直接路径组成,消除了网络瓶颈带来的潜在传输速度下降,从而实现极高的转发效率和低延迟。

根据不同的业务需要,Spine和Leaf之间可以使用IP路由、VXLAN或TRILL等技术。

五、参考资料


【Calico系列】3 Calico的组件、架构与原理 命运石之门标题一样的中二感十足的命名方式 - 聂渲南