第三届未来网络发展大会

网络全球 决胜未来

当前位置:嘉宾致词> > 分论坛四

开放交换机组网技术和前沿进展

编辑: 共浏览:620次

大家下午好。我是周雍恺,来自中国银联,感谢主办方的邀请,今天很荣幸有这个机会跟大家一起分享一下开放交换机组网技术的一些前沿进展。

主要有三大部分的内容,第一部分是开放交换机,里面会涉及到SwitchOS的系统和可编程方面的内容。第二部分主要是讲组网,主要是云原生中心的数据组网。第三个部分就是讲大家比较关心的为什么我们金融业感觉是一个比较保守的行业也会来凑热闹,对开放交换机做一些这方面的研究以及验证。

那么首先看一下整个网络技术的堆栈,网络技术堆栈可以分成控制平面和技术平面,在控制平面这里像以前我们比较熟悉的Neutron接口,还有现在的K8S的接口,当然现在对于网络大家更加强调了,就是基于意图的网络,这样的接口就是越来越基于大家的意图策略。然后对于控制器的话开源比较有名的就是ODL和ONOS,比源的就是APIC和AC控制器,还有南向接口就是OPENFLOW,还有P4,当然比较传统厂商可能更倾向于BGP和OPFLEX这样的接口。

接下来再看数据平面,数据平面其实也可以再分,可以分成交换机操作系统还有硬件抽象层和交换芯片。交换机操作系统这里是红色的,红色的基本上都是开源的方案,我们可以看到有SENIC和FBOSS等开源方案,对硬件抽象层,可能现在发展的比较好的就是SENIC的SAI这一层。那么对于交换芯片可能是向可编程的方向发展。整体的感觉是这样的,网络的开放应该还是大势所趋,开源软件基本上这里红色的部分能够实现对网络堆栈全站的覆盖,还有就是标准硬件和开源软件这样开放交换机的生态也是逐渐形成。

我们接下来再看一下整个开放交换机的技术特征。我这里就简单的归纳为三个部分。第一个就是小交换机可以组大网,也就是相对于原来的筐式的比较复杂的大交换机,现在我们用标准的小盒子其实也能够扩展出一张非常大的网络。第二个就是标准硬件加上开放控制,也就是说在整个的硬件体系上,怎么样能够构建更加可控性的一个交换机的操作系统,更加精简化的操作活动。第三个就是芯片的可编程,芯片的可编程对于SDN来说应该就是真正的SDN,因为它已经把可编程的平面下沉到了流水线的层次。再上面其实可以实现很多创新的功能。接下来就按这一部分一个一个来进行详细的展开。

第一个是小交换机组大网,这里就要讲一下框式和盒式交换的差别,其实框式交换机可以通过小交换机进行模拟,然后用小交换机模拟它的好处,一个是白盒小交换机是比较便宜的,第二个就是架构可扩展。因为一个框的话,如果它的设计出来,它的整个数量就已经完全确定了。然后另外就是还可以多路径的复杂分担,当然最后的一点就是提升可控性,当然可管理性的难度也会逐渐增加。这个图就是比较了一下用框式和盒式堆这种三层网络,因为框式我们只是组几千个节点,那一台框式交换机就可以搞定了,但是如果是几万个节点的话,那就是框式堆框式,每一个框里面也有好几个芯片在,这样一路算下来,可能是从一个点到另外一个点要经过11跳,通过盒式交换机组成它的三网络的话这里只需要5跳,所以在时延和跳数上是肯定有精简的。

下面我们看一下小交换机的可扩展数量好不好,现在盒式交换机单芯片的端口密度已经是足够大了,最高的现在12.8T都已经出来了,就是有128个100G的端口,所以三层的CLOS组网可能有很大的网。两级组网的话最大的可以组到十万台数据规模,这对服务器来说就已经是可以了,因为再往上电力就可能跟不上了。还有就是三级组网,它的CLOS的组网数量取决于中间层交换机的端口密度。

接下来再看一下FaceBook组网的方式,当时是2013年和2014年当时发布了一个经典的组网,他是叫F4,他是48个交换机,1000台服务器,然后CLOS结构扩展到数十万台服务器规模的数据中心,然后任意两个节点之间都有2×4×恩4的冗余路径,当然这个是以前的方式。现在已经是改称了16+100G的互联,接下来他如果有六栋楼的话,他可以把六栋楼的Switch连起来。

那么第二部分讲的是网络的开放控制,这一部分首先先讲路由控制,路由可能最基本的就是来条路线,一个就是传统的路由控制,还有一个就是SDN的路由控制,对于传统的路由控制有一个SONIC来进行对标,就是可能会通过SwitchOS的操作系统,那么相对OS它做了很大的精简,它的UNDERLAY尽量的简单,只保留了BGP一个协议,对于OVERLAY逻辑通常是在主机侧智能网卡里面。另外一个跳线就是谷歌发布的一个操作系统,他其实是一个比较轻量级的操作系统,是一个很薄的操作系统,他只是直线了一些很基本的接口功能,上面通过P4 ruetime来下发。对于SONIC来说,这是一个他的简单的架构。比较核心的是SAI这一层,这一层目前比较重要可能是因为它的生态发展比较好,因为它下面支持的芯片非常多。我们既可以用SwitchP4这样纯可编程的芯片来支持它这个SAI,也可以通过国通的芯片来实现它这个SAI的接口,最终映射到下面的Chip Target。这样我提一点开放交换机创新的技术,是一个堆叠的方案,通常我们服务器为了保证高可用,他一般是双连到两台交换机上,这样如果有一条交换机挂了的话,另外一条交换机可以接上,对于这种方案最传统的就是堆叠技术。我们可以看到这里T1和T2之间还有两条线,最极端的做法是把两太交换机虚拟成一台控制平面,就是这个T1和T2我们登上去会是一模一样的管理地址,这个虚拟程度是很高,但是带来的额外复杂度也增加了,不稳定性也增加了。接下来这个要感谢阿里,阿里提出了比较创新的去堆叠的技术,他们叫做VPC-lite技术,他是把ARP双发了一下,往两条链都双发,这样T1和T2就不用同步ARP表了,接下来如果当链路有切断的话,在交换机那一侧,可能同时在BGP再往外宣告一下,这样其实和原来的功能是一样的,但是比原来的首先这个堆叠线没有了,第二个是实践方面也要简单很多。这也是一个非常创新的技术,在这方面也是有很大意义的。我们以前一直感觉开放交换机一直是在抄袭传统的交换机技术,一直在模仿,可能就是做一些精简的工作,但是这个是比较有意义的,就是开放交换机技术首次是反哺到了传统交换机的阵营,因为有一些传统交换机厂已经接受到了这个方案,而且他们对这个方案的评价也是非常高的。

然后看一下SONIC当前的应用案例,SONIC现在已经成为OCP的一大招牌,因为OCP基本上是以硬件为主,对于软件方面,基本上现在推的最好的就是SONIC,也是目前生态最成熟的一个开放交换机操作系统,这里肯定是要感谢微软,而且是微软的华人工程师做了这样的一套操作系统,而且这个操作系统整个的设计还是非常前卫的,它里面很多组建的模块性都比较好。使用方面的话微软已经部署到了44个方面,领英这里也用到了,还有就是中国对SONIC的贡献非常大,由阿里牵头的ODCC项目组,里面还专门成立了一个凤凰项目,他就是负责正确SONIC在中国的推广,当然阿里是SONIC生产应用最早的也是规模比较大的企业。其他的话,腾讯、百度包括京东也是在开展密集的验证测试,而且不久也会正式的生产上线。

接下来我们再来看一下Stratum,这个Stratum就更前卫了,这里是以IT的方式来管理整个CT,它还是比较有意思的,整个设计首先控制端肯定是在远端的控制器,接口端主要分成三类,一个是P4ruetime,然后就是gOMI和gNOI,这样使得整个下发的策略都会很快。这是整个的Stratum的设计。但是Stratum其实它很多的代码都是适配博通的代码,所以它是把很多P4的语言做了很多转换,转换成它的SDKLE。

接下来就是Stratum的控制,因为Stratum自己是没有办法进行组网独立工作的,它的控制主要是通过ONOS,然后它下面是通过Trellis组建提供Fabric SDN的控制,这个就是纯SDN路由,所以一旦链路端掉的话他很快就会有反应,这种问题在SDN的场景下解决起来也是比较容易的。如果链路一旦断的话,他可以重新在有控制器的控制下整个网还是可以继续运行的,是这样的一个方式。这个是它的一个界面,界面我们可以看到,就是它的控制器有三个,左边三个颜色,然后控制器对应于不同的交换机,它是有不同的颜色来进行控制,就是说这三个其实是负载均摊,并不是说在那边准备,所以整个控制器的效率还是挺高的。

接下来我们看一下Stratum的进展,Stratum最早是由谷歌开源的,所以这里写了谷歌在内部肯定都是已经用了,但是谷歌的控制器肯定不是用的ONOS,然后它的控制器据说是在北美的一家运营商那边,是通过Trellis+ONOS的方式进行控制。我们国内在去年12月份左右,在腾讯那边举办了一个Developer Day,当时也看到了腾讯、UCloud、阿里、锐捷都在积极的跟进或者是密切关注,如果能做出来的话也是非常重要的东西。

接下来是网络的开放控制,另外一点还不得不提到的就是这两年非常火的RDMA的流量控制,前面SDN解决的是路由控制的问题,这个RDMA要解决的是流量控制。他要解决什么样的流量呢?首先是这个图,如果是点对点两两互打的话,这个对交换机来说并没有什么太大的压力,每两点产生的流量再大,基本上它的交换芯片都可以处理过来。但是如果碰到这样的情况,就是有多打一的情况,那么这样的话,这个交换机芯片再强大他也处理不了,因为三个入口一个出口,这种情况如果全限速的话它肯定处理不了,就会导致交换机芯片这个部分肯定会溢出。对这种情况怎么办呢?只能从源端进行解决,把原来的大流量变成原来的三分之一,这样子出口那边可能就能承住了,那么这个节换过程最原始的就是从TCP的端侧流控,但是这样有一点,就是速度比较慢,有可能那边反馈过来的时候在交换机这里已经产生丢包了。后来RDMA出来之后,其实就是端到端的全程流控,就是整个网络都可以参与整个流量拥塞的反压。这种多打一的场景,现在在这种大数据训练场景下非常容易出现。另外对于25G和100G网络的问题也非常突出,因为25G和100G网络速度太快了,它的交换机的缓存其实是撑不了很长时间,一旦有挤压的话迅速就会溢出,所以在RDMA网络,我们可以看到,基本上是在25G、100G网络里面用的会比较多。

这个是整个它的技术实现,首先就是在网络侧需要优化配置PFC和ECN等参数,但是整个RDMA最难的就是这些参数该怎么配,这个其实是它的一大难点,接下来就是在智能网卡侧,他实现的是数据远程搬运。对于原来TCP协议站的话也要重新改写。最终的目标就是三点,一个是高吞吐,还有低时延,以及不丢包,这个是他最终的目标。

这个是它的应用场景。应用场景最早他是做科学计算的,这是应用场景非常多,当然那一套比较封闭,而且价格比较昂贵,后来到以太网里面,主要就是在Cloud里面,还有就是Storage里面,或者是在Network里面,经常会出现大吞吐量,低时延的要求,所以这种技术就可以派上用场。然后当前这个RDMA的使用其实已经非常广泛了,最主要的还是在BAT里面的应用,阿里前两天我看到说他自己宣称他自己建成了全球最大的一个RDMA的网络,主要任务就是训练任务和分布式的存储,其他的互联网公司其实也用了很多的。这里特别要说到的就是微软,他是最早把这个RDMA运用到这个场景中的。然后还有就是华为,华为也推出了比较重要的产品。说到RDMA不得不提这家公司,他在整个技术堆栈里面他是一个单点,最早的就是以色列系片公司的迈络思是InfiniBand与RDMA技术的主要发明者,然后这个是2018年美国的GPU芯片巨头英伟达以69亿美元收购了以色列的芯片公司。然后在我们金融行业的话,招商和浦发已经有生产应用和深度验证,当然我们银联也在验证。

接下来我讲第三点,就是可编程芯片,可编程芯片刚才徐亮已经讲了很多了。对于Switch来讲,它最基本的就是A点到B点两个端口的快速交换处理加转发。对于Programmble来讲,最简单的就是CPU可以编程,这个也可以编程,还有网络处理器NP,其实这个里面最主要的就是面向特定应用的芯片,这个里面最大的就是博通,然后国内的是盛科,还有这些芯片。对于交换机芯片来说它最主要解决的问题就是快,所以它的要求就是全限速转发,现在最大的容量就是总交换容量已经达到了12.8T,单端口是100G和400G都出来了,所以说速度是非常快的。所以这里所说的可编程芯片其实有这么三点,首先他肯定是ASIC,第二个是他要实现可编程的前提是性能是不降级的,第三个是要有特定的编程模型,特定的编程模型的话,对于我们比较熟悉的P4来说,就是原来固定的流水线,然后是它提出了PISA协议无关的架构流水线可编程。这个是它的一个流水线,可以看到每一级都是长的一模一样的,中间是一个TM,连接入流水线和出流水线。它的核心仍然是高速交换,就是处理相关的数据,多了的就是多了灵活匹配和灵活编辑,另外还有小容量的高速存储和查找。这个P4的语言,下面是它的语言,首先是在这里可以自定义报文头,然后是自定义表项,然后还可以通过控制流把它串起来。当然也有几点是匹配不了,比如说URL的匹配实现不了,还有新的Hash算法实现不了,还有做大容量的存储,这个也是不可以在交换芯片上实现。

然后从体系架构的视角来看,反正更高性能始终是体系架构是永恒的追求,从最早的单核再到多核,或来发现多核的摩尔定律也不一定行了,接下来就是各种芯片都出来了,像GPU、TPU和FPGA也出来了。右边这个是得了图灵奖的,他们说这种领域型的芯片马上就要出来了。对于我们P4的芯片来说,他可以做的还是多节点分布式的协作,像原来的两两单播可以变成组播加速,还有就是服务器部分逻辑到可编程交换芯片等等。整个的应用场景差不多可以写成四个虚拟的P4程序,第一个Telemetry是INT的功能,这个是当时P4的主打功能,还是很惊艳的。接下来就是NFV,然后接下来就是Cluster,就是把它当成一台交换机和一台服务器变成功能性的集群来做。最后一个就是Fabric的P4,他也可以做到服务和通信的卸载。后面有一个例子我会讲到。

然后应用案例的话,基本上是从去年听到的案例,可能用的最早的还是阿里,阿里确实在这方面做了很多的事情,他当时介绍了一个是负载均衡的应用,一个单片的Tofino芯片是相当于100台服务器的软LB性能。接下来是UCloud,UCloud在这个方面做的也是很强的,当然更多的一个应用场景主要是在云网关,也就是说PC的网关或者是P2B的网关在应用。然后其他的像INT集群,INT集群现在普遍是用在SONIC的集群当中,然后我们了解到的几家部署SONIC的企业都是把INT的功能也都部署进去了,另外就是在证券行业,其实整个INT,当时的功能开发就是北美的纳斯达克一些证券公司给他们提出的一些需求,所以他们设计出来了这样一套方案。这是整个的应用情况。

第一部分终于讲完了,第二部分和第三部分讲的稍微快一点。第二部分是云原生事态的开放交换机组网,大家会觉得从2015年开始大家会听的非常多,容器化、微服务等等,这是整个CNCF的一个图景,接下来还有很多的一些他所谓的云原生的特性,比如说要有特性还有就是可以自愈和高可用特性。那么云原生的目标是整个业务的极速上线,这个是整个的数据中心,可能是未来的一个发展方向,最早还是资源的池化,是一个Iaas的编排系统,对网络的存储资源进行统一的管理。但是对于从应用的构建和部署的方式和弹性伸缩还有高可用保障方面它并没有本质性的改变,所以当时很多大佬们就提出来了云原生的概念,就是说明原来的应用其实并不是原生的,也就是说原来使用云的方式并不对,所以说现在提出来整个Paas服务化的理念是什么呢?就是整个的能力都是下沉到平台级层面,应用主要是关注你的逻辑,不再需要关注弹性和高可用,这些都是通过服务来保障的。所以说整个变化还是挺大的,就是它的IT架构的重构。第三阶段是最后面的,这个今天就不强调了,就是怎么样做一个数据化的以数据为中心的设计。

然后云原生网络对组网的要求,可能这个里面最直接的就是一个CNI接口,CNI接口是基础的二三层网络联通,它的接口非常简单,就是四个方法,主要就是要实现一个PC的网络,这个大家可以去网上看看,资料非常多。然后四到七层还有一些高级的网络功能,四到七层这里云原生这里更加强调的是以服务为中心的想法,就是把原来的实力IP给弱化了,更加关注服务的IP,其实就是一个虚IP或者是EIP,它提供的就是安全可靠灵活高校的服务间通信,他需要做到的就是更加高级别的功能,比如说安全的策略,还有流量的切换,流量的熔断,还有路由的线流。

接下来这里讲几个例子,一个是Istio服务网格的例子,他在K8S里面是怎么做的呢?主要是通过Iptables进行服务间负载均衡,Istio就是在POD里面加入了一个sidecar容器,这个是整个Istio的控制平面,大家可以看一下,它的控制平面和前面的有点像,就是他在做配置策略的下发,这里是在搜集它的网络数据。整个Istio周围还有非常丰富的组件可以构成一个完整的闭环,还可以做分布式调用的追踪,所以功能非常强大。

第二个介绍一个比较有意思的Kaloom,这个是北美的一家初创企业,他这里做的是软件定义的FABRIC,他是怎么做的呢?就是整个硬件的FABRIC用的是可编程的P4Tofino数据平面,然后物理FABRI可以切换成很多VFABRIC,然后供CNI或者是Neutron进行组网。然后控制平面就是K8S容器,就是高可用的感觉,这是一个初创企业,今年在OCP上也有相关的报告。另外还有一个CNCF下面的一个项目,叫Cilium,这个项目也挺有意思,他是在组网的同时,还把很多安全的方面考虑进去,在数据平面上他没有用硬件,他还是用软件,而且软件还是用了一个内核的新功能,所以说它对内核是有要求的,接下来他还是基于K8S的身份感知,然后可扩展设计,把私有的状态都存在K-V数据库里面去。

第三个部分,我这里讲一下我们金融行业为什么对开源软件会有这样的一个关注。还是看一下行业的技术变局,其实这个技术变局主要是这么几点,第一个是金融科技崛起将大大促进行业效率的提升,第二个就是行业整合加速,行业化U星期,第三个就是金融业加大开放力度,很多国外的机构会将来,行业竞争会加剧。第二个就是对于金融行业互联网来说,金融行业、BAT、传统金融机构都会加入进来,我们传统金融领域优势是在ToB,这个是半年之前考虑的,但是现在我们发现唯一有一点不一样的,就是我们银行现在不一定是靠自己的力量,而是和下面的BAT、互联网或者是运营商那边也开始进行合作来推进。所以说后面整个行业的技术进步会加速的非常快。然后对银联来说会带来两个问题,一个是金融监管,就是AT现在的业务要接到银联或者是网联,然后我们自己还有云闪付的业务,2020年的数据中心现在已经确定了,是落地在安徽黄山和合肥,初期规模都是两到三万的服务节点,也是非常大的。

我们当时对于开放交换机也是做了一些验证,相对于去年的P4交换机来说,整个SONIC的BGP集群还没有变,变的是下面的应用端起了一个KVS的集群,但是连接方式我们现在改成了直接从交换机把线连出去,这样它的流量就不会串到Fabric里面去,最后就是从外网进来我们是通过外边那一台负载交换机进行均衡。今年的研究计划,一个是理论论证,一个是组网落地,还有网元开发还有一项研究跟进。前面讲到的网元开发就是指的这一块儿,就是我们后面会做一个增强型的DMZ区,就是靠前面的四层,交换机先挡一把,然后做七层的负载均衡,这样再把流量导到真正的数据中心,这样可以实现精简化的DMZ。另外就是我们的金融交易系统也可以做一些负载均衡的事情,它可以均衡掉AT转接过来的一些巨大的交易流量。这个是未来网络最理想的一个形态,最理想的形态分三个视图,业务视图是感知不到网络的存在,虚拟网络的结构也比较明确,然后物理网络是这样的,交换中心和数据中心之间还有专线网络、DC网络和互连网络、机构连进来的网络,以及SD-WAN。

最后做一个简单的小节,首先开放交换机的生态已经成型了,相关技术还是有非常大的创新活力。第二个讲到的就是云原生应该还是将成为未来DC网络的重要驱动力。最后就是整个成熟度还是有赖于进一步打磨,企业用户有义务积极试用,创新更多的应用场景。

我的报告就这么多。谢谢大家。