前言 云网络(也称作SDN)是实现公有云环境下多租户隔离的关键技术手段,而云网络网关(也称作SDN网关)作为云网络系统的关键转发网元,在云网络系统中扮演着至关重要的角色(注:在本技术白皮书中,“SDN”和“云网络”是可以相互替换的术语)。本技术白皮书对当前业界主流的云网络网关技术路线进行了较为全面、客观的优劣势分析,并结合对云网络网关相关技术的现状和趋势的研判,提出了将有状态网关和无状态网关解藕并分别采取不同技术路线实现高性能网关的技术思路。该技术思路不仅符合开放网络的理念,同时也顺应极简网络的潮流。目前移动云正携手合作伙伴推动上述技术路线的落地部署。通过该技术白皮书的技术分享,希望在业界形成更广泛的共识,共同推动云网络朝着更加开放的极简网络的方向演进。 编写单位和人员 中国移动:姚军,王燕,徐小虎,徐硕,俞文俊,谭跃辉,李维亮,徐璐,金鹏程,主要负责技术白皮书整体章节的构思以及第一章、第二章以及4.1章节的编写以及所有章节的修订。 北京邮电大学:潘恬,主要负责第二章的编写 英特尔:陈志华,主要负责3.1和4.2章节的编写 博通:张玺,何宗应,王娜,曲延光,主要负责3.2章节的编写 锐捷:吴航,邹赛虎,章建钦,主要负责4.3章节的编写 新华三:王雪,主要负责4.3章节的编写 目录 第1章云网络网关功能定位及分类1 1.1无状态网关1 1.2有状态网关2 第2章当前云网络网关主要技术路线3 2.1NFV形态网关技术路线3 2.2超融合硬件形态云网络网关技术路线7 第3章云网络网关相关技术现状和趋势11 3.1DPU/IPU11 3.2新一代可编程网络芯片14 3.2.1基于流水线逻辑的可编程15 3.2.2基于表项资源的可编程18 3.2.3基于队列调度的可编程20 3.2.4基于加速引擎的模块化设计21 3.2.5更加友好的可编程软件22 第4章开放云网络高性能网关技术路线26 4.1有状态网关和无状态网关解藕26 4.2有状态网关的技术路线27 4.3无状态网关的技术路线30 缩略语列表36 第1章云网络网关功能定位及分类 云网络(也称作SDN)是实现公有云环境下多租户隔离的关键技术手段,而云网络网关(也称作SDN网关)作为云网络系统的关键网元,在云网络系统中扮演着至关重要的角色,如实现租户流量集中转发控制(比如跨VPC的互访)和复杂业务处理逻辑(比如网络地址翻译即NAT和服务器负载均衡即SLB)。 按照是否需要维护租户流量的会话状态(比如TCP/UDP会话),可以将云网络网关分为无状态网关和有状态网关两类。顾名思义,无状态网关无需维护会话状态,而有状态网关则需维护会话状态。 1.1无状态网关 无状态网关通常只需要维护路由转发表和静态的地址映射表。VPC网关(以下简称VGW)和互联网网关(以下简称IGW)是典型的无状态网关。VGW主要维护VPC路由信息,IGW除了维护VPC路由之外,通常还需要维护VPC私网地址和公网地址的1:1NAT映射表和功能用于1:1NAT功能。IGW的1:1NAT功能有别于下文中提到的NAT网关的功能,1:1NAT主要完成VPC地址到公网地址的1:1翻译,1:1NAT映射条目在租户购买公网IP地址之后就通过 SDN集中控制器配置生成并下发到IGW,而不是由途径IGW的TCP/UDP等流量触发创建,因此,IGW的1:1NAT条目数量取决于IGW所在的云数据中心对外已售卖的EIP地址数量,而与会话数量无关。 1.2有状态网关 有状态网关除了需要维护少量条目的路由转发表之外,需要动态创建并维护由途径的TCP/UDP等流量触发的会话连接表条目。NAT网关和SLB网关是典型的有状态网关。NAT网关主要完成VPC内主机主动访问互联网所需要的n:1SNAT功能,即源地址翻译功能,由于某个VPC内的多个VPC私有地址会复用一个关联到NAT网关的公网地址或NAT网关的私网地址(注:该私网地址将在IGW上完成1:1NAT,将该私网地址转化为公网地址)对外通信,NAT网关需要维护TCP/UDP会话连接状态来实现多种用途,比如保证一个内部主机主动发起的任意一个TCP/UDP会话的所有数据包在经过NAT网关时,源地址和源端口翻译之后的源地址和源端口始终保持不变。SLB网关主要完成四层负载均衡能力,不论是采用FullNAT模式,DR模式还是DSR模式,SLB网关都需要跟踪维护会话连接状态信息,以保证同一TCP/UDP会话的流量始终被负载分担到服务器集群中某个固定的真实服务器RealServer或L7负载均衡服务器 (比如Ngnix服务器)。 此外,VPN网关也属于有状态网关,因为其需要与对端VPN设备(如VPN客户端)建立和维护IPsec或SSL会话连接。 第2章当前云网络网关主要技术路线 针对上述提到的云网络网关(包括有状态网关和无状态网关)的技术实现路线,不同云厂商采用的技术路线往往不尽相同,比如,有的完全采用NFV方式实现有状态网关和无状态网关,有的则采用超融合硬件设备来实现有状态网关和无状态网关,有的则采用NFV方式实现有状态网关而采用可编程硬件设备实现无状态网关。 2.1NFV形态网关技术路线 云网络发展早期主要使用厂商硬件设备方案支撑相关网关业务发展,但随着云网络业务的快速发展,上述方案暴露出的问题越来越明显,比如设备的采购成本和维护成本高昂,设备的规格和特性无法快速升级迭代,已经严重制约了云网络的快速和可持续发展。由此,云网络网关开始往NFV网关技术方向演进,相关技术经过多年的发展,目前已经经过了三轮迭代演进,分别是NFV1.0、NFV2.0和NFV3.0。 图2-1NFV1.0方案 基于Linux内核的NFV1.0方案,如图2-1所示。在Linux内核中,基于网络子系统的Netfilter模块,开源组织开发出了用于负载均衡的LVS和用于防火墙、NAT的Iptables。云厂商将这部分功能进行整理和自定义,完成了NFV 1.0的方案。该方案基于开源系统,可以在有新需求的时候进行快速开发迭代,并且该方案运行在x86服务器上,当设备性能和容量不够时可以方便快速地扩容x86服务器集群。NFV1.0方案很好地满足了云网络业务快速开发迭代、快速扩容的需求,但是受限于Linux内核相对复杂冗长的报文处理逻辑,单个NFV网元设备的性能始终无法达到较高水平。 图2-2NFV2.0方案 随着DPDK(DataPlaneDevelopmentKit,数据平面开发套件)技术的出现和不断成熟,业界开始使用DPDK技术开发用户态的网关系统,由此从NFV 1.0进入到NFV2.0阶段。在如图2-2所示的NFV2.0方案下,通过内核旁路、核隔离、独占网卡、内存巨页、网卡多队列和DPDK用户态协议栈等一系列优化技术的使用,单个NFV网元的性能得到了大幅提升,已经可以达到10/25G网卡线速转发能力,相比内核态网关,大约有10倍以上的提升。 图2-3NFV3.0方案 虽然在NFV2.0阶段解决了性能问题,但随着云网络的进一步发展,弹性能力不足、开放性不够等新的问题又开始凸显出来。为进一步解决弹性扩容、支撑第三方网元等问题,业界开始了NFV3.0的演进。NFV3.0方案如图2-3所示。在NFV3.0方案中NFV网元不再部署在物理服务器上,而是使用通用云主机(即虚拟机),这样网元便拥有了普通云主机的极致灵活性,具有极强的弹性伸缩能力,也不再需要适配新的网卡硬件。网元开始被统一的NFV平台纳管调度,这就使得其开放性大幅提高,云上用户自己的第三方网元也可以运行到NFV平台上,被NFV平台调度,提供服务给云上其他租户使用。 基于NFV形态的SDN网元拥有了极致的弹性和开放性,这极大促进了云网络网关的快速发展。然而随着云网络的持续快速发展,在一些场景下开始出现一些NFV方案无法解决的问题,主要体现在以下两方面: 1、无法处理超大单流 NFV通过进行横向弹性扩容来支持大流量的处理,但这种大流量有个前提,即整体流量中流比较均匀且每条流都不能太大。如果流量中出现了一些超大的单流或者HASH分发不均匀,则NFV方案将遇到性能瓶颈,因为NFV方案中网络流量转发依赖于CPU核的软件转发,而单个CPU核的转发能力是存在一个上限的。当单个CPU核上承载的流量超过其上限时将会出现过载丢包,影响大单流的租户和该CPU核上的其他租户。 2、超大规模部署下的高昂成本 NFV的横向弹性扩容将会使得在处理超大带宽时引入超大规模的网元集群。假设某个集群达到了1Tbps的带宽,以单个虚拟网元8Gbps处理能力计算,则需要至少125台虚拟网元,如果考虑冗余容错等其他因素,则需要更多的虚拟网元。这将导致NFV集群的整体拥有成本即TCO变得十分高昂。 2.2超融合硬件形态云网络网关技术路线 近年来,一些云厂商采用了超融合硬件网关来实现高性能SDN网关功能。超融合硬件网关也称作ServerSwitch,其包含了Tofino、x86CPU甚至FPGA等硬件资源,将所有网元包括有状态网关和无状态网关统一在超融合硬件网关内实现。 图2-4融合Tofino、x86、FPGA的硬件设备 当前Tofino芯片的片上内存容量(SRAM、TCAM)相对较小,无法大规模云网络对数以百万计的VPC路由容量需求。为此,需要从多个维度对表项资源的分配使用进行优化:第一个维度是使用多级存储转发架构,用FPGA甚至CPU作为可编程交换机中可编程交换芯片有限片上内存资源的补充,可编程芯片没有流表命中的流量将转到FPGA甚至CPU处理;第二个维度是使用多台可编程交换机实现表项的水平分割;第三个维度是在单台可编程交换机上,使用流水线折叠等技巧压缩表项的存储空间占用(如图2-5所示);第四个维度是基于可编程交换机集群和x86服务器集群的两级转发处理架构,其中流量经过负载均衡器之后首先进入可编程交换机集群进行快速处理,因为可编程交换机交换芯片的片上内存容量有限,没有流表命中的流量将转到x86服务器集群处理。 图2-5基于流水线折叠优化Tofino芯片的存储占用 超融合硬件形态网关的流量转发模型参考如下图2-6所示: 图2-6超融合硬件网关的流量转发模型参考 首先,报文在Tofino查表命中会进行快速转发;然后,若报文未命中Tofino表,会上送到FPGA查表命中后转发;最后,如果报文均未命中Tofino和FPGA,会上送CPU后进行转发。 超融合硬件网关优势主要体现在超强的包转发处理性能,例如单个Tofino芯片就可以提供12.8Tbps的转发性能,相当于几十台的x86服务器的性能,且由于单个流水线转发吞吐极大,流量突发或汇聚产生的网关打爆导致丢包现 象将很少出现。 超融合硬件网关同样存在以下两方面的不足:首先,超融合硬件网关将CPU、DPU、FPGA和可编程芯片(如Tofino)集成在一个硬件设备上,且需要上述转发单元之间的转发逻辑协同,系统架构相对复杂,开发和维护技术门槛较高;其次,超融合硬件网关通常基于领域特定芯片提供极致的性能,这类芯片产量较少,盈利模式不稳定,因此其技术路线的发展也同样容易出现变数,例如Intel突然宣布不再支持下一代Tofino芯片的研发,这给云厂商技术路线的选择带来挑战。 第3章云网络网关相关技术现状和趋势 3.1DPU/IPU 根据统计,数据中心的网络带宽复合增长率从10年前的30%,已经增加到近年的45%。这些网络任务对计算能力的需求在不断增长,采用传统的主机CPU处理的方式已经不堪重负。一方面为了减轻主机CPU的负载,另一方面提高网络吞吐的性能,数据中心的网络接口在不断的升级换代。从普通的传统网卡,到带硬件卸载的智能网卡,今天已经来到了DPU(数据处理器)/IPU(基础设施处理器)的时代。 DPU/IPU作为一种新型的数据处理器,可以满足网络、存储和安全的硬件卸载和加速。针对DPU/IPU的设计,其实国内外有很多不同的架构,比如ASIC+CPU、FPGA+CPU、NP+CPU等等。由于ASIC+CPU在