软件定义网络架构研究与实践

时间:2022-07-22 11:37:54

软件定义网络架构研究与实践

中图分类号:TN915.03; TP393.03 文献标志码:A 文章编号:1009-6868 (2013) 05-0011-005

通过分析SDN的研究背景,阐述了SDN由应用层、控制层、基础设施层组成的3平面架构;基于OpenFlow的实现方案和以Juniper、思科等公司解决方案为代表的其他实现方案,对SDN架构的实现进行了探讨;从科研和商业化的角度出发,展示了最新的基于SDN架构的实践与应用。

软件定义网络;平面架构;OpenFlow协议

In this paper, we discuss the architecture of software-defined networks. This architecture comprises application layer, control layer, and infrastructure layer. We also discuss the implementation of OpenFlow-based programs and other solutions proposed by Cisco and Juniper. We discuss the research into and commercialization of the latest practical SDN applications.

software-defined networks; plane architecture; OpenFlow

网络虚拟化以及云服务的出现,推动了互联网产业对传统网络架构的重新审视,带来了互联网新的发展趋势,从主动网络架构、开放架构网络体系、ForCES架构,到可重构网络体系、一体化网络体系、软件定义网络(SDN)等,全球研究机构均在探索适应于未来网络业务的具有良好可扩展性和智能性的新型网络体系。其中ForCES基本架构提出的转发与控制分离思想得到了广泛认可,并成为中国可重构网络研究团队和国际SDN研究团队的基础。SDN是由美国斯坦福大学Clean Slate研究组提出的一种新兴的网络架构,其核心思想是基于控制和转发相分离的思路,实现了网络和业务的可编程。自2011年以来,SDN已经逐步成为通信界最热门的词语之一,同时,被列为影响未来10年的10项技术之一,得到了学术界和工业界的广泛认可,成为引领未来网络发展方向的研究内容之一。

SDN的基本内涵就是一个开放可编程网络,该网络通过软件定义(或软件驱动)方式就可实现网络资源的动态管理。基于此,用户可通过编程动态构建各种特性的数据转发网络,以实现各类网络对各种应用的承载需求,进而便于用户实现类似虚拟化、数据中心网络等新型应用。

1 研究背景

传统互联网中,数据转发与控制逻辑紧耦合,导致网络控制功能复杂,阻碍了新技术在控制层面的部署,使得控制层面的灵活性和扩展性很难适应网络的飞速发展。SDN的核心理念是控制与转发分离,具有前所未有的可编程性、自动化以及网络控制能力,确保了网络的高度可扩展、灵活,提高了网络的创新能力。SDN的前身来源于斯坦福用于企业集中安全控制的Ethane项目[1]及其前一个项目SANE[2]。

SANE是斯坦福大学2006年提出的一种面向企业网的安全管理架构。SANE的主要特点在于定义了一个保护层,该保护层位于链路层和网络层中间,由一台逻辑中央服务器控制,用于管理所有路由和接入控制决策。SANE在设计时,遵循4D架构的设计原则,如图1所示。通过全局网络视图,决策平面做出网络控制决策,并直接下发给数据平面;数据平面根据决策平面的指令,实现对网络层目标的直接控制;分发平面在决策平面和数据平面之间建立可靠的通信通道;发现平面负责发现网络中的物理组件,并为决策平面提供构建网络视图的基本信息。

2007年,Casado等人对SANE的功能进行了扩展,提出了Ethane架构。Ethane在网络管理中添加了安全管理策略,扩充了中央控制器的管理功能,实现了更细粒度的流表转发策略。Ethane网络主要由中央控制器和Ethane交换机两个部件构成。中央控制器是网络的控制决策层,实现了网络主机认证、IP分配和交换机流表生成等基本功能。Ethane交换机则作为一个数据转发单元,根据控制器产生的流表进行数据转发。

现有网络路由器同时包含数据转发和控制决策两种功能,复杂性太高,导致灵活性和可扩展性不够。在SANE和Ethane两个项目基础上,面对目前日益增长的带宽需求,Casado提出了分组交换网络软硬件功能分离的思想[3],即用软件来实现控制决策,而硬件只缓存这些决策,专注于数据的转发。这种软硬件功能分离的思想,明确了软件层来做决策和硬件层控制分组转发的设计思路。

在上述相关工作的基础上,斯坦福大学的Nick Mckeown教授等提出了OpenFlow技术[4],为网络设备中的数据转发和路由控制两个功能进行分离提拱了一种实现协议。OpenFlow通过集中式的控制器以标准化的接口对各种网络设备进行管理和配置。OpenFlow技术后经由Clean-State项目推广,以及在全球网络创新环境(GENI)项目中的应用,逐渐扩展并发展成为了SDN。

2 SDN架构

SDN的概念最早由开放网络基金会(ONF)[5]在2010年提出。通过SDN,现有的静态网络可以演变成一个可扩展的服务交付平台,能够快速响应不断变化的业务、用户和市场需求。通过将转发平面与控制平面分离,SDN能够将网络抽象为一个逻辑或虚拟实体,并且可以提供标准化的、开放的控制接口。分离后的控制平面可以运行在外部调用控制接口,并根据全局的网络视图,实现更加灵活的控制能力。ONF的SDN技术白皮书[6]给出了SDN架构的逻辑视图,如图2所示。

在SDN架构中,最上层为应用层,包括了各种不同的业务和网络应用。应用层根据网络不同的应用需求,调用与控制层相接的应用编程接口(API),实现不同功能的应用程序。利用API接口,业务应用可以充分利用网络的服务和能力,并在一个抽象的网络上进行操作,实现常见的网络服务,包括路由、组播、安全、访问控制、带宽管理、流量工程、服务质量、处理器和存储优化、能源使用以及各种形式的政策管理,量身定制以满足业务目标。

SDN的控制层由控制软件实现,摆脱了硬件设备对网络控制功能的束缚,主要负责集中维护网络拓扑及网络状态信息,实现不同业务特性的适配。利用控制数据平面接口,控制层可以对底层网络设备的资源进行抽象,获取底层网络设备信息,生成全局的网络抽象视图,并通过API接口提供给上层应用。其结果是,对于上层应用程序来说,网络呈现为一个单一的逻辑开关。通过这种软件模式,网络管理人员可以灵活配置、管理和优化网络资源,实现了网络的可编程及灵活可控。

基础设施层由网络的底层转发设备构成,包含了特定的转发平面抽象。在SDN中,网络设备只负责单纯的数据转发,降低了对网络设备硬件的要求。

在SDN架构下,通过软件的更新即可实现网络功能的升级,无需再针对每一个硬件设备进行配置,通过网络服务和应用程序的形式可直接部署实现网络配置,加速了网络部署周期;同时,通过SDN控制软件的集中化控制,研究者、企业和运营商可从一个单一的逻辑点获得全网控制权,极大地简化了网络的设计和运行,从而加速了网络创新周期。此外,SDN架构使网络设备从封闭走向开放,网络设备不再需要理解和处理成千上万的协议标准,极大地简化了底层网络设备的功能,有效降低了网络复杂度及网络构建成本。

3 SDN实现方案

3.1 基于OpenFlow的实现方案

OpenFlow作为SDN的原型实现方式,虽然只是SDN控制平面和数据平面之间多种通信协议之一,但已被看作是SDN通信协议事实上的标准。基于OpenFlow实现的SDN架构主要包括控制器和OpenFlow交换机两部分,如图3所示。

控制器以软件平台的方式存在,并对全局网络拓扑具有可见性和可控性。同时,借助于开放的协议,控制器可以对不同交换机中的数据流表进行编程,以决定每个数据包的流向,并能够实现特殊网络设备才具有的一些功能,例如防火墙、负载均衡器等。

在控制器中,由网络操作系统(NOS)实现控制逻辑功能。NOS是网络实现可编程控制的中央执行单元,即SDN架构中的控制软件,通过在NOS之上运行不同的应用程序能够实现不同的逻辑管控功能。基于OpenFlow的SDN控制器已有诸如NOX[7]、Onix[8]、POX[9]等多种平台。

OpenFlow交换机由一个或多个流表、一个组表以及安全通道组成。控制器通过OpenFlow协议来管理交换机。组表负责数据包的查找和转发。安全通道用于连接OpenFlow交换机和控制器,使OpenFlow交换机和控制器之间的数据、配置信息和指令可以基于SSL进行安全传输。

OpenFlow交换机采取流的匹配和转发模式,匹配过程从第一个流表开始。流表包含了多个流表项,数据包按照流表项的优先级进行匹配,若匹配到一个流表项,则执行与该流表项对应的指令。根据OpenFlow协议,针对流表中的流表项,控制器可以完成增加、更新以及删除等操作。

3.2 Juniper、思科和中国的实现方案

基于OpenFlow的SDN技术引起了包括IETF、Google、HP、Junifer等各大研究机构以及公司的重视,但在实际应用中,基于OpenFlow的SDN技术仍在存在一些问题:

(1)单纯的基于一个转发表特性的OpenFlow技术不能达到实现网络软件定义的需求。OpenFlow1.x所基于的固定的转发表格式不能很好地描述多个网络层面(二层、三层甚至应用层)各种类型的转发表,描述过程效率较低,为了保持通用性,固定格式的表需要保存大量冗余表域。

(2)控制平面的可扩展性问题。OpenFlow设计之初,仅需通过单控制器来实现网络的管控功能。然而,随着网络规模的增大和业务需求的增加,需要研究控制平面的可扩展性解决方案,即多控制器解决方案。如何实现控制单元之间网络状态(包括拓扑、传输能力、路由限制等)的协同和交互,以保证网络状态的一致性和可扩展性,还需要进行大量深入的研究工作。

因此,除了试图通过升级OpenFlow(拟定义为OpenFlow 2.0)来实现以上需求,多家研究机构及公司提出了不同的SDN实现方案。Google提出了一种基于模块化描述的类似于ForCES虚拟化建模方法的实现思想[10];在IETF内,Ericsson[11]在IETF ForCES工作组倡导使用ForCES的抽象建模和协议控制基本思想来实现SDN技术。其他具有影响的业界企业如Juniper、思科等也有不同的战略计划。

Juniper的SDN战略突出点在于将网络软件分成4个平面——管理、服务、控制和转发,并在网络中优化每个平面[12]。Juniper重点强调SDN软件方面,将服务软件从硬件中抽象出来创建网络和服务虚拟机,在服务器上加以托管,并利用集中控制器在软件中启用服务链或根据业务需求连接各设备上的服务。同时,Juniper提供了新的许可证模式,允许软件许可证在Juniper设备和标准服务器之间的转让,使得客户可以根据实际使用情况决定购买规模。

思科推出的实现方案是开放网络环境(ONE),ONE方案中包含众多的API、和控制器,意图将可编程性注入其三大操作系统——IOS、IOS XR和NX-OS之中。

ONE通过开放控制和充分利用转发平面,允许使用人员利用多种协议对网络进行编程,而不仅仅只支持OpenFlow。ONE方案中包括One Platform Kit(OnePK)和Nexus 1000V交换机。OnePK可以为开放人员提供跨思科的各种路由器和交换机操作系统的应用编程接口;Nexus 1000V可用作虚拟覆盖网络的基础设备,用于多用户云部署。

中国在该方向的研究中,“973”计划支持的可重构网络研究团队提出了一种可重构信息通信基础网络体系架构,在基于转发与控制分离思想的基础上,提出网络传输资源和节点资源(包括硬件资源)均可以根据实际业务需求通过软件控制进行重构的思想,并已经取得了实用性成果,在转发与控制分离技术、网络资源感知与重构、网络规模扩展时多控制器之间的协同、路由寻址、网络重构机理、可重构路由器开发等方面进展迅速,并在上海开展了应用示范。

4 SDN的实践应用

SDN一经提出就受到了特别关注,甚至被视为未来网络的最终解决方案之一[13]。在学术界,有关SDN架构的实现方法呈现出一种百花齐放的研究状态,而在商用领域,SDN架构的商用化进程也得到了加速发展。

4.1 科研实践

清华大学提出了一种用于SDN的操作系统的实现方法TUNOS[14]。为了增加可扩展性、鲁棒性、灵活性以及提高性能,从设备控制能力以及网络控制能力的角度出发,TUNOS提供了开放的设备管理、认知网络状态、全局网络视图、虚拟转发空间以及应用(APP)管理功能;同时为了增强用户的网络可编程性,TUNOS设计了通用的网络控制API接口。TUNOS结构如图4所示。

TUNOS通过控制数据平面接口为网络设备提供控制功能,设备控制功能包括开放设备管理以及网络状态认知。同时,TUNOS通过上层API接口为网络协议层提供控制功能,网络控制功能包括全局网络视图、虚拟转发空间以及APP的管理。

Soheil Hassas Yeganeh等人提出了一种SDN网络高效可升级的控制应用卸载框架KANDOO[15],如图5所示。KANDOO包括两个控制层:底层控制层包括一组没有互联的控制器,不接收网络状态信息;顶层控制层是逻辑中心控制器,用于维护网络状态。底层控制层中的控制器只运行本地控制应用(例如使用单交换机状态的应用),这些控制器处理了大部分的频发事件,使得这些事件不会到达顶层控制层。顶层是可扩展性方面仅有的潜在“瓶颈”。KANDOO能够保证网络使用人员根据需要替换本地控制器,并减轻顶层的负载。

除此之外,中国国防科技大学提出了基于LabelCast的SDN模型,并已经实现了相关的原型系统和开发支持工具[16]。

Andrew D. Ferguson等在SDN网络的分级策略[17]一文中提出了等级流表,在SDN网络框架下实现了分等级的策略。

Andreas Voellmy提出了一种高层网络控制语言Procera[18],试图解决OpenFlow原型系统中缺乏可配置接口问题。Ramya Raghavendra等提出了一种基于SDN云网络管理的初步动态图查询方法。

4.2 商用实践

2012年见证了SDN在商用领域的重要发展,全球芯片以及设备厂商、互联网企业和运营商均加大了对SDN研究的投入,并提出相应的SDN解决方案。SDN商用化进程加速。

在芯片制造方面,全球多家主流芯片厂商推出了支持OpenFlow协议的新功能芯片,开始推进SDN的大规模商用。其中,Intel的芯片产品FM6000首先加入了对OpenFlow优化的硬件支持;中国企业中,盛科推出了支持适配OpenFlow1.0的芯片产品。

在设备制造方面,Cisco公司成立了内部子公司Insieme,专用于SDN相关产品研发;阿尔卡特朗讯了其SDN产品战略规划,包括对用于局域网(LAN)、广域网(WAN)和数据中心运行的路由器和交换机的实时应用程序进行调整和优化转发;Juniper的QFabric引入了OpenFlow作为其控制协议,在中国,信息工程大学、国防科技大学均已经研制成功功能相近甚至更灵活的可重构路由器。

在运营商方面,包括NTT DoCoMo、Verizon等在内的国际电信运营商充分利用SDN在数据中心建设方面的独特优势,利用OpenFlow协议构建了全新的数据中心网络架构。

与此同时,互联网企业也开始将SDN架构进行商用。Google宣布已经在其内部骨干网实现了SDN的全面部署,百度也推出了基于SDN架构的产品Traffic Engineering系统。此外,腾讯、阿里巴巴、新浪等几家中国互联网巨头也都已经对SDN进行了相关研究。

5 结束语

相对于传统网络架构难以有效应对用户对移动性、虚拟化服务以及业务快速响应的需求,SDN可以大幅度精简现有的网络设备和网络结构,提高了网络灵活性,将传统网络转变成智能化的技术和业务创新平台。这些诸多优势使SDN受到了科研机构以及商业应用的广泛关注,得以快速发展。然而在SDN的应用过程中还存在着未曾很好解决的问题,制约着其发展:

(1)SDN从提出至今,经历了较长的标准化过程,然而由于应用需求的不同,各大研究机构和主要设备厂商以SDN架构为基础,提出了不同的实现方案。不统一的标准使得SDN设备通用性较差。从长远的角度来看,统一的标准可以为SDN的发展提供良好的环境,标准统一化进程势在必行。

(2)现有SDN方案的管理和安全功能主要集中在接入控制、流量转发和负载均衡等方面,在安全性机制设计、异常检测等方面都缺乏深入的研究。网络管理和安全是SDN架构实际应用中最重要的标准之一,如何提供良好的安全性仍然是SDN研究的重点。

上述两个问题是SDN发展过程中具有代表性的研究点,在面向真实网络的部署过程中,性能优化、可扩展性、分布式控制等需求同样需要重新考虑。从目前的研究和应用来看,基于SDN的技术在学术界和产业界仍处在发展阶段,进一步深入的研究对于未来互联网的发展具有深远的影响。

参考文献

[1] CASADO M, FREEDMAN M J, PETTIT J, et al. Ethane: Taking control of the enterprise [C]//Proceedings of the Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications (SIGCOMM 2007), Aug 27-31, 2007, Kyoto, Japan. New York, NY, USA:ACM, 2007:12.

[2] CASADO M, GARFINKEL T, AKELLA A, et al. SANE: A protection architecture for enterprise networks [C]//Proceedings of the 15th Conference on USENIX Security Symposium (USENIX'06), May 30-June 3, 2006, Boston, MA, USA. Berkeley, CA, USA: USENIX Association, 2006:137-151.

[3] CASADO M, KOPONEN T, MOON T, et al. Rethinking packet forwarding hardware [C]//Proceedings of the 7th ACM Workshop on Hot Topics in Networks (HotNets’08), Oct 6-7, 2008, Calgary, Canada. New York, NY, USA:ACM, 2008:6.

[4] MCKEOWN N, ANDERSON T, BALAKRISHNAN H, et al. OpenFlow: Enabling innovation in campus networks [J]. ACM SIGCOMM Computer Communication Review, 2008, 38(2): 69-74.

[5] Open Networking Foundation (ONF) [EB/OL]. [2012-11-17]. https:///.

[6] Software defined networking: The new norm for networks [EB/OL]. [2012-11-17]. http:///images/stories/downloads/white-papers.

[7] GUDE N, KOPONEN T, PETTIT J, et al. Nox: Towards an operating system for networks [J]. ACM SIGCOMM Computer Communication Review, 2008,38(3):105-110.

[8] KOPONEN T, CASADO M, GUDE N, et al. Onix: A distributed control platform for large-scale production networks [C]//Proceedings of the 9th USENIX Symposium on Operation Systems Design and Implementation (OSDI'10), Oct 4-6, 2010, Vancouver, Canada. Berkeley, CA, USA: USENIX Association, 2010:351-364.

[9] POX [EB/OL]. [2012-11-17]. http:///pox/about-pox/.

[10] YADAV N, COHN D, CRABBE E. OF1.2 Extensibility Proposal [EB/OL]. [2012-11-17]. https:///presentation/d/1LDSQbqNFAW4JGYH72ntP4rwwv850cMRqEfCLK5JnBvY/edit#slide=id.i0.

[11] HALEPLIDIS E, HALPERN J. ForCES packet parallelization [C]//IETF 85 Meeting Presentation, Nov 2012.

[12] DEVLIC A, JOHN W, SKOLDSTROM P. A use-case based analysis of network management functions in the ONF SDN model [C]//Proceedings of the 2012 European Workshop on Software Defined Networking(EWSDN’12), Oct 25-26, 2012, Darmstadt, Germany. 2012: 85-90.

[13] FENG T, BI J, HU H. TUNOS: A novel SDN-oriented networking operating system [C]//Proceedings of 20th IEEE International Conference on Network Protocols (ICNP’12), Oct 30-Nov 2,2012, Austin, TX, USA. Piscataway, NJ, USA: IEEE, 2012:2.

[14] YEGANEH S H, GANJALI Y. Kandoo: A framework for efficient and scalable offloading of control applications [C]//Proceedings of the 1th ACM Workshop on Hot Topics in Software Defined Networks (HotSDN’12), Aug 13, 2012, Helsinki, Finland. New York, NY, USA:ACM, 2012: 19-24 .

[15] 吕高锋, 孙志刚, 李韬, 等. LabelCast:一种普适的SDN转发平面抽象 [J]. 计算机学报, 2012,35(10):2037-2047.

[16] FERGUSON A D, GUHA A, LIANG C, et al. Hierarchical policies for software defined networks [C]//Proceedings of the 1th ACM Workshop on Hot Topics in Software Defined Networks (HotSDN’12), Aug 13, 2012, Helsinki, Finland. New York, NY, USA:ACM, 2012:37-42.

[17] VOELLMY A, KIM H, FEAMSTER N. Procera: A language for high-level reactive network control [C]//Proceedings of the 1th ACM Workshop on Hot Topics in Software Defined Networks (HotSDN’12), Aug 13, 2012, Helsinki, Finland. New York, NY, USA:ACM, 2012:43-48.

[18] RAGHAVENDRA R, LOBO J, LEE K W. Dynamic graph query primitives for SDN-based cloudnetwork management [C]//Proceedings of the 1th ACM Workshop on Hot Topics in Software Defined Networks (HotSDN’12), Aug 13, 2012, Helsinki, Finland. New York, NY, USA:ACM, 2012: 97-102.

上一篇:游戏:HTML5商业化应用的急先锋 下一篇:一种面向多样化网络业务融合的SDN网络架构