开篇:润墨网以专业的文秘视角,为您筛选了一篇基于语义网的SDN网络资源管理北向接口研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:SDN是未来网络演进的一大方向,其北向接口提供了网络应用的编程和人机接口。目前北向接口的研究主要集中在异构性消除、可编程性提高、提供网络新功能和改善性能等方面,而SDN网络资源管理研究尚处于起步阶段。语义网具备强大的层次化描述能力,便捷灵活的数据存储结构,丰富的工具及方法论支持,良好的可移植性,有利于在北向接口上提供基于虚拟网络上的视图管理功能,为SDN网络资源管理带来便利,并提高上层网络应用开发的可移植性。本文提出结合语义网(Semantic Web)技术,结合基于语义网的sdn网络资源管理平台,研究基于语义网的SDN网络资源管理北向接口。
关键词:SDN;语义网;北向接口;网络资源;服务质量
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2017)17-0016-05
软件定义网络(software defined networking,SDN)是由美国GENI项目资助的斯坦福大学的MacKneow教授在主导的Clean Slate项目中提出的一种新型网络架构。与传统分布式网络不同,SDN的核心是在网络中引入一个SDN控制器(Control-ler),通过核心技术OpenFlow通过将网络的数据转发层和设备控制层分离,从而简化网络架构,实现对网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。网络资源的管理是SDN的一个重要维度,但如何在较高的抽象层次上实现SDN网络资源的高效管理,尚未形成较理想的框架。
语义网(Semantic Web)是未来网络的一种设想,它可以形成一个机器可读的虚拟网络图数据库。它具有十分强大的推理能力,它可以使用OWL(Web Ontology Language,网络本体语言)对SDN网络资源以及相关的业务资源进行建模,使用RDF(Resource Description Framework,资源描述框架)给抽象的业务资源和网络资源带来具体化的描述。其便捷灵活的数据存储结构,丰富的工具及方法论支持,良好的可移植性,为构建SDN网络资源管理北向接口,实现抽象化、虚拟化的网络管理,提供了良好的理论和技术基础。为构建SDN网络资源管理北向接口,提供了灵活的基础。
本文结合语义网技术对SDN的北向接口进行扩展,弥补现有SDN对网络资源管理方面的不足,提供SDN网络资源管理的编程和人机接口。
1 SDN北向接口
笔者从不同的抽象层次,将当前北向接口研究总结为几大方面,分别是:
1)可移植性北向接口:主要致力于解决异构OpenFlow协议或者硬件之间的差异性,从而为上层应用提供一个可移植性层,主要工作包括tinyNBI、NOSIX等。
2)可编程性北向接口:主要致力于实现专用的SDN网络程语言,或嵌入到现有的高级语言中,提高SDN网络的可编程性,实现对其网络行为的控制,主要工作包括Frenetic、NetCorete等。
3)网络虚拟化北向接口:通过对网络资源进行虚拟化,在物理网络的基础上构建虚拟的网络视图,主要工作包括FlowVisor、libNetVirt等。
可以看到现有的几类北向接口,主要从异构性消除、可编程性提高、网络虚拟化等角度进行研究,对SDN网络资源管理方面的研究目前比较少见,使得用户和上层应用难以找到满足其需求的个体资源(如某个交换设备)或群体资源(如满足服务质量的路径)。笔者认为应该采用平台中立的语义网技术,对网络资源进行建模,尽可能同底层物理设备解耦,并利用北向接口对其进行虚拟化、抽象化的管理,方便SDN网络应用――特别是网络资源密集型应用的开发。
2基于语义网的SDN网络资源管理平台
2.1构建模型
1)首先进行安装Protege,并配置好环境变量。
2)SDN本体模型构建:
a)新建一个OWL项目,在Active Ontology的面板中定义本体的URI作为模型的命名前缀,在本设计中定义Ontology IRI为:
http:∥/michellin/ontologies/2016/2/SDN。
b)在Classes面板中添加资源类,如图1所示。在模型中,将SDN网络资源抽象为六个类分别是Component(组件)、De-vice(设备)、Hnk(链路)、How_table(流表)、Function(功能)以及Group_tablef组表)。六个类下又分别有子类:Component下的子类为Port(端口);Device的子类为Controller(控制器)、Switch(交换机)和Host(主机);Link的子类为各种规格的传输介质。Function的子类为Action、Instruction、Pipeline_wordflow动作指令,Flow_table(流表)子类分为Counter、Instruction、Match_Field等;出于篇幅限制,仅给出定义资源图以及总体模型展示图。
c)在Object Properties面板中添加类间属性。在模型中,定义9种类属性:connects(连接)、contains(包含)、controls(控制)、consistsof(组成)、deploys(部署)、includes(包括)、supports(支持)、isdeployedby(被部署)以及consists(由什么组成)等。connects描述交换机类(Switch)、交换机端口类(Port)、链路类(Hnk)、主机类(Host)之间的连接关系;contains描述端口类(Port)和交换机类(Switch)的包含关系;controls描述控制器类(controller)和交换机类(Switch)的控制关系,交换机supports功能(Function)等。
d)在Datatype Properties面板中添加类的数值关系。在模型中,添加了5个类属性:Device_property(设备属性)、Match_Field(匹配领域)、IP、MAC、QoS(服务质量)。在设计中主要用到的是设备属性和服务质量属性,其余的属性作为后续拓展开发。在Device_property属性类下有CPU和RAM子类,用于描述交换机的设备状态信息。在QoS属性类下有:Available(可用性)、Bandwidth(带宽)、Delay(时延)、Drop(丢包率)、Jiuer(抖动)以及Total_QoS(总QoS)等服务质量子类,用于描述交换机端口的服务质量。定义Device_property和QoS的数值类型都为双精度浮点型(double)。
e)SDN本体模型构建完成后,以XML的格式保存并命名为“SDN.owl”。总体模型展示图如2所示。
2.2实例化本体模型
利用Jena框架的ModelFactory创建本体模型,例如使用如下代码构建一个本体模型:OntModel model=ModelFactory.cre-ateOntologyModel()。并以字符流的形式读取之前定义好的本地模型。结合提供的API如/wm/core/controller/switches/json获取底层实际交换机信息。使用类似的语句进行实例化模型。
Individual swIndi=model.createlndividual(ns+switchDHD,Switch);结合本体模型以及从控制器已获取的topo信息,利用Jean框架和JSON文本格式构建一个虚拟的网络RDF图,以便上层应用使用。
2.3 SPARQL查询的实现
1)最短路径查询的实现:Jena框架中的OntTools类包含了findShortestPath()的函数该函数可以找到两节点之间的最短路径,将最短路径的中间节点和距离返回。它需要传人四个参数,分别是:本体模型、源节点、目的节点和过滤条件(可指定中间经过的节点),可直接调用。
2)单一的QoS和多种QoS查询,可以直接通过非常简便的SPARQL语句实现,如下例1和例2。
2.4应用层可视化设计
利用D3.is实现节点图以及语义网三元组节点图的可视化利用,CSS,javaScript,Ajax JsPlumb,等主流的技术实现页面的动态交互以及自定义的topo的实现。
3实验过程和结果
1)启动Ubuntu 15.10系统,打开终端进入Hoodlight-1.2/target目录输入如下命令启动Hoodlight1.2(指定默认的配置文件即floodlightdefault.properties)
java-iar Floodlight.iar―cf floodlightdefauh.properties
2)建拓扑模块及视图展示模块验证,将项目部署到Tom-cat服务器后,运行Tomcat,打开浏览器输入http:∥localhost:8082/SemSDN/访问平台主页面,如图3所示。
首页具有导航功能,主要分为两个模块,分别是语义网的可视化以及功能展示模块和建立可拖拽topo的模块。
点击“创建topo”,进入创建topo界面,如图5-4所示。该版块实现的功能主要有,快速建立典型topo,包括树形topo和线性topo。建立自定义topo,并实现了对已建topo的增删功能。如下图4所示:
创建一个简单树形拓扑,先在“TypicalTopo”中选择“tree”,输入层数和叶子数,点击“Generate Topology”生成该拓扑的py-thon文件并点击“deploy”按钮将topo部署至Floodlight控制器中,点击“ShowTopo”跳转回主界面。生成topo文件后Topo-Maker界面如图5,部署后主界面如图6所示。
3)QOS信息模块验证
点击S2交换机,在左边的Real-time QoS Information窗口可以显示该交换机的QoS信息,如图7所示。
4)SPARQL查询模块验证
返回“TopoMaker”界面,通过手动拖拽创建一个拓扑,如图8:
点击“Generate Topology”以及“Deploy to Mininet”按钮,将创建的拓扑生成对应的python文件,并部署到Floodlight控制器上。
在右侧模块的“Shortest Path Query”中,输入查询“hi”和“h4”之间的最短路径,点击“Query”按钮。弹出最短路径查询结果的对话框,如图9所示,最短路径用蓝色标识,在下方显示了最短路径的详细信息。
5)数据统计模块验证
点击数据统计模块右侧的选项卡,可以查看带宽、时延、丢包率和总QoS的柱形图数据统计情况。
6)典型拓扑性能测试
如图14(图中所有数据为五次测试所得值得平均值),其中树形m*n表示有m层且每个交换机有n个分支;线性m*n表示有m个交换机且每个交换机有n个主机。
由上表可得出结论:当节点不多时,该系统能够很快的从控制器中获取部署的拓扑,并对最短路径及环路查询等SPAR―QL查询语句做出快速反应并在前台显现出结果。
4总结
从实验结果及数据分析上来看,基于语义网的SDN网络资源管理平台可将SDN网络资源可视化,实现用户与SDN控制器的动态交互,实时更新网络的拓扑信息和QoS信息,利用SPAR-QL找到满足用户或上层应用需求的个体资源和群体资源,提供抽象化、虚拟化的网络资源管理北向接口。同时,弥补了Floodlight控制器的不足,并且提供了有较高实用性的查询功能,使得网络资源的管理更加方便。这对于SDN的北向接口应用是一个很大的进步。