




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DesignandImplementationofaTopologymanagementmoduleforDistributedSDNControllerAuthor:WangTutor:RuanIntraditionalnetworks,thefastpacketforwardingandtoproutingdecisionsareintegratedtogether.Developmentofthistightcouplingmainframelimittheemergenceofthenetworkofinnovativetechnologies.SoftwareDefinedNetwork(SDN)asanewnetworkarchitecture,thebiggestfeatureisthecontrolplaneanddataplanewithlooselycoupled.ThisfeaturemakestheSDNhasaflexiblesoftwareprogrammabilitywhichcanbeagoodsolutiontothepoornetworkflexibility.NowtheExistingCentralizedcontrollersofSDNfacestheproblemofperformancebottleneck.Ifafailureoccurs,itwillhaveanimpactonthewholenetwork.Distributedcontrollercansolvetheproblemofcross-regionalnetworkandbreakthroughtheperformancebottleneckofthesinglepointofcontroller.However,duetothedistributedcontrollersindependentlyresponsibleforacertainareanetworkandmanageanumberofswitches,thuseachnodeofdistributedcontrollerkeeppartsofnetworkinformation,andthetopologyoftheentirenetworkscannotbeobtainedatanynode.Tosolvetheaboveproblem,weachievedatopologymanagementmoduleforthedistributedcontrollerwhichcancollectinformationonallnetworknodesandprovidetheentirenetworktopologyforSDNupperapplicationbyprocessingtheinformation.Morespecifically,themainworkofthispaperislistedasFirst,westudythemodulesofswitchandlink’smanagementandthendesignandimplementthetwomoduleswithdistributedtechnologybasedonFloodlight.Then,wedesignandimplementthemoduledevicemanagementwhichisbasedonpacketysisandcanmanagethehostsofnetwork.Finally,wedesignandimplementofsharedstoragemodulebywhichthedistributedcontrollerofSDNcansharednetworkdatabetweeneachnode.Aftertesting ysis,thetopologymanagementmoduleforadistributedcontrollerofSDNcanaccesstotheentirenetworktopologyaccuray.绪 研究背 解决的问 研究意 国内外研究现 SDN整体架构的相关研 集中式器的研 南向网络技 北向业务支撑技 分布式器的研 国内外研究现状总 研究目标与研究内 课题来 的组织结 相关技术现 Openflow技 OpenFlow协 cassandra数据 数据可视化工 本章小 分布式器拓扑管理模块系统设 系统功能需 设计原 项目组整体架 系统总体架构及流 系统功能模块详细设 交换机管理模 链路发现模 设备管理模 共享模 数据可视化模 本章小 分布式器拓扑管理模块系统实 系统开发环 开发语言和环 技术基 系统实现概 Floodlight模块加载接 共享模块实 设备管理模块实 本章小 实 实验环 实验场 功能实 实验目 实验设计与实验过 实验结果及其分 性能实 本章小 总结与展 工作总 工作展 致 参考文 在传统路由器或交换机设计中,快速的报文转发(数据面)和的路由决定(控实时操控。故提出了逻辑控制和数据转发分离思想,这正是SDN技术的研究基础。2008OpenFlow协议,OpenFlow协议已经成为控制器与交换设备之间的最为主流的通信协议,目前主要由ONF(开放网络)发展。实现底层网络设施对上层应用的透明。这种特点使得SDN具有灵活的软件编程能力,施层包括网络的底层转发设备,包含了特定的转发面抽象。控制层集中网络状态,SDN器1.1SDNONFSDN架构定义、ETSINFV架构定义、Opendaylight开源项目三种架构,它们在定义上存在共性,从中可以总结出SDN具有的三大基本特性:图1.1SDN架构的逻辑视图,主要分为基础设施层、控制层和应用层.。基础通过这种软件模式。网络管理者能够通过动态的SDN应用程序来配置、管理和优化底层的网络资源。从而实现灵活可控的网络,这也是SDN 的便捷支付,以及控制器集群的横向扩展等SDN网络的关键问题。等网络功能的必要基础。SDN网络中的链路发现技术由控制器统一完成。器LLDPDU中发布给自己相连的邻居。SDN交换机及其连接状态的同时,对各SDNMACMAC、VLANID等传统的二层网络信息,也将OpenFlowSDN面向较大规模网络部署的必HyperFlowOpenFlowOpenFlow网络仅有HyperFlow中,每个控制器将订阅数据信道、控制信道和自身信道域内的网络和应HyperFlow是基于为广域网设计的分布式文件系统WheelFS而设计的,网络事件在不可靠性和通用性方面的不足。Onix网络架构主要由物理网络基础设施、网络连接基础设施、Onix4Onix读写网络状态;Onix和物理网络基础设施之间的通信连接;Onix采用分布式架OnixAPI来DevolvedDevolvedcontroller针对多控制器管控区域划分问题提出了两种启发式算法:路径-分区算法(pathpartitionapproach)和分区-路径算法(partition-pathapproach)。路径-分区算目前还不存在开源的SDN分布式控制器,所以研究并实现一个基于分布式SDN控面向分布式器构建全局网络拓扑图的需求,研究分布式器的相关技术,通过对保存的网络信息进行相应的处理,实现面向分布式器的拓扑管理原系统,为SDN应用层提供底层网络分布的全局视图。SDN全网信息的关键,是实现网络地址学习、VLAN路由转发等网络功能的必要基础。SDN中的链路发现工作由控制器统一完成。链路发现开始时,器会首先通过一个Packet-out消息向所有与之相连的交换机发送LLDP数据包,该消息命令交换机讲LLDP数据包发送给所有端口,因为OpenFlow交换机并没有专门LLDPPacket-in消息将数据包发送给控制器,控跟交换机管理与链路发现是控制器主交换机发送OpenFlow消息不同,设备管本毕业设计课题来源于某公司研究性项目“SDN了现有的集中式控制器的缺陷,结合现有分布式系统的架构,论证了分布式器拓扑视图存在的必要性;其次详细分析了Floodlight控制器的整体架构,对SDN相关理论基础和技术做出详细论述;再次,明确提出面向分布式器拓扑管理模块第一章绪论控制器Floodlight以及数据可视化工具的相关知识。Floodlight初始化模块的实现,然后的总结与展望中,总体评价整个分布式器拓扑管理模块的设计与实本文主要研究并实现一个分布式SDN分布式控制器的拓扑管理模块,不同的控制器之间通过共享实现数据共享,并且端使用javaswing实现网络拓扑可视化。制器南向接口对网络中所有SDN交换机进行集中化统一管理,OpenFlow是目前唯一Floodlight系统进行分布式Floodlight系统模块加载机制,并且在配置文件中设置对应模块的配置参数;第三,由于分布式控制器需要通过共享在节点之间共享数据,需要设计实现跟共享的接口,在保证系统可扩展性的要求下,设计针对NoSQL数据库的通用API接口;第四,需要将分布式器收集的网络拓扑信息以可交互的形式OpenFlow本课题所要实现的分布式器拓扑管理模块需要在SDN交换机和器之间进行通信,而OpenFlow作为目前唯一的南向接口,规定了作SDN基础设施层转发设备的OpenFlow交换机的基本组件和功能要求,以及用于有控制器对交换机需要对OpenFlow协议进行解析,所以介绍这部分的内容。状态;asynchronousOpenFlow交换机发起,用来将网络事件或交换机状态变化表2.1OpenFlowo本课题所要实现的分布式器拓扑管理模块是基于集中式控制器Floodlight级的OpenFlow控制器。Floodlight是基于java语言开发的,其代码被BigSwitchNetworks的商业化产品所使用并经过专业测试,具有较高的性能和可靠性。同时,因此Floodlight也是一款收到业界广泛认同的控制器软件。2.1Floodlight发现和揭示网络状态及相关事件(例如拓扑、设备、流块。在运行过程中,FloodlightProvider将收到OpenFlow数据包转换成一个个事件;表2.2Floodlight本课题所要实现的分布式器采用共享实现控制器节点之间的数据共用Cassandra作为外部。ApacheCassandra是一套开源分布式NoSQL数据库系统它最初由开发,良好的可扩展性,被Digitter等知名Web2.0所采纳,成为了一种流行的分布Cassandra使用了BigTable的数据模型,与面向行(row)的传统的关系型数据Family,在节点,非常适于对于节点规模变化比较快的应用场景。Cassandra的数据会写入多个节一个副本即可(高可用性)或是通过来确认多数副本一致即可(折衷。这样,Cassandra可以适用于有节点、网络失效,以及多数据中心的场景。模式灵活:使用Cassandra,像文档,不必提前解决记录中的字段。可以在负责图形界面的显示,mxGraph则负责绘制控制器、交换机、主机之间的连接信息。本章分别针对本系统设计过程相关的技术展开介绍。第一节给出Floodlight器的共享,主要针对Cassandra的性能和易扩展等优点做了重点介绍;第三节简要说明了Mininet作为模拟网络的软件的主要功能,利用Mininet搭建的虚拟网络可以对 本章两章内容的基础上,首先从目前已有的集中式控制器出发,分析分布式控制器负责对整个SDN网络的集中化控制,对于把握全网资源视图、改善网络资旦控制器在性能或者安全性上不能得到有效保障,随之而来的就是整个SDN网络的服的SDN网络问题。因此,需要有多台控制器形成的分布式集群,避免单一的控制器节本文以设计并实现分布式器拓扑管理模块为目标,研究分布式控制器的相关技术,通过对保存的网络信息进行相应的处理,实现面向分布式器的拓扑管理模块,为SDN应用层提供底层网络分布的全局视图。交换机管理控制器启动之后,首先进行的是交换机管理,这是链路发现模块和链路发 链路发现模块是获取全网拓扑的关键。链路发现模块通过发送主机管 设备管理模块通过对交换机上传的数据包进行解析,收集主机的地址、MAC地址、交换机DPID、交换机Port等信息,建立整个网络的主机信息共享分布式器通过共享在控制器节点之间共享全网的交换块需要满足可扩展性,满足用户自定义加载的模块;2)本模块需要满足OpenFlow的规范,OpenFlow交换机连接;3)本模块需要满足网络拓扑可视化的要求。在设计系统据离要了需度,要个进单计实现,单元测试后与其他模块集成,模块化的原则也让系统的复杂度有了很大的下降,但对模块间通讯和耦合提出了更高的要求。规范化原则:本文实现的是一个分布式器拓扑管理模块,实现之后需OpenFlowOpenFlow规范,主要包括报UI将网络拓扑3.1项目组的整体架构如3.1,主要由以下部分组成:(1)SDN上层应用;(2)分布理模块的总体架构如下图3.2所示。发现模块,设备管理模块,共享模块,数据可视化模块。本系统是在Floodlight的基础上二次开发的,Floodlight支持用户自定义需要加载的动这些模块依赖的其他模块,在这个过程中,每个模块的器和提供的服务被保端口进行。每当控制器收到一条OpenFlow消息,就转化成对应的一个事件,然后 3.2机的端口发生改变;(4)交换机发生改变。交换机管理模块在内存中保存当前控制器节时的。IP地址、接收到数据包的交换机及其端口。该模块除了在内存中保存学习的设备信息之外,同样在共享中一个副本。遵循简单、通用的原则,采用类似于NoSQL的key-value模式,对用户掉底层的实路、主机的信息,格式化之后利用第插件显示出来。主要显示以下信息:(1)控制OpenFlow消息,所以在系统的整个运行周期内,交换机管理模块是一直运行的,交换机管理模块负责控制器特定的端OpenFlow消息都是交换机通过南向接口发送的,这本身也属于交换对于其他类型的OpenFlow消息,由控制器模块转化成相应的事件,按照已经3.3)交换机管理模块初始化后,启动一个专门的线程(Netty线程特定的端口,接收交换机发送的OpenFlow消息。)OpenFlow消息进行判定,如果是关于交换机状态信息,比如交换会触发相应的器。触发相应 触发相应 交换机状态
3.3LLDP(LinkLayerDiscoveryProtocol,链路发现协议)作为链路值),并且封装在LLDPDU(LinkLayerDiscoveryProtocolDateUnit,链路发现协议数据以及特定的以太网类型,已将LLDPMACOpenFlowSDN3.4所示。表端OpenFlowOpenFlow交换机,那么该交换机将会将所有的信息打包成一个Packet-in消息发送给控制器。Packet-inPacket-in消息产生或者更新一条链 3.4LLDP的包进行处理,其他包则跳过。LLDP介绍MAC地址在传输过程中的改变情况。MAC地址48比特,即48位的二进制数字,表12个十六进制数字,每16进制数字之间用“-”隔开,如“00-60-2F-3A-07-BC”就是某一个网卡MAC才被拷贝到随机器(RAM)中去,因此,网卡的MAC地址不能被随意修改。IPIP地址是保持不变是两台计算机和两台路由器的固定MAC地址。表3.2
3.5MACMAC地址的变化规律可以知道,通过学习收集的设备信息并不仅仅是Packet-inMACMAC地址。利用这种特点,每次获取到一个地址信息,首先将其中的MAC地址跟共享换机的所有端口的MAC地址进行比对,如果不是否是返回目的设3.6设备学习的流程如图3.6,大致工作流程如下:Packet-in包中提取出源地址和目的地址信息,包括:MAC地址、VLAN将源地址中的MAC地址与共享中的交换机全部端口地址进行比对,如保存在内存和共享中的设备信息都有一定的存活周期,每一次设备被到活共享模 的方便用户对表进行操作;另外,由于本系统情况下是对对象整体的操Key-Value字符串类型;另外一方面,接口已经采用了Key-Value的设计方式,对Value对象进行整体序列化,从而将对象作为表的一个域/列,简化的过程。(3)表-客户端之间的可以建立表-客户端之间的,极大地方便的用户使用。(4)支持多种系共享模块工作流程如图3.7所示,步骤大致如下 查找是否存在客户请求新客返回客户返回客户端表到添客户端模块启共图3.7共享模块流程网络信息利用文字无法直观的呈现在出来,利用第插件可以将网络中的拓扑信 网络拓信从共拓扑刷数据可视化模块将信息格式化并且3.8数据可视化模块的执行过程如图示,大致工作如下从共享中网络信息先分析了分布式器拓扑管理模块的系统需求以及设计原则;之后介绍了系统本系统在Linux系统环境下进行开发,由于本系统是基于集中式控制器Floodlight开发的,FloodlightJavajava语言作为本系统地实现语言。针对本系统,Java语言拥有丰富的第工具库可以使用,方便本系统地开发。发的过程中,Linux系统的基本命令操作需要掌握的;另外,由于所有的源码托管到,还需要掌握的日常命令;编写代码的过程中,对Java语言的掌握程度要求比较高,熟悉Java的语言特征对加快系统开发具有重要的作用。Floodlight的整体架构,包括模块加载机制、各个模块之间的依赖关系,模块Mininet搭建网络的基本命令和原理。为了避免每次手动的搭建网络,还要求掌握利用Python自定义网络拓扑。握Cassandra数据库的基本操作命令;Cassandra利用thrift支持多语言,因此需要熟悉thrift框架的相关API。 FloodlightFloodlight采用用户自定义需要加载的模块,用户只需要在配置文件(默认的路径就能够按照要求加载定义的模块。Floodlight定义了一个模块加载接口,所有的模块必Collection<Class<?extendsIFloodlightService>>Map<Class<?extendsIFloodlightService>,IFloodlightService>这个方法返回当前模块所提供的所有服务的class和服务的表Collection<Class<?extendsIFloodlightService>>voidinit(FloodlightModuleContextvoidstartUp(FloodlightModuleContext其次,获得当前模块的依赖服务;然后,进行模块的初始化;最后,进行模块外部共享模块实该模块为整个系统提供向共享提供服务的功能,该服务定义在IStoreService接4.1表4.1StoreRegisterMap<String,IStore_Client>表-客户端的publicStringregister(StringkeySpace,StringcolumnFamily)columnFamily对应的客户端,返publicIStore_Client用析,采用Key-Value的方式,所以该类主要提供了五个方法,如表4.2所示:表4.2IStore_Clientpublic<T>voidput(Stringkey,T在publicvoiddelete(Stringkeypublic<T>Tget(Stringkeypublic<T>ArrayList<T>publicvoiddeleteAll(------<<接口<<接口+ColumnPath <<接口--图4.1共享模块类设备管理模块通过对控制器模块分发的Packet-in消息进行学习从而收集网络中,表(2表4.3首先,向控制器模块IOFMessageListener器,一旦控制器模块监听到一个消息就触发器,将消息分发给设备管理模块的receive方法进行处理;其次,向拓扑管理模块ITopologyListener器,一旦拓扑发生改变就调用设备管理模块的topologyChanged方法进行处理;最后,利IThreadPoolService提供的服务,开从控制器模块获得依赖的外部服务:IStoreService、ITopologyServiceIThreadPoolService设备管理模块的IOFMessageListener器一旦被触发,就开始设备学习的过的信息,表4.4表示了一组地址信息,Entity类表示主机在网络中某一结点的一次活跃。MACIPIPMACMAC地址;否则,是上一个交换机的端口地表4.4IPsrcdst所有的活跃记录;Device拥有多个属性,数几个属性在区分不同Device时起作用,默认情况下使用MAC地址和VLAN唯一的标示一个设备。表4.5DeviceLongStringEntity[]DeviceIEntitiyClassAttaentPoint址信息srcEntity和dstEntity;其次,从共享中查找srcEntity对应的设备,如果查找空值。工作流程如图4.2,执行过程如下:心模块分发的Packet-in包。设备管理模块从Packet-in包中解析出两组地址信息srcEntity和dstEntity分别表设备管理模块从共享中遍历网络中的全部交换机,将srcEntity中的MAC地址srcEntity否是从设备集合查找srcEtity查找dstEntity从Packet-insrcEntity和4.24.1节介绍了系统开发的平台环境和语言基础。4.2Floodlight中模块接口以及接口中的方法。4.3和4.5节分别介绍了共享模块和设备管理模块的具体实现过程 (R)Xeon(R)CPUE5-2620操作系统:Ubuntu数据库:Cassandra-虚拟网络软件:Mininet-实验场景如图5.1所示,包括分布式器、若干台交换机、若干台主机5.1其中PC1上需要加载数据可视化模块,PC2上不需要加载数据可视化模块。在src/main/resources/perties文件中添加两个需要加载的模块同样在在src/main/resources/META-INF/services ernal.StoreManager和org.sdnplatform.ui.TopologyUI。PC2配置文件修改:ernal.StoreManager添加当前控制器节点的基本信息同样在src/main/resources/META-INF/services ernal.StoreManager和org.sdnplatform.ui.TopologyUI。表5.11 212341234利用python编写的Mininet的网络拓扑信息如表5.1所示,控制器节点个数为42表5.25.35.1对比之后满足预期效表5.342323,2,-213,2,-3交换机通过端口与交换机的端口相连。交换机通过端口与交换机的端口相连。表5.4端端3121314223125.55.5表5.51123334由于目前缺乏OpenFlow交换机,利用Mininet模拟的底层网络虽然功能完整,但是本文研究和解决了分布式器由于逻辑上分开造成的无法形成统一的全局网络拓扑图的问题,设计了分布式器拓扑管理模块,并且增加了数据分布式器拓扑管理模块能够收集各个节点的网络状态信息,经过整合、格设备管理。其换机管理是链路发现的基础,当第一台交换机跟控制器建立连接之机端口。本系统通过共享在控制器节点之间共享网络状态信息,所有的信息一式两javaswingmxGraph,SDN交换机等硬件设备,无法对系统进行真SDN硬件设备进行大规模的同学、朋友和家疑由衷的感谢。首先,感谢毕业设计指导老师老师,自从我大四上学期进入以来,本的研究方法,还使我明白了许多待人接物与为人处世的道理。本从选题到完成,开阮老师的悉心指导,我将会带着从阮老师身上学习到的科研态度进行我以后的工作。衷心感谢师兄、师兄、果师兄、师兄等多位师兄们,从进入到完成毕业设计过程中向请教SDN方面的问题,虽然问题都非常低级,师感谢,骁,同学,是陪伴我走过这一段让我终生难忘的时期。让我收获了很多人生,辅导员的热忱帮助、舍友的坦诚相待和同学之间的友谊让我感谢四年来所有教过我和给予过我帮助的老师,是辛勤的工作培育了我们一届又一届学生,谢谢教给我知识和人生道理。最后,我还要感谢家人对支KoponenT,CasadoM,GudeN,etal.Onix:ADistributedControlPlatformforLarge-scaleProductionNetworks[C],OSDI.2010,10:1-6.TootoonchianA,GanjaliY.HyperFlow:Adistributedcontrolplaneforonenterprisenetworking.USENIXAssociation,2010:3-3.左青云,,,,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影视录放设备产品定位考核试卷
- 2025年市场操纵行为的法律责任分析试题及答案
- 2025年全新证券从业资格证考试备考试题及答案
- 窗帘结构与安装技巧考核试卷
- 环境监测数据在决策中的作用考核试卷
- 北美风格电视墙施工方案
- 银行从业资格证考试的专业试题及答案
- 电气工程设备操作与维护方法技巧考核试卷
- 礼仪用品企业战略规划考核试卷
- 残疾人体育赛事参与考核试卷
- 镀锌生产线张力驱动控制基础
- 组装检查记录表
- 小学部编版六年级下册道德与法治《4、地球-我们的家园》第一课时说课稿
- DB11T 1340-2022 居住建筑节能工程施工质量验收规程
- 保险市场调查与分析实训三任务一2.3.1任务一运用Excel整理市场调查问卷数据
- 中央空调(多联机)施工方案
- PKPM砖混结构抗震及其他计算全攻略
- “育鲲”轮转叶式舵机工作原理和电气控制以及故障分析
- 最新.尔雅批判与创意思考--冯林答案
- 宿州光伏玻璃项目可行性研究报告(范文模板)
- 10KV变电站施工方案
评论
0/150
提交评论