赵 云,李 莉,沈苏彬
(南京邮电大学 计算机学院,江苏 南京 210003)
支持可定制QoS服务的SDN北向接口设计与实现
赵 云,李 莉,沈苏彬
(南京邮电大学 计算机学院,江苏 南京 210003)
软件定义联网(SDN)和传统网络的区别在于将传统网络设备的转发层和控制层相分离,网络设备的控制功能都集中到了控制器中,转发功能则完全保留在设备之中。SDN分为三个层次:数据层、控制层和应用层。北向接口位于应用层和控制层之间,其作用是向上层应用开放网络能力,具备开放性、便捷性、灵活性等特性。针对上层应用对网络能力的定制化需求,提出一种支持QoS服务可定制的北向接口的设计方案,描述了接口的外部形式和内部功能模型并基于该方案实现了一个提供带宽和优先级可定制服务的北向接口。在SDN实验网络中对接口进行了测试,测试结果表明该方案能够达到预期目标。
软件定义联网;服务质量可定制;北向接口;OpenFlow
近年来,随着互联网的广泛应用和普及,云计算、物联网、移动互联网等新技术也逐渐从发展走向成熟,多样化的网络业务和基础资源能力等问题的需求和发展给数据中心的安全、扩展、管理等问题提出新的要求[1]。软件定义联网(SDN)是由美国斯坦福大学Clean slate研究组提出的一种新型网络架构,它是为了解决无法利用现有网络中的大规模真实流量和丰富应用进行实验而设计的。通过SDN可以更加方便地研究及改善网络的传输性、可靠性、安全性等问题。SDN体系架构的使用成为当前解决网络问题的新方向,因此在研究和生产领域得到深入的研究和应用[2]。
文献[3]指出软件定义网络提供了一种全新的不同于传统网络的网络架构,通过将传统网络的数据层面与控制层面进行解耦,用户可以根据自身需求编程实现所需的服务。SDN控制器为用户提供了多种可编程接口,用户也可以在控制器中开发新的可编程接口,用户可以按照自身需求选择控制器提供的这些可编程接口编写相应的应用软件。最终,控制器根据策略向数据层发送流表来实现该应用。SDN所提供的可编程服务方式,可以让用户按需操作,使得SDN更能够适应多样化的需求,这也体现了SDN控制层面与数据层面分离的优势。
根据上述介绍了解到,SDN是一种数据转发和网络控制相分离的体系结构,可以按需对网络资源进行编排以实现相关服务。那么,如何向上层应用提供定制化的网络服务呢?针对这一问题,文中讨论了服务定制的形式和流程,提出一种支持服务定制的北向接口设计方案,并基于QoS策略实现了一个支持带宽和优先级定制的北向接口。
1.1 SDN定义
SDN[4]是一种通过解耦传统网络设备的控制层和转发层,将设备转发功能保存在网络设备中,将设备的控制功能集中到控制器中进行统一控制的新型网络技术。
1.2 SDN架构
文献[5]指出ONF提出了三层的SDN网络架构,如图1所示。
图1 SDN网络架构图
该SDN架构分为三层,最上层为应用层,包括各种不同的业务和应用;中间是负责处理资源配置、监测网络状态信息的控制层;最下层的数据层负责处理、转发数据和收集数据状态。在该三层网络架构中,控制层与数据层之间的接口(南向接口)和应用层与控制层之间的接口(北向接口)也是架构的两个重要组成部分。
SDN南向接口的主要功能是实现网络资源的虚拟化,这一功能是通过屏蔽底层物理转发设备的差异实现的。SDN北向接口的主要作用是调用网络资源供上层业务使用。管理者和用户通过北向接口调用控制器对外开放的网络能力,按需进行网络配置,更好地为上层应用或业务提供服务[6]。
2.1 SDN北向接口的作用
不同于传统网络中按照实际需求逐台配置硬件设备以实现网络应用,SDN网络中的应用是以软件程序的形式实现的,这些应用与控制器一起部署在服务器上,通过调用控制器的北向接口(介于控制层和应用层之间的可编程接口)获得其提供的流量模式、应用数据等信息并对其进行辨别和判断,进而通过控制器下发指令调整网络配置[7]。用户可以通过SDN北向接口便捷调用控制器对外开放的网络能力这一优势,便捷地开发新的应用和业务。
2.2 SDN北向接口的分类
SDN北向接口具有便捷地调用SDN控制器对外开放网络能力的功能并且具备开放性、便捷性、灵活性等特性。文献[8]根据接口特性将北向接口分为三种类型,分别是强耦合接口、松耦合接口以及基于状态的功能接口。
(1)强耦合接口主要分为进程内接口和进程间接口这两种接口,它们的区别在于:前者由控制器提供且用于控制器内编程,后者由控制器的外部设备提供且用于与控制器通信。
(2)松耦合接口和前面提到的进程间接口都是由控制器外部设备提供的且都用于控制器通信。松耦合接口通信的方式不同于进程间接口,它是以松耦合的方式进行通信的,既不需要立即响应也不需要同步出现。
(3)基于状态的功能接口主要的功能是处理状态,该功能通过设置和读取状态以及发出状态改变通知来实现。该接口提供了一系列的功能供编程使用,但是该接口并不是通过过程调用来使用的,而是通过状态改变来实现的。
通过上述北向接口的三种分类,可以清楚地认识到北向接口的多样性,因此可以利用北向接口功能的多样性定制出多样性的上层应用和业务。
3.1 可定制服务应用接口设计背景
在实际的网络应用中,网络业务具有多样性等特点,因此对于实际的网络服务质量需求也存在差异。视频会议等对实时性要求较高的业务通常要求较高的处理优先级且对带宽要求也较高;文件传输等业务对网络实时性要求不高,但需保证其可靠传输,控制丢包率等。根据这种不同业务必须具备不同服务质量需求的情况,文中将根据SDN网络中的网络业务应用需求,设计出适用于基本QoS服务[9](QoS参数包括可用性、吞吐量、时延、抖动和丢失等)的可定制QoS服务。
3.2 可定制服务应用接口的设计方案
从网络业务应用需求出发,结合控制器的基本功能,设计可定制QoS服务的应用层开放接口,主要分为八个模块:安全服务、拓扑管理、链路发现、设备管理、路由管理、策略制定、定制服务和流表下发。策略制定是接口的核心部分,该部分主要负责判断用户选择和制定相应的策略;安全服务负责保护接口的安全;拓扑管理和链路发现被调用以实现网络状态的信息收集,其中拓扑管理也在网络中寻找路由;设备管理则负责解析源设备和目的设备的接合点;路由管理则负责解析源、目的设备之间的路由;定制服务则负责制定QoS相关服务(不管定制何种服务,该模块始终用于定制服务);流表下发则负责根据策略制定的源、目的地址下发流表。
总的来说,就是用户通过调用策略制定的服务完成应用逻辑到流表的转换。可定制QoS服务应用接口设计图如图2所示。
图2 可定制QoS服务应用接口设计图
图2是一个可定制QoS服务应用接口设计图,设备管理、路由管理、链路发现和拓扑管理是对底层设备信息进行监测和统计的技术;策略制定和流表下发是通过控制器对网络设备进行统一控制的技术;定制服务是针对用户需求制定的QoS相关服务;安全服务是针对可定制服务应用接口所提供的安全服务。
3.3 可定制服务应用接口工作流程
针对可定制QoS服务应用接口的一般工作流程主要可以分为三个部分:定制服务、策略制定和流表下发。具体实现如图3所示。
图3 可定制QoS服务应用接口工作流程
(1)定制服务:按照可定制QoS服务的要求,针对具体服务进行可定制,根据相应的策略制定下发相应的流表。
(2)策略制定:更好地实现了网络自动化和编排,根据上层应用的服务需求制定相应的策略。
(3)流表下发:调用策略制定将应用转发逻辑转化为流表,然后使用流表下发服务将流表交付给对应SDN交换机,按照流表的规则进行转发。
3.4 可定制服务应用接口的一般实现
可定制服务应用接口的各模块功能实现如下:
(1)Device Manager(设备管理)模块:通过调用设备管理模块的接口解析源地址(sourceSwitch,sourcePort)和目的地址(destSwitch,destPort)。
(2)Topology(拓扑管理)模块:通过调用拓扑管理模块的接口并根据设备管理模块解析出来的源、目的地址解析出源、目的之间的路由。
(3)Flow(流表下发)模块:通过调用流表下发模块接口依据策略下发流表。
(4)Link Discovery(链路发现)模块:该模块通过发现端口状态的改变来改变拓扑。
(5)Routing(路由管理)模块:该模块提供源、目的之间的路由。
(6)Security(安全服务)模块:该模块向应用接口提供安全服务,以保障应用接口的安全。
(7)Policy(策略制定)模块:该模块提供相应的可定制QoS服务策略。
在多媒体领域,多媒体业务复杂多样,业务要求不同,对于业务服务质量的需求也不同,例如视频服务对于带宽的需求要高于文件传输服务,实时服务对于网络服务的优先级需求要高于非实时服务等。
文中将以应用服务的网络带宽和优先级可定制为例,利用SDN的集中控制和可定制服务接口的灵活定制,实现SDN网络中传输带宽和优先级的可定制服务。依据用户在使用应用服务时,对传输带宽和服务优先级的不同需求,设计能够由用户定制网络带宽和服务优先级的可定制服务接口。通过调用该接口,用户可以根据自己的需求对于不同的应用服务定制不同的带宽(通过限制最大带宽和最小带宽来实现)和服务优先级(服务进程优先级),充分体现出SDN网络集中化控制的优势及北向接口定制的灵活性。
4.1 需求描述
多媒体传输应用场景下的QoS可定制服务表现为带宽、时延等可定制服务,文中主要描述网络带宽及服务优先级的可定制。SDN网络根据用户定制需求为用户提供相应的网络带宽及服务优先级。为此以图2所描述的可定制QoS服务应用接口设计图为模板,结合实际需求,确定带宽和服务优先级可定制服务的接口需要提供网络带宽及服务优先级选择策略、设备管理、路由管理、流表下发等功能。
4.2 系统实现
通过分析文中设计的可定制服务应用接口方案并结合Floodlight控制器[10]的可编程接口及OpenvSwitch交换机的实现技术以实现网络带宽及服务优先级可定制的应用。
(1)确定可定制应用的网络服务信息。
①队列的带宽设置及OpenFlow流表项的优先级设置;
②确定源、目的主机的接合点及物理位置的数据信息;
③源、目的主机对应接合点之间的路由;
④源主机到目的主机之间路由上所有交换机部署流量信息的服务。
(2)选择能够满足服务需求的REST API。
①/wm/device/发现每个设备的接合点;
②/wm/topology/route/发现源主机和目的主机之间的路由;
③/wm/policy/qos/json下发带宽选择及流表项优先级策略;
④/wm/staticflowentrypusher/json在每个交换机上部署流表项。
(3)应用设计。
①选择python作为编程语言;
②使用os.popen发送curl命令用于调用REST API;
③使用/wm/device解析与主机相接合的交换机的端口信息;
④使用/vm/topology/route返回源、目的主机间的路由信息;
⑤使用/wm/policy/qos/json下发带宽选择策略及流表项优先级策略;
⑥使用/wm/staticflowentrypusher/json下发流表。
(4)代码实现。
①设置带宽队列并通过ovs-vsctl将带宽加于数据包流上。
以实验为例,为验证带宽的可定制性,可以设置多个带宽队列对其进行选择,如设置queue0带宽200 Mbps、queue1带宽20 Mbps、queue2带宽2 Mbps等。
②应用层制定带宽及服务优先级可定制策略。
应用层选择应用服务所需带宽队列(通过选择相应带宽队列实现)及设置服务优先级(通过设置OpenFlow流表项中VLAN Priority的值实现)。
③解析源、目的主机接合点。
通过http://%s/wm/device/?ipv4=%s调用设备管理接口,解析源、目的主机接合点。
④解析源目路由。
通过http://%s/wm/topology/route/%s/%s/%s/%s/json调用路由接口,检索源、目的节点之间的路由。
⑤下发流表。
通过http://%s/wm/staticflowpusher/json调用staticflowpusher接口下发具有相应带宽队列及相应VLAN Priority值的流表。
5.1 相关技术
5.1.1 Floodlight API
北向接口的设计思路之一是开发一套遵循REST风格的网络API,其实质是以控制器作为服务器,上层应用通过HTTP请求的方式获取网络资源或能力。在Floodlight控制器中,REST风格的API从资源的角度观察整个网络,由URI确定分布在网络中的资源,上层应用通过URI获取资源[11]。
5.1.2 QoS技术
QoS(Quality of Service,服务质量)指网络利用各种基础技术,为指定的网络通信提供更好的服务能力的一种技术,主要用来解决网络延迟和阻塞等问题[12]。为满足用户对不同应用不同服务质量的要求,需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量。
5.1.3 Mininet
Mininet[13]是一个很强大的网络仿真平台,可以通过这个平台方便地模拟真实的网络环境和操作。当前SDN发展迅速,但是在真实网络中很难进行相关的网络实验,因此需要借助Mininet仿真平台对这种新型的网络架构进行实验操作。
5.1.4 OpenvSwitch
OpenvSwitch[14]是一个多层虚拟交换机,它可以通过编程扩展来实现大规模网络的自动化。OpenvSwitch的主要作用是传递虚拟机之间的流量以及实现虚拟机和外部网络的通信。
5.2 方案测试及分析
1)测试环境搭建。
实验网络由控制器、OpenvSwitch交换机、客户主机这三部分组成,通过Floodlight和Mininet搭建实验环境(4台主机、4个OpenvSwitch交换机和1个Floodlight控制器组成),实验网络拓扑如图4所示。
2)接口测试用例。
通过源、目的主机和策略的选择验证接口功能是否符合预期要求,设计接口测试用例:
(1)应用服务的带宽可定制。
设置五种带宽策略,即队列queue0-10 Mbps,queue1-20 Mbps,queue2-30 Mbps,queue3-40 Mbps和queue4-50 Mbps,通过可定制QoS服务应用接口依次为视频服务(在Floodlight控制器中说明了Protocol=“4b”是Packet_Video流量,通过设置Protocol为4b模拟视频服务)选择不同的带宽策略,以主机h1作为服务端运行Iperf,主机h2作为客户端运行Iperf,记录每次选择的队列带宽和实际测量的带宽。
图4 实验网络拓扑图
(2)应用服务的优先级可定制。
选择两种不同类型的应用服务(在Floodlight控制器中说明了Protocol=“06”是TCP流量,Protocol=“17”是UDP流量,因此分别设置两种服务为TCP服务和UDP服务),通过QoS服务应用接口为两种应用服务设置不同的优先级策略(TCP服务的优先级策略设置为2,UDP服务的优先级策略设置为6)。通过查询两种服务策略下发的流表优先级来验证是否具备服务优先级可定制的功能。
3)接口测试结果。
测试1:调用应用接口将不同的队列策略下发给控制器,然后以h1作为服务端运行Iperf,h2作为客户端运行Iperf,客户端向服务端发送数据并依次选择带宽策略。最后将Iperf工具记录的带宽和队列带宽进行比较,带宽测试如图5所示。
图5 带宽测试图
测试2:通过调用应用接口设置不同的协议(TCP和UDP)表示不同类型的服务,对于不同服务设置不同的优先级,保持其他内容不变,下发优先级策略给控制器。当下发策略后,策略会生成相应的流表,两种服务优先级策略通过流表显示,如图6所示。
“networkProtocol”:6,“networkSource”:”0.0.0.0”,“networkSourceMaskLen”:0,“networkTypeofService”:0,“transportDestination”:0,“transportSource”:0,“wildcards”:4194254},“command”:0,“outPort”:-1,“actions”:[{“maxLength”:32767,“port”:1,“lengthU”:8,“type”:”OUTPUT”}],“priority”:2,“networkProtocol”:17,“networkSource”:”0.0.0.0”,“networkSourceMaskLen”:0,“networkTypeofService”:0,“transportDestination”:0,“transportSource”:0,“wildcards”:4194254},“command”:0,“outPort”:-1,“actions”:[{“maxLength”:32767,“port”:1,“lengthU”:8,“type”:”OUTPUT”}],“priority”:6,
图6 TCP和UDP服务优先级定制流表图
4)实验结果分析。
从上述实验可以看出,当用户选择不同的带宽时,带宽应用接口为用户提供实时选择带宽且传输带宽会围绕着指定的带宽有较小偏差的浮动。当用户选择不同的优先级时,该策略下发到控制器中。实验结果表明,利用SDN网络对全局的掌握能力,可以向接口提供不同参数以获得定制化QoS服务,最终满足用户定制化的需求。
随着SDN的发展,网络越来越智能化,上层应用对网络能力的定制化需求日益增加。文中提出一种支持可定制QoS服务的北向接口的设计方案,并基于该方案实现了一个提供带宽和优先级定制服务的北向接口。经实际测试,以此模型为驱动,可以支持定制化的QoS服务。
[1] 王淑玲,李济汉,张云勇,等.SDN架构及安全性研究[J].电信科学,2013,29(3):117-122.
[2] McKeown N,Anderson T,Balakrishnan H,et al.Open-Flow:enabling innovation in campus networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2):69-75.
[3] Greene K.TR10:software-defined networking[J].MIT Technology Review,2009,38(8):66-69.
[4] 戴国伟.SDN架构中基于ForCES模型的资源管理机制研究[D].杭州:浙江工商大学,2013.
[5] 郎羽生.SDN应用编排和资源管理技术的发展[N].人民邮电报,2015-12-10(07).
[6] Open Networking Foundation.Software-defined networking:the new norm for networks[EB/OL].2012.https://www.opennetworking.org/sdn-resources/sdn-library/whitepapers.
[7] 雷葆华,王 峰,王 茜,等.SDN核心技术剖析和实战指南[M].北京:电子工业出版社,2013.
[8] 程 莹,张云勇.SDN应用及北向接口技术研究[J].信息通信技术,2014,8(1):36-39.
[9] Snir Y,Ramberg Y.Policy Quality of Service (QoS) information model[S/OL].2003.http://www.rfc-editor.org/rfc/pdfrfc/rfc3644.txt.
[10] Project Floodlight.Floodlight openflow controller[EB/OL].2015.http://floodlight.openflowhub.org.
[11] 韦 楠.软件定义网络中北向接口关键技术的研究与实现[D].北京:北京邮电大学,2014.
[12] 李 峰,曹明翠,罗风光,等.IP网络中的QoS保证[J].电子技术,2001,28(6):9-12.
[13] Kaur K,Singh J,Ghumman N S.Mininet as software defined networking testing platform[C]//International conference on communication,computing & systems.[s.l.]:[s.n.],2014:20.
[14] Chiu H W,Wang S Y.Boosting the OpenFlow control-plane message exchange performance of OpenvSwitch[C]//2015 IEEE international conference on communications.[s.l.]:IEEE,2015:5284-5289.
Design and Implementation of SDN Northbound Interface for Customizable Services of QoS
ZHAO Yun,LI Li,SHEN Su-bin
(School of Computer,Nanjing University of Posts and Telecommunications, Nanjing 210003,China)
SDN is different from the traditional network in that it decouples the control layer from the forwarding layer.Control functions are centralized at a controller and the underlying hardware only contains forwarding functions.SDN is composed of three layers:the data layer,control layer and the application layer.The interface between the application layer and the control layer is called Northbound Interface (NBI),which opens the network abilities and possesses sufficient openness,convenience,and flexibility.For the customization demand of upper application for network capacity,a design plan of the NBI is proposed which supports for customizing QoS services.To provide customization to better meet applications’ needs,a design of northbound interface for customizable QoS services is put forward.A high-level API specification and functional model is described.A bandwidth-and-priority-based QoS service is implemented according to the specification.A prototype system is built on an SDN test bed,and the result shows that it can achieve the expected goal.
Software-Defined Networking;customizable QoS;Northbound;OpenFlow
2016-01-15
2016-04-21
时间:2016-10-24
江苏省未来网络前瞻性研究资助项目(BY2013095-1-08)
赵 云(1989-),女,硕士研究生,研究方向为计算机网络;沈苏彬,研究员,博导,研究方向为计算网络、下一代电信网以及网络安全。
http://www.cnki.net/kcms/detail/61.1450.TP.20161024.1114.044.html
TP393
A
1673-629X(2016)11-0182-06
10.3969/j.issn.1673-629X.2016.11.040