阿里云SDN/NFV之架构与实践

  1. 云栖社区>
  2. 博客>
  3. 正文

阿里云SDN/NFV之架构与实践

阿里云头条 2016-11-21 12:11:20 浏览10587 评论2

摘要: 在10月23日阿里云网络技术演讲上,来自阿里云网络产品团队孙成浩(花名:梵叶)分享了《阿里云SDN/NFV之架构与实践——一次自然的技术演进》。作为网络产品团队中负责产品相关的技术架构架构师,他结合阿里云的网络云产品探讨了阿里云虚拟网络的网络技术架构,并且结合SDN和NFV分享了阿里云的思考和实践。

摘要:在10月23日阿里云网络技术演讲上,来自阿里云网络产品团队孙成浩(花名:梵叶)分享了《阿里云SDN/NFV之架构与实践——一次自然的技术演进》。作为网络产品团队中负责产品相关的技术架构架构师,他结合阿里云的网络云产品探讨了阿里云虚拟网络的网络技术架构,并且结合SDN和NFV分享了阿里云的思考和实践。

他的演讲内容主要分为三个方面:1.为什么抽象出来了SDN和NFV的概念,如何一步一步摸索出这两套架构 2.如何理解SDN和NFV?、3未来的SDN/NFV架构上的展望。以下是本次演讲上的发言整理内容:

一.客户需求的一个也不能少

ce5c60e0c99bd6eda7b88ad243082d5845b6120b

对于云计算的开发者来说,一切都是以客户的需求为出发点。阿里云提供的公共云能满足海量公共云租户的各种各样的诉求,这些需求可以形象地概括为“既要”、“又要”、“还要”这三个词。对于公共云的用户来讲,这些需求一个也不能少,大体上客户的需求可以分为以下七点 1.高性能 2.安全 3.私密 4.互联 5.可靠性 6.隔离性 7.海量租户

二.Overlay技术——先把网络隔离开

0448904cd843035a5aee97c8fc6fa6cf57efb68b

隔离永远是网络的第一步,阿里云借鉴了成熟的Overlay技术来实现隔离。基于Overlay技术,海量的租户被隔离开,所有的租户都是运行在这个网络之上。网络实际被分为上下两层,上层是虚拟网络,下层是物理网络。

  • 在虚拟网络的里面,租户可以看到他在物理网络中经常可以看到的网络设备,比如路由器,交换器,ECS(物理网络里面能看到的主机),以及在主机里运行的各种服务,如SLS负载均衡服务、RDS数据库服务,OCS cache服务等等。网络中的流量实际上都跑在虚拟网络上,它既可以从ECS去访问对应的RDS,也可以从ECS通过交换器和路由器来访问公网,这是它在网络里面典型的一个流向。这里所有的概念都是网络中虚拟出来的,实际承载它的是它之下物理网络。
  • 在物理网络里面有常见的TOR交换机、核心交换机和服务器,并且在服务器与交换机之间同样也有网络的数据包的交互。这里要强调的一点是:所有复杂性的网络的节点或者拓扑结构都存在于在虚拟网络中。虚拟网络对于物理网络的诉求实际上非常简单,也许只需要二三层结构就可以满足。在整套的网络架构里,物理网络不再是一个复杂的节点,因而可以容易地实现。这样一来就减少了物理网络出问题的概率,使整个网络的结构变得非常稳定。 

三.隔离之外,就是互通

11736f7ed583f3ccd97c957a02f797d7d7702968

除了隔离,互通也是一大难题了。对于云上的客户来讲,只有互通的网络才是有意义的,不然它只是一个个孤立的结点,而不是一张网络。云上的客户对互通提出了许多需求,大致可分为四类:

  1. 私网互通。私网互通包含两种,一种是用户网络内部的互通,比如当用户网络内部有虚拟机和云服务时,这些虚拟机之间以及虚拟机和云服务之间需要互通。 另外一种是用户网络之间的互通,包含很多情况,一种情况是用户在同一个地域有两张网络,这两张网络需要互通,另一种是用户在不同的地域也有多条网络,这些网络之间也有互通的需求。
  2. 公网互通。公网互通是混合云接入的一种,从大体上分为两类:一类是能够访问公网的单独的ECS。但单独的ECS是不够的,另一种是用户网络同公网,这类似于用户在家中访问公网,实际家中里各种各样的设备,如手机、电脑、ipad、电视等等,都是通过一台无线的路由器来访问公网的。这里体现出的是用户网络的一个概念,同时也是公网互通的另一个诉求。
  3. 用户IDC。专线接入按灵活性可分两类,一类通过硬线来接入,例如直接拉线连接到阿里云的POP点所在的机房,再通过光纤来接到阿里云的数据中心,这种接入方式具有延时少、可靠性高等特点。相对地,另一种就是软专线接入,这种接入方式利用了ECS之间的公网的用户互通能力和数据中心可以访问公网的能力,通过公网和数据中心来建立一条数据的连接。通过软专线来接入延时会比硬专线大,但是它同时也很灵活,能线性扩展。
  4. 跨地域互通。按照地域的跨度可以分为两种情形,一种是国内互通,比如阿里云在国内有很多的数据中心,杭州的数据中心可以通过虚拟专线跨地域与北京的数据中心连接,。第二种是跨国互通,比如杭州的数据中心能够与美国的数据中心实现互连,这种需求在国际化的诉求中显得尤为强烈。

四.自研是解决互通之道

0e742014726d53b6875ac1d420b309b8660cff74

众所周知,开发硬件周期长,迭代速度慢,从提出需求到硬件设备的实现往往需要等待非常长的周期,特别是在公共云的环境中,硬件很难满足云下层出不穷的需求。如果采用硬件解决上述的用户需求,这就意味着系统会十分依赖硬件本身。

因此,阿里选择了软件的方案,通过自研设备来实现需求。例如,在网络的架构图中可能部署了三个自研设备,一个是虚拟交换机、一个是数据层自研网络设备,还有一个是自研控制器。架构左侧是数据面,右侧是控制面。虚拟交换机的主要作用是实现ECS之间的私网互联,这也就是所谓东西向流量。自研网络设备主要用于连接两条不同的网络,完成南向流量的下发,这里的流量主要来自用户的IDC和公网。所有的虚拟交换机和自研网络设备中的转发表都是由控制器下发的,控制器还包括售卖、权限控制、计费,租户授权等服务,最后在控制器之上是到控制台。这个架构图整体上还是比较清晰的,我们的分流策略架构都保证了网络能够满足上述互通能力的需求。

五.确保自研结点的可靠性

90cf4372c12334be4a064f85537b6d0cac388145

世界上不存在一个没有缺陷、不会出问题的系统,为了尽可能确保系统在部署了众多的自研设备时的可靠性,阿里云采取了大量冗余的设计。具体而言,对架构的两个最主要的组成部分,自研的网络设备和自研的控制器,系统都做了双重保险。在单机房内部的自研网络设备和自研控制器都是多台部署的,以保证单台控制器的宕机对整个系统是任何没有影响的,同时还机房和机房之间做到了机房间容灾。这意味着如果机房一的网络设备全部宕机,流量就会切换到机房二的自研网络设备上,然后流量通过上连的交换机回到机房一内部的计算节点上,以切换回机房一。这样的设计确保即使整个机房宕掉了,尽管系统延时会变大,系统可用性也不会受到任何影响。采用这样的设计,阿里云的主要产品从上线到现在都未出现严重的网络故障。总之,借助多重冗余的设计,阿里云确保了自研结点的高可用性。

六.安全、安全、还是安全

336ca99acad1a5d0ef19763e897aa272c11a5e44

客户在上云之后关心的另一个问题就是安全。这里的安全主要是指公网安全,因为公网是系统中最脆弱、最容易受到攻击的地方。因此为了能让客户觉得安全,阿里云在原有架构的基础上增加了五大安全相关的技术。在这五重保险之下,用户在云上实际能获得一个非常安全的私有的网络。

  • 旁路检测设备。这套设备可以满足TB级的网络的攻击,并且曾经成功地为淘宝、阿丽巴巴、天猫抗住了TB级的DDoS的攻击。
  • 容量。这里的边界网关扮演着监控网络的角色,它提供了大容量TB级的自研网关。无论是攻击流量还是正常流量都能无损地进入到网络里来,这样一来就能够使攻击流量对正常流量产生尽可能少的影响,不会挤掉正常的流量。
  • 限速。这个模块使用一个高性能的限速单元来对流量进行线性过滤处理。一般在经过这个节点之后,90%的攻击流量也就被限制了,剩下的10%的流量不会对系统的性能产生影响。
  • 过滤。在限速模块后是一个显式匹配的过滤模块,它包括黑名单等功能。
  • 调度。调度模块主要负责监控、采集、反馈等。如果有大量攻击出现,系统能够自动调度算法,并且同时也给黑名单下发策略,以提供一个动态的防御攻击的能力。任何一个攻击都有可能触发系统保护机制,使系统对攻击的源事件进行限制。

七.虚拟网络组件

95bed2f65824c83eb5e969788d78efcea6eed02a

阿里云在网络产品方面给用户带来了很多的虚拟网络产品,这些虚拟的网络产品实际上与NFV概念十分相关。这里的虚拟化网络产品包括虚拟交换机,虚拟路由器,虚拟边界路由器,路由器接口,虚拟NAT网关等等。

  • 虚拟交换机使用户能划分不同的网段,这些交换机集中于一个可用区,并且它们的逻辑范围也是一个可用区,这样能使用户可以用两个处于不同可用区下的虚拟交换机来搭建一套具有多机房容灾能力的网络。
  • 通过虚拟路由器,用户可以指定路由表,来让网络变成一套非常灵活的网络,同时虚拟路由器还可以和旁边的虚拟边界路由器来互联。
  • 虚拟边界路由器连接着用户的IDC,虚拟边界路由器和虚拟路由器互联的接口就是路由器接口。
  • 虚拟NAT网关主要用于用户访问公网,向用户提供如同在家里访问公网一样的体验。

八.阿里云的云市场

cbb3c85b43393bf9abfea5d83ce9432fdc8a2326

除了官方的NFV,阿里云的云市场还给用户提供了各种各样的组件和ECS的镜像,以实现不同功能,如VPN、DNS、NAT网关。基于阿里云的云市场,用户可以定制任何自己期望的ECS镜像。镜像运行在ECS这个host,里面可以运行很多路由器、防火墙、VPN设备,NAT网关、DNS、NFV等功能。此外,这台host还可以和另一台host连接,这样当一台宕机时,另外一台可以以它的身份提供服务。这里搭载的实际上是阿里云的另一个云产品HAVIP。使用这个产品,用户可以去配置路由表来把子网下一条地址指向这两台host所共享的HVIP,然后用户就可以把流量引到这些VM里面来,并且使用VM里面虚拟的各种各样的功能。总之,基于阿里云的云市场,用户可以搭建非常灵活的架构。

九.什么是SDN

8f7aff5c8b914623b03affeb506eb64922796026

SDN从字面上理解就是软件定义网络,一种经常见到的解释就是:控制器集中下发,控制面和数据面互相分离。在SDN这套架构图,最底下是硬件,包含了服务器、网卡、交换机、路由器、网络网络。数据层运行在硬件层上,这层的结点主要是自研结点,包括自研边界网关、自研虚拟网关、自研虚拟交换机等等。数据层之上承载了两个管控的层面——控制层和自治层。控制层主要负责业务逻辑的管理和下发,如配置路由表、分配IP地址和创建虚拟网络,自治层则负责是运维管理和动作下发,如趋势预测和故障自愈,以达到对故障最快的响应和提前发现。最上面是产品层,包括一些相关的云产品等。在这套架构里面,自治层是核心,它负责完成整套系统的自动化部署、网络自治和网络自愈。

十.运维自动化

0b4d7d2aa01bb4dc3b6150c6caf036402843f84d

运维自动化是软件定义网络的核心,由运维自动化可以延展出两个方向,自治和自愈。简而言之,自治就是自己可以管理自己,自愈则是在网络在出现问题可以进行自我恢复。所谓SDN,运维自动化即是其核心所在。

十一.这样的SDN

02f9c8fe365bb4836ef3ad27f5a6e554c277b7fc

不同于传统的SDN,阿里云将SDN开放给了云上的每个用户,让用户可以调用Open API。这样一来,用户在基于云的网络上可以自由地连接网络,可以配置路由、划分子网,让流量按照用户期望的方式流动。同时在网络之上的ECS,用户可以按照自己的需求创建、释放虚拟机来承载其流量,以实现弹性伸缩。另外,利用弹性公网IP, 用户可以把一个公网IP绑定其他ECS上。阿里云提供了丰富云产品,用户在其独有的网络中使用云产品的同时也完全隔离其他用户的访问通路。这些产品提供了多种计费方式,包括按量计费、按规格计费、包年包月等等。总之,阿里云的网络产品把SDN的能力通过Open API的方式暴露给云上的每一个用户,使用户能更加方便地使用。

十二.客户怎么玩?

a2956f0d7d876eea76b66add880a38602a9456a1

目前有很多客户使用阿里云网络的云产品来承载业务流量,微博就是阿里云客户之一。微博基于阿里云构建其混合云平台,它利用专线把RDC拓展到云上,并且利用弹性扩容来在云上做承载。通过阿里云弹性伸缩的能力,微博能应对除夕当天或春晚直播期间的大规模流量。10分钟和40%的成本——这两个数字可以充分说明这一点, 微博可以在10分钟内使它云上的上千台ecs规模翻倍,这种扩充能力远远超过了流量增长的数量级。并且基于阿里云的架构,微博比原本的成本下降了40%左右,换句话说,它使用了60%的成本来经受了比上半年同期大幅增长了一半的流量。相信这些数值对客户来说是相当有吸引力的。

十三.展望未来

cb05893936f721616b31e272c44e0250478ee4a7

世界变换太快,需求在不断变化。为了跟上未来技术发展的节奏,阿里云将在以下三个方面持续发力:

  • NFV。加大对NFV研究以及相关云产品的研发。提供智能DNS私网定制,让用户在其私营网络能定义自己的DNS服务器和制定自己的域名,以方便快捷地实现两地三中心这种方案。提供IPES和GRE这两种介入网关,使用户通过走比较经济的公网来接入到云上的数据中心,对很多中小企业来说是方便可靠的。子网路由则允许用户在其每一个子网里面配置路由表,并且可以精确地知道某一台ECS是如何走的,某一份ECS路由表是如何流动的,以实现灵活的网络路由机制。
  • 拥抱大数据。更细粒度地分析云上的海量数据,并将大数据的分析结果反馈给用户。加强数据采集、数据分析、数据报告,最终使云上面的用户能够看到每一个数据包在云上是如何流动的,能够追踪每一个数据包、每一条流。
  • 增强用户体验。大力开发网络可视化、业务可视化,把数据化的能力开放给云上的用户,让云上的用户如同调度自己的数据中心和机房一样来调度云上的整个网络。同时加大投入建设pop点,提升全球接入能力,使未来任何一个地域的用户都可以就近接入阿里云的数据中心。维护第三方开发者云生态,把虚拟网络的能力开发给用户,让用户能够在阿里云的基础设施上为其他的更多的客户提供云服务,这意味着阿里云需要向更多的第三方开发者开放API和数据通路,与第三方开发者共建云计算的生态。

点击回顾直播视频
【云栖快讯】一站式开发者服务,海量学习资源免费学  详情请点击

网友评论