摘要:


        在不久前的Open Network Summit洛杉矶峰会上,阿里云网络资深技术专家程钢博士发表演讲 SDN Practice for Cloud Overlay Network: From Infrastructure to Products。详细介绍了阿里云Overlay的SDN架构的设计与产品化实践。以下是本次演讲的翻译稿,分享给各位网络爱好者。




问题背景:



        阿里云在近两年的发展非常迅速, 年营业额以104%的速度增长, 在2018财年的季度收入已经超过了30亿人民币, 国内市场占有率来到了47.6%, 成为了一个世界领先的公共云服务提供商. 阿里云全球的数据中心建设也囊括了各大洲的主要国家, 能够为全球各地的而用户提供云服务.

的峰值成交量是 32.5万单/秒, 峰值支付量25.6万单/秒, 一天的总销售额是1682亿, 比2017 美国网购节Cyber week一周的总销售额还要高. 在这样的流量压力下, 阿里云网络需要一个可靠, 高效, 弹性, 安全的网络架构来完成当前的任务, 并为未来做好准备.




主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_高可用性



主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_网络层_02


           

           


阿里云网络的架构:


        如下图, 阿里云网络主要由三个层面组成: 底层的物理层及其SDN控制器, Overlay网络层及其SDN控制器, 以及应用层. 其中每个层面都由更细节的模块组成. 阿里云的物理层网络是世界上最大的SDN网络之一, 可以细分为DC 网络, 阿里城域网, 阿里骨干网等组件, 物理层的控制器负责管理物理层网络, 并向Overlay层提供 API, 屏蔽各种物理网络的细节, 在本文中不会对物理网络展开描述; Overlay 网络层则由网关(Gateway), 阿里虚拟交换机(AVS: Alibaba Virtual Switch),  负载均衡器(SLB: Server Load Balance)等本层数据面的网络组件, Overlay 网络层的控制平面以及 Overlay 网络层的管理平面组成. Overlay 网络层控制器负责管理各个网络组件, 向应用层的产品和服务提供统一的API, 并调用物理层的控制器完成网络功能; 应用层则主要是阿里云网络的各大主要产品如CEN和资源管理调度系统(例如伏羲), 它们通过调用Overlay控制器的北向接口实现了阿里云网络的使用和调度.

主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_高可用性_03

           


阿里云 Overlay 网络层的架构, 组件以及挑战


       阿里云网络的 Overlay 层是一个基于 SDN 的网络架构, 可以分为三个平面: 数据平面, 控制平面和管理平面. Overlay 的数据平面主要由各种网络组件组成, 包括 SLB, AVS, Gateway, hybrid Gateway 等组件, 为了提高这些组件的转发性能, 阿里云网络组引入了很多数据面的加速技术, 例如用户态协议栈技术,; Overlay 网络的控制面则由一个层次性的控制器系统组成, 这主要是为了保证控制平面的可拓展性, 在每个主机上, 存在一个主机控制器(host controller), 在每个地区(region), 存在一个区域控制器(region controller), 最后, 还存在一个全局控制器(global controller).  主机控制器负责从区域控制器获取各个数据面的组件的配置方案, 区域控制器则负责本区域的Overlay网络层的管理与调度, 全局控制器则负责协调调度各个region的 overlay 网络资源, 尤其是全局流量的管理与调度; Overlay 网络的管理平面则是一个单独的实体, 负责从Overlay的另外两个平面的日志, 数据库等记录中搜集数据, 以便于现场恢复和异常调试, 也能够通过对数据的分析和学习, 提供网络的自动化管理.


主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_高可用性_04


       下文中是对 Overlay 网络控制面的详细介绍:


Overlay网络的控制面设计:

       为了满足阿里云快速扩张的需求, 满足网络服务的可靠性, 满足自动化的网络管控, Overlay网络层必须保证高可拓展性, 高可用性, 以及智能性, 下文介绍了为了实现这些需求, Overlay网络的架构设计采用的方案.

: 阿里云网络的底层物理网络一直处于迅速扩张的过程中, 因此Overlay 层的架构必须有足够的可扩展性. 而设计需求要求每个region的region controller 能够支持百万级的虚拟机网络(即 VPC), 每个 VPC 能够支持的虚拟机数量是十万级, 这是一个很难达到的目标. 在虚拟机和 VPC 的数量级还不是很大的初期, Overlay网络的控制面可以为直接直接向主机控制器推送配置信息, 但是随着机群规模的迅速增加, Overlay网络的控制面增加了一个缓冲层, 底层的数据面系统可以在缓冲层实现部分网络信息的自学习, 控制面也可以将部分功能下放到缓冲层实现, 进而减少控制面的功能和负载。

主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_高可用性_05

:


主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_网络层_06

        智能管理能力 : 阿里云网络的管理系统能够从底层的物理网络的各个平面, 到 Overlay 网络的各个组成平面搜集所有的日志和信息记录, 并且这都是实时地完成. 因此, 阿里云网络不仅可以及时地发现物理层, Overlay 层的各种异常的出现, 还有望能够在机器学习的帮助下快速地定位到异常的原因,并且如果可以的话,自动作出响应。

主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_网络层_07

        Overlay 网络的组件设计的需求包括以下的方面: AVS 要满足高吞吐能力, 超低延迟, 热升级, 实时迁移等要求, Gateway 要满足高扩展性, 热升级能力, 5百万/秒以上的连接能力, 3千万/秒的包处理能力等要求, 控制平面则要求满足每个 region 百万级的 VPC, 每个 VPC十万级的虚拟机, 3秒内管控十万级路由器的管理能力,

        SDN 可以帮助 Overlay 网络层实现可扩展性, 也易于管理, 易于开发, 进而能够开发高可用性的架构, 能增加智能管理的功能, 提高网络的整体性能.


阿里云应用层的产品


        基于物理层和 Overlay 网络层提供的服务, 阿里云网络提供了很多出色的产品. 下文会介绍其中较有代表性的产品云企业网CEN(Cloud Enterprise Network)。


主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_高可用性_08

CEN:

       随着云服务提供商的服务内容的扩张, 云网络负责的连接实体也在增加, 虽然需要连接的依然是用户网络, 万维网与云网络, 但是对连接的实体的数量, 连接方式和连接质量的需求一直在提高. 对于阿里云网络而言, 最初提供的第一代网络只需要满足云服务到万维网的网络连通性, 但是很快就出现了更高的需求, 因此, 第二代网络, VPC 作为云上的网络实体出现, 为了保证所有网络实体的互联, VPC 之间的高速通道也一并出现. 但是这依然不能满足用户的需求, 因为用户可能有多个网络在使用不同的连接方式接入阿里云的服务, 因此, 阿里云网络通过基于 Overlay 网络的架构, 设计实现了第三代网络, CEN, 提供了当前网络实体的泛联能力, 和对网络的智能管控能力.

        CEN的实现方式也是基于 SDN, 以下图为例, 假设阿里云的用户在多个region都建设有 IDC, 同时基于用户的应用需求, 在各个地区用户都使用了阿里云上的 VPC, 那么很自然地, 用户需要将所有的 IDC 和 VPC 连接起来. 传统方式可能需要几个月的时间来完成, 资金投入也不小. 而完成建设之后, 还要持续地进行维护和运作. 而使用 CEN 就简单了很多. 通过已经与VPC 连通的专线链路, 用户的 IDC 能够直接完成多region所有网络实体的互联, 只需要简单的设置, 就能够快速完成, 同时还能够省去后续的维护和升级投入.

主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_SDN_09

        但是在CEN 的设计实现中, 阿里云网络也面临过很多挑战, 首先, 用户IDC 依然希望通过传统的网络协议接入 CEN 的服务, 这意味着路由信息是基于 BGP 进行交换的, 但是对于CEN 这样一个全球网络而言, 传统的 BGP 协议并不是十分合适的选择. 其次, CEN 的底层 Overlay 网络的数据面组件, 由于其类型与功能不同, 性能, 吞吐量的差距很明显, 例如, SLB 和 Gateway 因为是基于标准服务器的软件实现, 所以允许高可用性地部署, 也允许新特性的快速开发, 但是相比IDC 的标准交换机, 它们的吞吐量是不足的. 因此, 当用户需要高带宽服务时, 即使边缘交换机允许提供给用户这样的服务, SLB 或者 Gateway 的压力也会过大. 最后, 作为连接所有网络实体的 CEN, 其高可用性必须得到保证.

CEN 的架构:

主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_高可用性_10

        CEN控制面的功能也会随着新技术的应用进行适应性的变化, 例如下图中, 阿里云网络提高Overlay 网络层的数据面组件的网络性能同时, CEN的控制器系统就能够下放一部分控制功能到底层控制器, 通过控制器实现小范围内的路径优化和性能提高.



主机overlay和网络overlay混合overlay网络有啥区别 overlay和sdn_SDN_11

 

全文总结:


       阿里云的 Overlay 网络层基于 SDN 技术, 明显地提高了可扩展性和高可用性, 同时能够支持网络技术的快速迭代, 引入了网络的自治能力. 同时也能够包容多种技术和产品, 在租户隔离, 抗恶意攻击方面, Overlay 网络也能够进行支持.