SDN的初步认识

2013-12-24 by muzi

前言

(习惯性乱扯两句,可跳过)一年之前第一次接触SDN的时候,我甚至连pox的发音都发不对。第一次看OF1.0spec的时候,更是不懂secure channel到底是什么概念,Datapath一样是云里雾里。我不知道流是一个什么概念,不知道SDN如何DN,我只是觉得,我可能会比较喜欢IP这一方面的东西,具体哪一方面我也不知道。但是无所谓啊,我还年轻,我有选择的机会。抱着试一试的态度,去学习了SDN的一些知识,慢慢地就喜欢上了。不仅仅是因为知识本身,更是因为当我获得成功时刻的成就感与自豪感,让我觉得我愿意去做这件事情!一年之后,我写过Openflow协议通信流程的教程,画过所有Openflow协议的数据结构,写完自己的一个控制器,还写了一边关于如何编写控制器的教程,懂得怎么使用mininet搭建自定义的拓扑,懂得使用spirent testcenter去打流测试,懂得pox是如何运作的,等等。我甚至可以去教一些新手一些关于SDN的技术,但是,当我想要写点东西的时候,我却突然发现,我不知道什么是SDN!我并不清楚SDN是从何而来,不知道SDN发展历程,不知道SDN目前面临的问题,不明白SDN的现状到底什么状态,不知道SDN的未来有什么前景。我只知道一些具体的技术细节,也许对于一个本科生已经不错了。但是这也正是我们本科生的弱点所在吧。缺少大局观,目光不够长远,对知识的掌握更倾向于操作而非原理。正好需要写一写小论文,抓住机会,好好学习一下SDN的相关知识是一个非常明智的选择。

什么是SDN?

SDN是software defined network 的首字母缩写,翻译成中文即:软件定义网络。利用OpenFlow协议,把路由器的控制平面(control plane)从数据平面(data plane)中分离出来,以软件方式实现。这个架构可以让网络管理员,在不改动硬件设备的前提下,以中央控制方式,用程序重新规划网络,为控制网络流量提供了新的方法,也提供了核心网络及应用创新的良好平台。

SDN的发展历程

起源与发展

OpenFlow起源于斯坦福大学的Clean Slate项目组 [1] 。CleanSlate项目的最终目的是要重新定义英特网,旨在改变设计已略显不合时宜,且难以进化发展的现有网络基础架构。

在2006年,斯坦福的学生Martin Casado领导了一个关于网络安全与管理的项目Ethane[2],该项目试图通过一个集中式的控制器,让网络管理员可以方便地定义基于网络流的安全控制策略,并将这些安全策略应用到各种网络设备中,从而实现对整个网络通讯的安全控制。受此项目(及Ethane的前续项目Sane[3])启发,Martin和他的导师Nick McKeown教授(时任Clean Slate项目的Faculty Director)发现,如果将Ethane的设计更一般化,将传统网络设备的数据转发(data plane)和路由控制(control plane)两个功能模块相分离,通过集中式的控制器(Controller)以标准化的接口对各种网络设备进行管理和配置,那么这将为网络资源的设计、管理和使用提供更多的可能性,从而更容易推动网络的革新与发展。

于是,他们便提出了OpenFlow的概念,并且Nick McKeown等人于2008年在ACM SIGCOMM发表了题为OpenFlow: Enabling Innovation in Campus Networks[4]的论文,首次详细地介绍了OpenFlow的概念。该篇论文除了阐述OpenFlow的工作原理外,还列举了OpenFlow几大应用场景,包括:

  • 校园网络中对实验性通讯协议的支持(如其标题所示)
  • 网络管理和访问控制;
  • 网络隔离和VLAN;
  • 基于WiFi的移动网络;
  • 非IP网络;
  • 基于网络包的处理。

当然,目前关于OpenFlow的研究已经远远超出了这些领域。

扩展为SDN

基于OpenFlow为网络带来的可编程的特性,Nick和他的团队(包括加州大学伯克利分校的Scott Shenker教授)进一步提出了SDN(Software Defined Network, 目前国内多直译为“软件定义网络”)的概念–其实,SDN的概念据说最早是由KateGreene于2009年在TechnologyReview网站上评选年度十大前沿技术时提出[5]。如果将网络中所有的网络设备视为被管理的资源,那么参考操作系统的原理,可以抽象出一个网络操作系统(Network OS)的概念—这个网络操作系统一方面抽象了底层网络设备的具体细节,同时还为上层应用提供了统一的管理视图和编程接口。这样,基于网络操作系统这个平台,用户可以开发各种应用程序,通过软件来定义逻辑上的网络拓扑,以满足对网络资源的不同需求,而无需关心底层网络的物理拓扑结构。

关于SDN的概念和原理,可以参考开放网络基金会(Open NetworkingFoundation)于今年4月份发表的SDN白皮书Software Defined Networking:The New Norm forNetworks [6] 。

从上面的描述中,可以看出OpenFlow/SDN的原理其实并不复杂,从严格意义上讲也很难算是具有革命性的创新。然而OpenFlow/SDN却引来了业界越来越多的关注,成为近年来名副其实的热门技术。截止2012年,包括HP、IBM、Cisco、NEC以及国内的华为和中兴等传统网络设备制造商都已纷纷加入到OpenFlow的阵营,同时有一些支持OpenFlow的网络硬件设备已经面世。

2011年,开放网络基金会(Open Networking Foundation)在Nick等人的推动下成立,专门负责OpenFlow标准和规范的维护和发展;同年,第一届开放网络峰会(OpenNetworking Summit)召开,为OpenFlow和SDN在学术界和工业界都做了很好的介绍和推广。

2012年年初召开的第二届峰会上,来自Google的Urs Hölzle在以OpenFlow@Google[7]为题的Keynote演讲中宣布Google已经在其全球各地的数据中心骨干网络中大规模地使用OpenFlow/SDN,从而证明了OpenFlow不再仅仅是停留在学术界的一个研究模型,而是已经完全具备了可以在产品环境中应用的技术成熟度。而后,Facebook也宣布其数据中心中使用了OpenFlow/SDN的技术。

OpenFLow协议发展历程

自2009年初发布第一个版本(v1.0)以来,OpenFlow规范已经经历了1.1、1.2以及比较成熟的1.3,目前1.4版本也已经出现。从下图我们可以看出,1版本更新的速度很快。1.1的时候应经支持VLAN,多级刘表,group等操作。而1.1,1.2都是过渡版本,很少有商家支持这些版本。到1.3的时候,基本上多级流表已经完善。所以许多厂家的of交换机开始支持改版本。

版本之间的差异

图片均来自:http://www.sdnap.com

www.sdnap.com是学习SDN的好地方,这里有一个学习SDN的大家庭。更多资讯,可以直接访问sdnap。

SDN的现状

虽然SDN很火热,但是,并不像人们想象的那样推倒过去的网络,在SDN发展的道路上依然存在着许多问题,如技术,如用户心态等等问题都是继续解决的。

OpenFlow并不是一统天下的协议,至少现在不是。这句话是对的。但是我们看好OpenFlow能在未来赢得一片属于自己的天地。

SDN的疑惑

软件定义网络真的是正确的方向嘛?

软件定义的理想是远大的。但是伟大的梦想,实现的道路注定是曲折的。到底SDN能不能发展好,目前业界都持乐观态度,但是事实上大家都是在探索中,并没有爆发性的进步。也许这是暴风雨前的宁静吧。 但是,在SDN的热潮影响下,传统厂商的利益就受到了影响。如cisco,juniper等传统网络巨头的利益就收到了影响。一方面,他们也积极投身其中。目的是为了不至于由于坚持传统而被新事物取代。当你无法阻挡某些事情的发展的时候,你要试着加入这个行列。但是,传统厂商并不这么容易放弃。因为这意味着市场将面临一次洗牌,而对于习惯了巨头地位的那些厂商们,最不愿意看到的就是动荡。只有那些试图改变自己在行业格局内地位的小公司才会积极去参与这样的改革。所以说,本身这就动了巨头的蛋糕。所以改革本身也有一定难度。

更聪明的巨头,如cisco,不仅仅一边跟进火热的SDN,争取在这一个新事物的市场中占领同样的巨头地位,同时他们还推行另外一个,反其道而行的概念:HDN(hardware defined network)。主张与SDN(software defined network)正好想法。HDN鼓吹以硬件定义网络。

什么是HDN?

Insieme(思科内部创业公司)将在11月6日发布一款号称“足以改变业内游戏规则”的重量级产品,“它是思科的未来!”然而,令业界琢磨不定的却是Insieme到底走SDN路线还是超越SDN的HDN路线?所谓HDN,是业界根据Insieme在纽约Interop展演示的Application Centric Infrastructure(ACI)架构得到的结论。根据演示,将在11月6日发布的ACI主要关注基于物理基础设施的服务及基于hypervisor的虚拟环境可编程性,与目前流行的SDN思路不同,更多是基于硬件的功能定义,因此被称为“硬件定义网络”HDN。[8]

且不去讨论那些行业利益的影响,我们再去看看用户到底愿不愿意接受SDN和OpenFlow。 目前为止,google,facebook等大公司的数据中心已经采用了sdn的方案,并且google声称链路利用率高达99%,说实话,这着实把我们华为的工程师吓了一跳!但是我们必须很清晰地认识到的是目前SDN只适用于数据中心,其他地方,都在尝试中。而最复杂,最难办的广域网,SDN短期内是无法应用的。关于SDN的应用在下一小节将重点介绍。

SDN的应用

SDN的应用场景[9]:

  • 数据中心网络
  • 数据中心互联
  • 政企网络
  • 电信运营商网络
  • 互联网公司业务部署

SDN在数据中心网络的应用

数据中心网络的需要主要表现在海量的虚拟租户、多路径转发、VM的智能部署和迁移、网络集中自动化管理、绿色节能、数据中心能力开放等方面的需求。 SDN控制逻辑集中的特点,可充分满足网络集中自动化管理,多路径转发,绿色节能等方面的要求;SDN网络能力开放化的特点,可充分满足数据中心能力开放,VM的智能部署和迁移,海量虚拟租户的需求。并且,数据中心的建设和维护一般统一由数据中心运营商或ICP/ISP维护,具有相对的封闭性,可统一规划、部署和升级改造,SDN部署的可行性高。数据中心网络是SDN目前最为明确的应用场景,也是最有前景的应用场景。

SDN在数据中心互联的应用

数据中心之间互联网的网络具有流量大、突发性强、周期性强的特点,需要网络具备多路径转发与负载均衡、网络带宽按需提供、绿色节能、集中管理和控制的需求。

SDN转发与控制分离,控制逻辑集中,网络虚拟化、开放化的特点,可通过部署统一的控制器,收集各数据中心之间的流量需求,进行统一的计算和调度,实施带宽的灵活按需分配,最大程度优化网络,提高资源利用率。目前Google已经在其数据中心之间应用了SDN技术,将数据中心之间的链路利用率提升至接近100%,成效显著。

SDN在政企网络中的应用

政府及企业网络业务类型多,网络设备功能复杂、类型多,对网络的安全性要求高,需要集中的管理和控制,网络灵活、定制化需求多。

SDN转发与控制分离的架构,使得网络设备通用化、简单化,将复杂的业务功能剥离,由上层应用服务器实现,不仅可以降低设备硬件成本,更可使得企业网络更加简化,层次更加清晰。同时,SDN控制的逻辑集中,可以实现企业网络的集中管理与控制,企业的安全策略集中部署和管理,更可以在控制器或上层应用灵活定制网络功能,更好满足企业网络的需求;由于企业网络一般由企业自己的信息化部门建设、管理和维护,具有封闭性,可统一规划、部署和升级改造,SDN部署的可行性高。

SDN在电信运营商网络的应用

电信运营商网络包括宽带接入层、城域层、骨干层,具体的网络还可分为有线网络和无线网络,存在多种方式,如传输网、数据网、交换网等。总的来说,电信运营商网络具有覆盖范围大、网络复杂、网络安全可靠性要求高、网络制式多、多厂商共存等特点。

SDN的转发向控制分离特点,可有效实现设备的逐步融合,降低设备硬件成本。SDN的控制逻辑集中特点,可逐步实现网络的集中化管理和全局优化,有效提升运营效率,提供端到端的网络服务;SDN的网络能力虚拟化和开放化,也有利于电信运营商网络向智能化、开放化发展,发展更丰富的网络服务,增加收入。

但是,SDN技术目前尚不够成熟,标准化程度也不够。大范围、大量网络设备的管理问题、超大规模SDN控制器的安全性和稳定性问题、多厂商的协同和互通问题、不同网络层次/制式的协同和对接问题等均需得到解决。目前SDN技术在电信运营商网络大规模应用还难以实现。然而,可在局部网络或特定应用场景逐步使用,如移动回传场景、分组与光网络的协同场景等。

SDN在互联网公司业务部署中的应用

SDN即软件定义网络,然而笔者认为SDN的研究重点不应放在软件如何定义网络,而应在于如何开放网络能力。网络的终极意义在于为上层应用提供网络服务,承载上层应用。NaaS是网络的最终归宿。 互联网公司业务基于SDN架构部署,将是SDN的重要应用场景。

SDN具有网络能力开放的特点,通过SDN控制器的北向接口,向上层应用提供标准化、规范化的网络能力接口,为上层应用提供网络能力服务。

ICP/ISP可根据需要获得相应的网络服务,有效提升最终用户的业务体验。

SDN转发和控制分离的特点可有效降低设备硬件成本;控制逻辑集中的特点可使得网络具有全局的视图实现全局优化,实现多网融合和集中管控;网络能力开放化可促进更多的业务创新和网络服务创新。这三大驱动力推动着SDN的发展,也使得SDN有着众多的应用场景。

SDN的未来

SDN的未来可以说说:充满希望,但并无定数。在推进SDN的过程中,技术问题不断的克服,渐渐地我们还需要解决一些用户习惯,用户心理等问题。目前的状态是,大家都相信SDN能有所作为,但是并不愿意去部署SDN。第一是因为这需要学习一整套的知识,第二是因为效果并得不到保障。目前很多功能,SDN能是实现的,传统的设备也可以实现。用户的思维模式需要一定的时间去改变。同时我们的技术还有待成熟,版本统一,设备互通等工作还有待进一步的完善。

未来SDN会崛起,会在许多场合应用,但是SDN不会一统网络,这是业界共识。当然协议也不会仅仅是OpenFlow一种,但是OpenFlow会有一席之地。控制器也会百花齐放,如古老的pox,floodlight,以及新生代ODL,contrail,以及未来不可预见的其他控制器的诞生,将给SDN带来更多的生机。 随着技术的进步,功能的完善,现有网络的架构将会承受中大的冲击,也许不会是革命,诞生绝对是大力量的改革。

后续

写到这里,我想我写这篇小论文的目的达到了。在搜索资料的过程中,我认真地学习了SDN的发展历程,思考了SDN的现状与未来,相比以前的一无所知,我现在算有了一个大题的感知。这也算是这篇小文章的作用吧。倒是有一点需要澄清,文中许多篇幅都是在查资料的时候阅读到的,觉得讲得合理,就引用了。如发展史,现状的段落。其他的如思考,未来等篇幅,均为原创。

参考资料

[1]斯坦福大学Clean Slate项目网站, http://cleanslate.stanford.edu/

[2] Ethane项目首页,http://yuba.stanford.edu/ethane/

[3] Sane项目首页,http://yuba.stanford.edu/sane/

[4] OpenFlow: EnablingInnovation in Campus Networks, www.openflow.org/documents/openflow-wp-latest.pdf

[5] TechnologyReview网站关于2009年十大前沿技术的评选,http://www.technologyreview.com/article/412194/tr10-software-defined-networking/

[6] Software DefinedNetworking: The New Norm for Networks,https://www.opennetworking.org/images/stories/downloads/white-papers/wp-sdn-newnorm.pdf

[7] Open Networking Summit2012日程安排,http://opennetsummit.org/speakers.html

[8] 思科的SDN纠结 – 专家解读思科ACI http://www.sdnap.com/sdn-technology/3387.html

[9]SDN的应用场景分析与探讨 http://www.sdnap.com/sdn-study/1346.html


Comments