SDN,授人以渔

  • 来源:计算机世界
  • 关键字:SDN,云计算,腾讯
  • 发布时间:2013-04-25 09:51

  有没有设想过这样一个情景:不用交换路由设备,仅通过主机间的网卡连接就可以组网,实现互联互通。

  这不是天方夜谭。我们都知道,通过将数据平面和控制平面分离,SDN可以在网络的4~7层上实现更大的灵活性和集中管控。而随着这一定义的逐渐延伸,目前的SDN已经扩展到了网络2~3层的范畴。这使得很多应用都可以借此实现。

  是什么技术趋势,让市场分析机构要在不到一年中重新估算其市场价值?

  这就是SDN(Software-defined networking,软件定义网络)所带来的魅力。2012年初,IDC发布预测称,2013年SDN市场的规模将达到1.68亿美元,到2016年这一市场的总值为20亿美元。然而,到2012年底IDC发现,SDN的发展已然有些“Hold不住”了。于是,这家调研机构不得不重新发布预期:2013年SDN的市场价值将达到3.6亿美元,2016年为37亿美元。

  我们不知道IDC是否还会在短时间内推翻自己的预测。

  SDN的“三高”

  不过,SDN的火热如今似乎只存在于厂商、分析师和媒体的眼中。从另一个层面来看,大部分用户对SDN反应寥寥。

  Gartner数据中心系统研究总监曾邵清对记者表示,SDN市场正处于一个“三高”时期,“厂商高度频繁发布、媒体高度提供信息、用户高度困惑。”

  “现在的SDN就如同四、五年前的云计算一样,大家只是知道这个名词和基本理念,而这个名词具体包含了哪些东西,如何选型、部署和实施,带来了哪些好处,很多人都是一头雾水。”国内某大型广电集成商的高管说,“甚至于,还有相当一部分人根本就不知道SDN这个名词。”如果真的如他所说,那么现在SDN的知名度甚至还不如彼时彼刻的云计算。

  那么,什么是SDN?我们可以将网络架构分为三个部分来看待这一问题。这三个部分分别是:数据平面(Data Plane)、控制平面(Control Plane)和管理平面(Management Plane),其中数据平面作为一个受控转发设备负责语音、数据传送,控制平面进行Telnet、SSH、路由等协议的运算和转发表存储,管理平面则主要承载应用。SDN所要做的,就是将数据平面和控制平面分离开解耦,数据平面仅仅只是一个转发的设备,控制平面则负责具体的转发控制、逻辑运算等业务,二者之间由OpenFlow、I2RS等各类新的协议实现控制。同时,通过在控制平面开放接口,管理平面可以控制数据平面的行为而无需关注底层协议的具体工作方式。

  由此可见,在SDN的定义中,控制平面的作用非同小可。具象化,就出现了SDN控制器(SDN Controller)组件,如今大部分厂商都致力于此。

  现在业界大都在用这样一个比喻来通俗形象地解释SDN:数据平面就好像手机硬件,控制平面则是运行于其上的Android智能操作系统,管理平面相当于应用。相较非智能的手机,Android智能手机不仅更灵活、易用,同时其与手机硬件可以广泛适配。此外,其还具有丰富的应用。

  来自维基百科的定义是,“SDN是一种通过分离和抽象网络元素,进而建立计算网络的方法。系统管理员通过这一方法可以快速调配网络资源并取代手动配置策略。”

  其实从“软件定义网络”这个名称中我们就可以看出,网络硬件原本具有的部分价值正在逐渐转向软件,同时二者之间不再是紧耦合的关系。这样一来,系统管理员可以更加灵活、集中地控制路由交换产品,实现上文所说的快速调配。这种调配,不同于我们传统意义上的集中式网络管理。在传统的网管中,系统管理员大部分时间是在进行网络4~7层的管理,但是却无法干预网络的运行状态。但是SDN就可以做到,像根据报文的状态定义其转发策略这类的操作。

  这种快速调配,对于横跨多个物理或者虚拟网络资源的管理员来说非常实用。目前,包括Google、Facebook等大型互联网内容服务商,都已经开始评估并部署SDN。相对于两年前SDN领域的纸上谈兵,如今这些互联网巨头的真实案例对于用户来说更有一些实际价值。

  综上所述,SDN拥有着一个非常基本的特征:数据平面和控制平面分离,同时可以实现一对多的逻辑集中管控。实际上,正是因为我们将数据平面分离,因此控制平面可以更加容易地实现集中化管控。除此之外,软件定义网络的另一个核心在于,控制平面为管理平面提供接口,管理平面可以借此实现更多定制化功能。

  SDN的这些特点很大程度上为交换机应用提供了新的思路。不过,这并非是SDN的全部,而只能算是基础。在SDN的发展过程中,包括标准化组织和厂商在内,正在为SDN涂抹上新的色彩。

  可编程:用户的胜利

  谈到SDN的特性,首当其冲的是其在开放性方面的优势。这种开放性,很大程度上指的是对路由交换机的可编程能力。其可以分为两个部分:北向与南向。

  这种北向和南向,是以SDN控制器为出发点所定义的。北向所代表的,是开放控制器的API(Application Programming Interface,应用程序编程接口),第三方可以根据拿到手的SDK(Software Development Kit, 即软件开发工具包)进行开发。作为SDN的一项基本特征,其让用户能够根据自己的实际应用情况对网络进行定制化开发,具有很明显的优势。

  当然,在SDN概念提出以前,我们也不是不可能对交换机进行二次开发。但是这往往需要对厂商产品非常熟悉的工程师花费相当一段时间来完成。而通过OpenStack、CloudStack等项目内置的RESTful、LDAP等通用API支持,云服务供应商也许只需要稍微花些时间就可以将交换机与应用系统结合。通过公开的接口,SDN北向编程降低了二次开发的门槛。

  但是这种开发始终只是停留在网络4~7层的应用上,对于一些用户来说,这并不能满足其使用需求。2012年3月,美国《Wired》杂志刊登了一篇名为《Exclusive: Google, Amazon, and Microsoft Swarm China for Network Gear》的文章。这篇文章主要阐述了这样一个事件:随着谷歌、亚马逊、微软和Facebook等美国大型科技企业的网络业务逐渐扩张,他们对交换机等网络设备的要求也越来越高,传统的标准化产品已经无法满足需求。因此,这些网络巨头纷纷开始向中国大陆和台湾的ODM(原始设计制造商)直接采购产品,甚至参与设计。

  文章的中心在于,标准化硬件对于一些大型企业已经失去了吸引力,他们更愿意摆脱传统厂商的操纵自行开发网络产品。看上去,这同SDN关系不大。不过文章中体现的一个重要事实是,这些企业的采购来源,比如文章中所提到的Cumulus Networks和Pic8,都是SDN的坚定支持者。

  实际上,这种情况不仅发生在这些美国大型企业的身上。在国内,像百度、腾讯等互联网内容提供和服务商,也在对网络进行着自己的改造。这些企业的共同痛点在于,其数据中心网络实在过于庞大,以至于传统的网络模型已经很难在支撑他们的需要了。同时,超大规模的网络也意味着高昂的采购成本和维护成本,相对而言自行开发或者与厂商合作开发的花费要经济得多。比如说,腾讯目前已经开始采用其自主开发的SRP(Sequoia Routing Protocol)路由协议在网络中进行试点。这一协议由边界网关协议(BGP)所简化而来,并得到了华为、H3C等厂商的支持。

  这些用户的需求,使得从SDN控制器南向,直接与数据平面进行会话的定制化开发显得尤为重要。这就为厂商提出了难题:应该如何看待用户的这类需求,是完全不接受,还是为用户开放内部接口?开放,作为SDN最基础的核心,目前已经为一些厂商所接受。

  对于普通用户而言,南向针对数据平面的可编程优势几乎可以忽略不计。毕竟不是每家企业都需要而且也有能力改动网络协议的。因此从厂商目前的态度来看,在可编程API方面都是有选择提供给用户的。华为企业网络产品线副总裁马云表示,在华为的SDN战略中,北向API面向所有用户开放;南向API则根据用户需求进行开放。他认为,传统企业和业务软件提供商关注的是管理平面上业务编排、业务路径以及业务控制;电信和数据中心运营商则会着眼于整网资源,这部分属于控制平面所统筹的范围;而互联网企业和IT企业则对数据平面上的设备控制情有独钟。

  瞻博网络(Juniper)亚太区数据中心顾问工程师包贵新认为,传统厂商在软件成熟度和硬件芯片特性支持方面有着长期的积累,加上开放资源后会吸引到更多的合作。

  虚拟化、自动化、可更新

  SDN所面向的,是未来多租户、大规模的网络,这同网络虚拟化的核心是一致的。虚拟化厂商认为,未来的网络应该是非常灵活的,流量、端点可以随时被迁移到任何地方的数据中心。

  因此,在SDN领域,有很多技术实现是通过虚拟化来完成;同时SDN又赋予了网络虚拟化新的发展空间。前不久刚刚被VMware 收购的Nicira的控制器就采用了虚拟化Overlay隧道封装来分离数据平面和控制平面。而另一方面,虚拟化技术也可以作为SDN的一种应用,体现在管理平面的应用上,比如对虚拟机状态迁移、对网络流量的感知等。

  更为有意思的是,通过与虚拟化技术的结合,未来我们可以在服务器上安装控制器,并创建虚拟网络,进行实现脱离交换设备的组网。

  SDN与虚拟化的结合方便了用户的应用,改变了用户对网络的使用方式。同时其也颠覆了业界格局。通过SDN,所有厂商都呈现出了亦敌亦友的状态。未来,我们可能需要面对这样一个问题:对网络的管理究竟应该由谁完成,网络厂商、主机厂商还是Hypervisor厂商?

  除此之外,SDN集中化管理且开放的特质,使得交换机能够在自动化、功能更新上都有着不同于以往的表现。

  在这方面,用户将能够感受到SDN实实在在的价值。比如说,云计算提供商可以通过在管理平面上编写工具,监控网络配置、服务器生命周期、应用程序部署、路由器和交换机配置等,并进而实现自动化配置服务器,迁移不同私有云之间的工作负载等操作。这同面向设备的可编程完全不同。这种应用需求,显然要更为大众化一些。

  单纯为用户讲解数据平面和控制平面分离、可编程这两点特性的话,SDN恐怕很难打动用户的心。相比之下,实际的应用案例恐怕会更有价值。Information Week去年10月份的调查显示,在有计划或者正在实施SDN部署的IT管理员中,42%的受访者认为SDN能够提高网络的利用率和效率,35%的人认为SDN可以实现更多的管理自动化功能。最后,32%的受访者认为,SDN可以改善网络安全状况。

  实际上,SDN并非什么新的理念。在SDN概念提出以前,业界就已经有过将数据平面和控制平面分离的思想。只不过,那时这类概念是作为一种产品设计思路出现的,其聚焦的中心在于防止三个平面互相拖累占用整体资源,或者关注在如何提升网络的可管理性上。其依然还是围绕网络硬件”做文章“。而SDN的理念,则是从更加开放的角度,将原本厂商所特有的一些权利,释放给用户。

  腾讯云数据中心团队表达了这样一个观点:“如果你还在继续寻找打开网络设计梦想之门的途径,如果你还在众多成熟方案中精挑细选拼凑一个差不多满足业务的网络方案,如果你还在铺天盖地的路由、告警中筛选关键的信息,那么,今天,SDN将会是你的答案。”

  本报记者 李旭阳

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: