当前,网络已经成为支撑现代社会发展以及技术进步的重要基础设施之一,它深深地改变了人们的生产、生活和学习方式;然而,传统网络架构越来越不能满足当今企业、运营商以及用户的需求。传统互联网由极其复杂的交换机、路由器、终端以及其他设备组成,这些网络设备使用着封闭、专有的内部接口,并运行着大量的分布式协议。在这种网络环境中,对于网络管理人员、第三方开发人员(包括研究人员),甚至设备商来说,网络创新都是十分困难的。
例如,研究人员不能够验证他们的新想法;网络运营商难以针对其需求定制并优化网络,难以使得他们的收益最大化;甚至对于设备商来说,也不能及时地创新以满足用户的需求。
封闭的网络设备所带来的结果是:网络依旧面临着诸多问题与挑战,如安全性、健壮性、可管理性以及移动性等等;网络维护成本仍然居高不下,网络管理需要大量的人工配置等等。
近年来,逐渐兴起的SDN 正试图打破这种僵局,并成为了近年来学术界和工业界讨论的热点。
1 SDN的架构
1.1 SDN 架构的特点
SDN是软件定义网络的简称,其核心理念是使网络软件化并充分开放,从而使得网络能够像软件一样便捷、灵活,以此提高网络的创新能力。通常意义上来讲,SDN 是指从发展而来的一种新型的网络架构,其前身是斯坦福的用于企业集中安全控制的Ethane 项目[2]。
2008年斯坦福大学的Nick Mckeown 教授将其命名为OpenFlow,后经由斯坦福项目推广,以及在大型网络- 全球网络创新环境(GENI) 项目中的应用,该概念被逐渐扩展并成为了。
图1 描述了SDN 架构的逻辑视图。SDN 的基本网络要素包括:逻辑上集中的SDN 控制器,它是基于软件的控制器,负责维护全局网络视图,并且向上层应用提供用于实现网络服务的可编程接口(通常也称为“ 北向接口”);控制应用程序,该程序运行在控制器之上,通过控制器提供的全局网络视图,控制应用程序可以把整个网络定义成为一个逻辑的交换机,同时,利用控制器提供的应用编程接口,网络人员能够灵活地编写多种网络应用,如路由、多播、安全、接入控制、带宽管理、流量工程、服务质量等;转发抽象,转发抽象通常称为“ 南向接口”,SDN 控制器通过利用SDN提供的转发平面的网络抽象来构建全局网络视图。
由此可知SDN 的基本特征:
控制与转发分离。转发平面由受控转发的设备组成,转发方式以及业务逻辑由运行在分离出去的控制面上的控制应用所控制。
控制平面与转发平面之间的开放接口。SDN 为控制平面提供开放的网络操作接口,也称为可编程接口。通过这种方式,控制应用只需要关注自身逻辑,而不需要关注底层更多的实现细节。
逻辑上的集中控制。逻辑上集中的控制平面可以控制多个转发面设备,也就是控制整个物理网络,因而可以获得全局的网络状态视图,并根据该全局网络状态视图实现对网络的优化控制。
#p#
1.2 SDN的实例——OpenFlow
提到SDN,必然要涉及控制平面与转发平面之间的接口定义,作为架构中控制平面与转发平面之间转发抽象定义的第一个实例,协议在提出的初期就受到业界的广泛关注,后经过GENI 项目的推进以及多家IT/互联网企业的参与,现已形成强大的产业联盟。因此,业界普遍选择OpenFlow 协议作为中控制平面与转发平面之间的通信接口,并围绕其建立一系列的网络操作系统、控制应用以及相关的组件等。
OpenFlow 的成功与其简单高效的特点密不可分。OpenFlow 架构十分简洁,如图2 所示,OpenFlow 交换机由内部转发流表以及用来与外部控制器进行通信的安全通道组成。为了使远端的控制应用能够对转发平面的网络设备进行编程,OpenFlow 协议指定了一系列基本操作。通过,SDN 控制应用可以直接访问并操控转发平面中的网络设备,交换机则使用流表流水线来进行数据包匹配与数据包转发。
如图3 所示,OpenFlow 交换机中的每个流表中含有多条流表项,每条流流表项由匹配域、优先级、统计域以及一系列的转发指令组成。控制器可以利用OpenFlow 协议对这些流表项进行添加、删除或者修改操作,当数据包匹配到某个流表项时,该表项对应的指令集合将被触发。OpenFlow 支持最基本的动作,包括转发、丢弃、群组操作、入队以及加/去标签等。OpenFlow 通过对网络中“ 流”的控制来达到对网络进行灵活控制的目的。
此外,OpenFlow 支持的多种控制方式也有利于其在多种网络环境中的部署。首先,基于OpenFlow 的完全不会受网络规模的影响,分布式控制器能够很好地提高网络的可扩展性。其次,OpenFlow 中对“流”的定义十分灵活,这也就使得能够对网络进行更灵活的控制。例如,在需要进行细粒度控制的网络场景中,可以逐流建立流表项并通过逐微流的精确匹配实现对网络的精确控制;在流量较大的网络环境中,可以使用通配流表来对汇聚流进行转发,降低流表项数目对转发节点内存空间的冲击。
最后,控制平面建立流表项的方式也十分灵活。控制平面既可以被动地建立流表项,由新流来触发流表项的建立,也可以主动地建立流表,提前对转发设备的转发行为进行配置,从而提高转发效率。OpenFlow 细粒度的、基于流的转发能力,使得网络控制变得十分灵活,使其能够实时地对网络应用、用户、会话的需求做出不同的响应。
#p#
1.3 SDN网络虚拟化工具
——FlowVisor
网络虚拟化是未来网络的发展方向之一。在基于OpenFlow 的中,FlowVisor 能够有效地实现网络虚拟化。
FlowVisor是一个特殊的控制器,主要作为OpenFlow 交换机与多个OpenFlow 控制器之间的透明代理。FlowVisor 可以将物理网络分成多个逻辑网络,也称为网络分片,并为网络管理人员提供广泛定义的规则以实现对网络的管理。FlowVisor通过抽象层来分割物理网络,它位于一组交换机和SDN 或多个网络之间,可管理带宽的使用、CPU 利用率的管理统计和流表的配置等,这十分类似于管理程序位于服务器硬件和软件之间,以支持多个虚拟操作系统的运行。正如管理程序依赖于标准x86 指令来虚拟化服务器一样,FlowVisor 使用标准OpenFlow 指令集来管理交换机。由于所有这些规则都是通过流量表定义的,因此,无论是从带宽还是CPU 使用率来看,网络虚拟化几乎没有增加额外的开销。
目前FlowVisor 已经被部署在美国各地的一些大型校园网中(例如斯坦福)。两个以研究为重点的大型网络GENI 和Internet 2 上也在使用进行网络虚拟化的管理。
2 SDN的发展与应用
2.1 SDN 广受关注
当前,SDN 已逐渐成为了学术界、工业界以及标准化组织广泛关注并讨论的热点。
在学术界方面,近年来,世界各国纷纷开展了围绕着SDN 的科研项目。美国科学基金会(NSF)支持的计划[4] 在OpenFlow 发展的初期就率先对OpenFlow 予以了资金支持并实施了“GENI Enterprise”计划。目前,OpenFlow 已经在美国多所高校、以及其他的多个科研机构中得到部署。欧盟第七框架计划也于2010 年开始支持SDN 的相关研究,并支持了OFELIA[5] 、SPARC[6] 以及等研究项目。2012 年4 月,领域中又诞生了一个新的研究机构:美国斯坦福大学与伯克利大学联合12 家公司成立了开放网络研究中心(ONRC)[8],其中包括了Cisco、、华为及Juniper 等网络公司。目前,SDN 的相关研究已经遍布全球的各个角落,比较有影响力的研究机构包括斯坦福大学、普林斯顿大学、康乃尔大学、多伦多大学、巴西CPqD、爱立信研究中心、NEC 研究中心、研究中心、德国电信T-Labs 研究中心等等。于此同时,SDN/OpenFlow 也在多个国家得到部署,主要包括:美国、巴西、加拿大、德国、英国、意大利、西班牙、日本等。
SDN在得到学术界的普遍认可的同时,工业界也对这种新的网络架构表达出浓厚的兴趣。从推出开始,NEC 公司就对OpenFlow 的相关硬件进行了跟进性的开发,并推出了多款支持OpenFlow 协议的交换机。此外,HP、 Junifer、pronto 等公司也相继推出了支持OpenFlow 的交换机、路由器、无线网络接入点(AP)等网络设备。2011 年,开放网络基金会成立[9],专门负责OpenFlow 标准和规范的维护和发展,并召开了第一届开放网络峰会,为OpenFlow 和SDN 做了很好的介绍和推广,该基金会成员基本涵盖了所有网络及互联网领域的商业巨头。在2012 年初召开的第二届开放网络峰会上,Cisco 宣布投入亿美元于一个专门致力于SDN 产品研发的内部创业公司Insieme;宣布已经在其全球各地的数据中心骨干网络中大规模地使用。最近,Facebook 也宣布在其数据中心中使用了OpenFlow/SDN 技术。
在标准化方面,开放网络基金会(ONF)致力于推动SDN 技术的标准化和商业化,已于2012 年4 月发布了协议的最新v1.3 版本。此外,作为互联网协议标准的主要制订者,互联网工程任务组(IETF)也在积极开展SDN 的相关工作。2011 年月IETF 第82 次会议上的SDNP BoF 吸引了包括运营商以及设备商在内的多人参加,主要讨论了SDN 的需求、架构以及典型的应用场景。在第84 次会议上,SDN 更是成为技术全会的热门话题,Cisco、以及马里兰大学分别进行了相关的主题演讲。此外,负责进行互联网演进相关的相对长期性研究的互联网研究任务组(IRTF),也于会议上举行了SDNRG 会议,并引起的极大关注。
#p#
2.2 SDN发展迅速
经过了几年的发展,SDN 的相关技术正呈现着百花齐放的发展态势。
在控制平面方面,从第一个控制器平台NOX 开始,业界已逐渐出现一系列的基于OpenFlow 的网络控制器平台。这些控制器平台在向下封装与交换机通信的OpenFlow 协议的同时,也向上层网络控制应用提供相对更高层的开放编程接口。当前主流的控制器平台主要包括:NOX,,Onix,Floodlight,Beacon 以及等。
在转发设备方面,SDN 的转发设备已不再局限于有线转发设备。支持OpenFlow 的转发设备能够部署在更广阔的网络环境中,如适用于虚拟环境的Open vSwitch 以及能够工作在无线环境中的Pantou 等。于此同时,随着设备厂商的加入,支持的转发设备也正逐渐从基于软件的转发设备向基于高速硬件的转发设备过渡。
在控制平面与转发平面的通信接口方面,开放网络基金会ONF 于年6 月发布了Openflow v1.3 版本。与早期版本相比,新版本的协议更加灵活。除了保留版本中对多级表、群组表、标签以及虚端口等特性的支持,以及OpenFlow v1.2 版本中对IPv6 以及可扩展匹配的支持之外,版本规范了基于参数类型、长度和数值(TLV)的能力表达框架,还增加了对逐流计量以及IPv6 扩展头处理等功能的支持。OpenFlow v1.4 版本的标准化工作计划也将在2013 年上半年完成。
随着SDN 相关技术研究的不断深入,其研究活动主要可以在以下方面展开:
(1)SDN 控制应用的研究。
这种开放的网络架构能够用于多种网络环境中,不同场景中SDN 控制应用需要从不同的网络环境特点出发,因地制宜,合理有效地进行有针对性的控制应用设计。
(2)SDN 网络抽象。在SDN 架构中,控制器平台向上层控制应用提供高层抽象应用程序编程接口(API),也称为“ 北向接口”。现有的控制器平台实现已经提供了一些基本的抽象,然而利用基本抽象来编写网络控制程序往往也是比较复杂并且容易出错,如何去设计更高层的网络编程抽象也是一个需要解决的问题。当前,业界比较认可的编程API 需求有提供通用的编程抽象,能够支持多种网络环境中的不同的网络控制功能;提供高层抽象,使编程人员能够更容易地控制网络;提供分布式抽象,以支持网络和应用的可扩展性,使程序的编写不受底层网络分布式结构的束缚;提供支持模块化的控制程序;提供可移植性,使控制程序能够得到最大限度的重用等等。
(3)SDN 调试及排错技术。由于的行为完全由软件决定,与所有程序一样,这些控制程序同样会存在一定的漏洞,验证网络行为与控制策略的一致性也成为了现阶段的重要问题。
当前的解决方案有:利用模型校验以及符号执行去验证控制器代码的正确性;利用断点及数据包回溯技术来对SDN 进行排错;以及通过对数据平面配置的静态分析来检查网络的联通及隔离错误等等。
(4)分布式控制平面的设计。虽然OpenFlow 支持分布式控制,但将网络智能逻辑上集中化之后所带来的可用性、可扩展性等问题仍需完善。
在分布式SDN 架构中,控制器之间的信息复制决定了系统的可扩展性,在信息全复制的情况下,整个系统将很快会陷入系统瓶颈,因此需要对网络中各种信息的更新频率进行更为精确的分析,从而能够给出较为有效的解决方案。
(5) 硬件优化技术。利用的特性来对转发硬件进行优化,OpenFlow 协议从v1.1 版本之后将转发面抽象成多级流水线,十分类似于当今交换机ASIC 以及网络处理器的结构。那么,如何在不过分增加转发硬件复杂度的前提下,尽可能地提高转发平面的可编程能力(如可定义的表/流水线结构)也是一个需要进一步研究的重要问题。
随着研究的不断深入以及技术的持续发展,SDN 关键技术将逐渐趋于完善,未来的网络将会越来越依赖于软件,因此互联网将可能会进入SDN 时代。
#p#
2.3 SDN应用广泛
SDN 能够在多种网络环境中得到应用,包括数据中心网络、企业网络、广域网以及移动网络等[10]。
首先,在数据中心网络环境中使用SDN,可以将网络和计算资源更加紧密地联系在一起,从而实现高效的控制。在数据中心内部,利用SDN 的优势,可以有效地进行数据中心中的路径优化和负载均衡,提高数据中心中资源利用率以及降低数据中心的能量消耗。另一方面,在多个数据中心之间利用SDN 网络虚拟化技术以及逻辑上集中式的控制技术,可以轻松地实现应用到虚拟专用网(VPN)的映射以及虚拟机的迁移。
其次,使用传统技术对大型企业网络进行管理是一种十分复杂的任务。在企业网络中利用SDN 技术,能够极大地减轻网络管理的复杂度,企业网络管理人员只需要通过定义整网的管理策略就能够直接对企业网络进行控制,而不需要进行逐设备的配置,提高了企业网络的可靠性。
最后,在广域网及移动网络中使用SDN 技术也将可能具有众多好处。SDN 逻辑上集中的控制平面能够更好地实现网络融合,使统一管理成为可能。利用SDN 技术可以在固定网络和移动网络中实现无缝控制、提高VPN 管理的灵活性等。已有企业公司利用OpenFlow 技术对移动网络进行高效、灵活的网络管理,并实现了多种移动通信方式之间的实时动态切换以及移动回程网络的节能功能。在运营商网络中利用SDN 技术不但能够降低网络管理难度,还能够加快业务部署速度,提高网络服务的适应能力。
3 结束语
通过控制与转发的分离,SDN 能够降低网络管控的复杂度,提高网络的可靠性及安全性,提供多种粒度的网络控制,从而提高用户体验并促进网络创新。当前SDN 已逐渐成为了学术界、工业界以及标准化组织广泛关注并讨论的热点。未来网络将越来越依赖于软件,SDN 这种新颖的、动态的网络架构将得到更广泛的应用,进而促进网络技术的不断创新。
参考文献
[1] 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.
[2] CASADO M, FREEDMAN M, PETTIT J, et al. Ethane: Taking control of the enterprise[J].ACM SIGCOMM Computer Communication Review, 2007, 37(4): 1-12.
[3] GREENE K. R10: Software-defined networking[R]. MIT Technology Review ,2009.
[4] ANDERSON T, REITER M K. GENI: Global Environment for Network Innovations[R].GENI Facility Security, GDD-06-23.2006.
[5] OFELIA. OpenFlow in Europe: Linking infrastructure and applications[EB/OL].[2012-10-10]. http://www.fp7-ofelia.eu/
[6] SPARC: Split Architecture Carrier Grade Networks[EB/OL].[2012-10-10]. http://www. fp7-sparc.eu/
[7] CHANGE Project[EB/OL]. [2012-10-10]. http://www.change-project.eu/
[8] ONRC: Open Networking Research Center [EB/OL]. [2012-10-10]. http://onrc.net/
[9] ONF.Open Networking Foundation[EB/OL].https://www.opennetworking.org/
[10] IETF 82 Proceedings: Software Driven Networks (SDN) (BoF) [EB/OL].[2012-10-10]. http://www.ietf.org/proceedings/82/sdn.html