毕业论文——基于SDN哑交换机技术的研究与实践_第1页
毕业论文——基于SDN哑交换机技术的研究与实践_第2页
毕业论文——基于SDN哑交换机技术的研究与实践_第3页
毕业论文——基于SDN哑交换机技术的研究与实践_第4页
毕业论文——基于SDN哑交换机技术的研究与实践_第5页
免费预览已结束,剩余52页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业设计(论文)题目:基于SDN的哑交换机技术研究与实践摘要基于SDN哑交换机技术的研究与实践摘要随着互联网的迅速发展,网络服务类型以及业务量不断增多,因此对传统的网络的性能也提出了更高的要求,但是由于传统网络的局限性,现阶段只能在原有网络上进行网络设备的增加,协议的版本升级等手段,网络维护工作变得日益复杂。SDN是一种新兴的技术,它的核心思想是控制与转发分离,网络设备具有开放的可编程接口和网络集中控制,SDN大力推动了网络的创新,同时在SDN网络架构里网络的设计,实施,管理也较传统网络架构简单许多。本论文首先介绍了和SDN相关的一些基础性概念,其中包括SDN网络架构,南向接口协议Openflow的技术原理,以及控制器的相关知识,然后在虚拟机下搭建符合SDN框架的实验环境,最后在这种实验环境上实现拓扑的验证,转发路径的验证以及基于跳数和带宽的路径转发等实验。通过相关实验的结果我们得出了,在基于跳数和带宽的路径选择实验中,控制器能通过下发流表来使流量始终走跳数少的或者带宽较大的,从而始终保证流量的高效传输,这种转发与控制分离的思想使得网络的可控性与灵活性都大大提高。关键词:SDN Mininet Openflow Opendaylight IAchieve dumb switch technology on the basis of SDNAbstractWith the development of the Internet,Types of network services and network traffic is also increasing.so there have a higher requirements to the traditional network,However, due to the limitations of traditional network,At present, we have to increase the network equipment, upgrade the protocol version, and network maintenance work has become increasingly complex.Software Defined Network(SDN) is an emerging network architecture where network control is decoupled from forwarding and is directly programmable.SDN network has a great role in promoting innovation,Meanwhile, network design, implementation, management is much simpler than the traditional networkFirst,This paper introduces some basic concepts associated with the SDN, including knowledge SDN network architecture, packet structure to the south Openflow1.0 interface protocol, and controller,Secondly I set up SDN experimental environment in a virtual machine,and finally,Finally, I did some experiments in a SAN environment which including topology verification,Verify forwarding path,and path based on hops and forwarding bandwidth experiment.By the result of the experiments we find that the controller will keep the traffic safety, high-speed transmission by issued flow table,for example the controller will choose the less hop in the experiment that based on the hop ,and the controller will choose the lager bandwidth in the experiment that based on the bandwidth , Such forwarding and control the thought of separation so that the controllability and flexibility of the network are greatly enhanced.Key Words: SDN Mininet Openflow Opendaylight II西安工业大学毕业设计(论文)目录摘要IAbstractII1 绪论11.1 课题背景11.2 研究意义11.3 国内外研究现状21.3.1 国外研究现状21.3.2 国内研究现状31.4 本论文的主要研究内容41.5 论文结构42 相关技术介绍与研究62.1 SDN网络架构62.2 Openflow技术原理72.2.1 概述72.2.2 OpenFlow交换机82.2.3 OpenFlow 协议102.3 Mininet的解析122.3.1 Mininet的概述122.3.2 Mininet的使用132.3.3 Mininet的结构分析132.4 Opendaylight的应用152.4.1 Opendaylight 概述152.4.1 Opendaylight 项目架构162.5 本章小结173 基于SDN网络框架设计183.1 拓扑的设计183.1.1 通过Mininet命令行实现183.1.2 通过python脚本设计拓扑193.1.3 通过python程序自定义拓扑203.2 流表的下发223.3 验证功能的开发243.3.1 拓扑的准确性校验243.3.2 网络性能的测试243.3.3 转发路径的验证性功能的设计253.5 本章小结254 基于SDN环境的通信网络的实现264.1 实验环境的搭建264.1.1 Mininet的安装26III4.1.2 Opendaylight 的安装 274.2 通信网络测试304.2.1 实验1304.2.2 实验2314.2.3 实验3354.2.4 实验4374.2.5 实验5434.3 本章小结455 总结与展望465.1 工作总结465.2 展望46致 谢47参考文献48西安工业大学毕业设计(论文)1 绪论1.1 课题背景在传统的路由器或交换机设计中,快速的报文转发(数据面)和高层路由决定(控制面)是集成在一起的,传统网络一开始就是一个分布式的格局,没有中心的控制节点,网络中的设备之间都是相互传递路由信息,由每台设备自己决定转发规则,这直接导致了没有整体观念,不能从整个网络的角度对流量进行调控。并且一个大型网络的设计都是基于传统的网络设计架构,在网络项目的实施过程中都是基于具体的交换机和路由器进行相应的配置,通常一些学校,医院或者政府部门的大型网络项目牵扯到的网络设备达到上千台,因此大型网络项目的实施与维护都越来越复杂。在近几十年的网络技术发展过程中,由于这种紧耦合大型主机式的发展限制了IP网络创新技术的出现,更多的是通过不断增长的RFC文档对现行网络进行修修补补,造成了交换机/路由器设备控制功能高度复杂。软件定义网络SDN1(Soft-ware Defined Networking)是由美国的Clean State研究组提出来的一种新型的网络架构,2006年美国斯坦福大学的学生Casado开展了一个关于网络安全与管理的项目Ethane2,该项目通过一个集中式的控制器,使网络管理员能够在各种网络设备中定义基于网络流的安全策略,后来Casado和他的导师McKeown发现如果将Ethane设计应用于一般化,不仅局限于安全方面,即将传统网络的控制平面和数据平面分离,通过集中式的控制器用标准化的接口来对各种网络设备进行管理和配置,这也是SDN的核心思想,如此一来,将为网络资源的设计、管理和使用提供更多的可能性,从而革命性的改变了现有的网络架构,为未来的网络发展提供了一个新的方向。基于OpenFlow3的SDN技术推出后。2009年被MIT评为十大前沿技术4。1.2 研究意义SDN在最近几年发展愈发被看重,随着各家厂商,运营商等的加入,各项也逐渐趋于成熟,无论在对企业,网络工程师,还是网络本身架构来说,它都有不小的优势。对于企业来说来说,会大大较小网络设备的购买以及后期维护的费用,因为在传统网络架构中,路由器,交换机,防火墙等是构成网络的不可获取的主要元素,而这些元素在SDN的架构中会被替代成Openflow 交换机和控制器,显然控制器不需要像传统网络中的路由器数量那么庞大,同时后期的设备的维护数量也相应的减少了,对应的维护费用也减少了。对于网络项目的实施人员来说,由于在SDN架构中,交换机只负责简单的转发工作,而主要的流表下发都是有控制器完成的,所以也大大简化了网络工程师的配置工作,显然已经不需要再像传统网络中那样到每台路由器上配置有路由协议,做策略,到每台交换机上配置vlan等信息,因此配置工作也大大减少,网络项目的实施效率也会对应的提高。对于网络架构本身来讲,传统网络新业务的部署方式是补丁式的,因为网络中新老设备并存,新业务必须兼容老业务,新的协议基本上都是在原有协议的基础上进行扩展,这就大大限制了网络架构创新性的发展。而在SDN网络架构中用户不仅可以通过控制器来控制底层交换机的转发行为,甚至可以按需定义报文的封装格式,而不再局限于Mac,ip等元素,这也为SDN网络架构的创新带来了无限的可能性。1.3 国内外研究现状SDN作为近几年新兴起来的技术,由于它具有创新性高,引入新业务速度快,网络维护费用低,可以和虚拟化技术结合等优势,因此得到很多厂商,运营商的青睐,并且也有专门为之成立的组织机构,最近几年在各方的努力下SDN的实践化应用也逐渐有了进步。1.3.1 国外研究现状 a. 开放式网络基金会ONF5(Open Networking Foundation)已经完成了SDN的架构定义、安全需求和原则、光传送SDN需求,迁移需求等多个文档,并完成了南向接口协议Openflow1.4.x和配置管理协议OF-Config1.2的指定,在ONF发布的最新的SDN Architecture中,在三层架构的基础上还增加了管理能力和多个信区域,ONF成立了Carrire SDN讨论组,针对运营商网络在SDN领域的特有需求进行讨论6。 b. 国际互联网工程任务组IETF(The Internet Engineering Task Force )中的PCE(Path Computation Element)工作组正在推进有状态PCE的标准化,以提供实时流量工程计算中的路径计算元素和网络节点间的相关协议,I2RS(Interface to the routing system)通过制定I2RS协议实现控制器和网络设备的交互,类似于ONF中的openflow协议7。 c. OpenDaylight8是有linux基金会提出了一个项目,正在开展的项目包括控制器,虚拟用户网络,适用于SDN的SNMP等。ODL已经发布了第一个通用平台Hydrogen,包括基础版,运营商版,和虚拟化3个版本,并且已经开启了下一个平台Helium的工作,同是ODL已经开放了通用的北向接口,只需在Openstake中内置一个Neutron插件,就可与之结合,大大简化了对Opendstake的要求,加快了控制器与业务层的适配。d. 斯坦福大学的研究者在2008年提出了基于OpenFlow,它作为SDN的原型实现方式,代表着SDN控制转发分离技术的实现,随着SDN技术得到认可,从严格意义上来讲,OpenFlow指的是SDN控制平面和数据平面之间多种通信协议之一,但实际上OpenFlow以其良好的灵活性、规范性已被看做SDN通信协议事实上的标准。 e. 日本NTT是较早进行SDN技术研究的运营商之一,研发了一款虚拟网络控制器,用于多个数据中心的统一服务和按需分配,已经部署到其位于欧洲,美国和日本的数据中心。 f. 谷歌构建的B4网络是目前最著名最有影响力的SDN技术应用案例,它由中心流量工程(TE)服务器,网络控制服务器(NCS),以及下层的交换机组成,在网络控制服务器上运行OpenFlow Controller(OFC)集群,交换机硬件运行OpenFlow Agent接受OFC的控制。根据OFC下发的流表转发流量,谷歌基于OpenFlow理念搭建的数据中心Wan网络可通过编程实现自动创建和重新配置遍布全球的数据中心之间的连接,通过周密的流量工程和优先级次序的工作方式使其资源利用率从30%提升到了90%以上,极大的节省了成本9。 g. 针对南向接口,除了ONF提出的OpenFlow协议和OF-CONFIG10协议外,IETF提出了For-CES11协议,思科公司提出了OnePK12协议。ForCES对网络设备内部结构重新定义,将转发元素和控制元素分离,形成两个独立的逻辑实体,两个逻辑实体件靠ForCES协议通信。OnePK则是cisco针对SDN产品专门开发的接口协议,该协议可以运行在cisco所研发的专属平台上,并支持开发者用C或JAVA编写的程序。1.3.2 国内研究现状 a. 目前我国的通信标准化协会(CCSA)也与时俱进,在国内主导SDN的标准化工作,其中在TC3下特设了SVN(Software Virtualization Network)研究组,目前重点在基于SDN的智能管道技术和基于虚拟化的核心网的研究。 b. 中国电信成立了集团级的云计算重点实验室,以云数据中心为切入点,探索SDN技术,利用SDN技术+NFV13技术提供面向云计算服务的网络增值业务,其中,中国电信股份有限公司北京研究院还自主研发控制器等SDN的核心组件。 c. 中国移动已经在国内、北美两地开展了2次大规模测试,针对7个厂家的控制器,10个厂家的OpenFlow交换机搭建测试环境,进行OpneFlow标准,功能、性能、SDN应用等测试,验证标准及产品成熟度并联合芯片厂家研发了Super PTN芯片,成功演示了基于OpenFlow的SDN化PTN圆形系统。 d. 腾讯在第二届SDN & NFV大会上提出了构建边缘智能网络的概念,该网络基于Overlay的SDN实现方式,将虚拟网络与物理网络解耦,虚拟机通过开源OVS接入网络OVS根据上层的分布式控制器下发流表转发流量,虚拟网络之间使用VXVLAN标签实现用户隔离,这种使用OVS+VXVLAN+SDN构建的虚拟扩往迁移,虚拟二层网络进行伸缩,多租户安全隔离,业务灵活扩展,流量只能调度等,能有效提高数据中心间的宽带利用率,减少故障收敛时间,从而提升用户体验14。 e. 华为也在SDN方向进行了探索,基于SDN的虚拟感知解决方案,控制层采用SDN控制器,数据层采用OpenFlow交换机,应用层开放兼容多个云平台-OpenStake,VMware,微软数据中心等;高性能的NVO3网关;PCE提升广域网链路利用效率等。华为不仅在实践中敢于实践,在技术创新方面OF控制器,SmartTE演示系统,SDN的设备技术研究等领域都取得了相应的成绩15。1.4 本论文的主要研究内容自从SDN技术被提出来之后,由于本身所具有的相对于传统网络的优势,因此迅速得到了各厂商,运营商的认可,并且已经成立了一些专门为之服务的机构,他们负责定义相关协议的标准,比如openflow 1.0,openflow 1.3等协议也逐一问世。本文正是在这种研究氛围如此浓厚的情况下,研究了SDN网络架构的以下内容: (1)基础设施层和控制器之间的拓扑验证问题,由于SDN是一项新型的的技术,所以有关SDN的产品都是比较昂贵的,因此本论文的实验环境都是基于虚拟机来实现的,在基础设施层主要由Mininet构成,当Mininet将所需要的拓扑搭建完成后,我们需要验证Mininet的拓扑是否在Opendaylight控制器里正常显示,所以这就需要在Mininet端使用net命令查看Mininet的拓扑是否正确创建,在正确创建的前提下,并且调用拓扑和连接Opendaylight的命令都无误的情况下,拓扑验证才能成功。 (2)转发路径的验证问题,在本系统中,路径的转发都是基于控制住器下发流表来实现的,因为需要模拟真实环境,所以就要确保流量准确无误的按照下发的流表来执行,本系统利用流表项中的n_packets来验证流表下发是否生效。 (3)基于跳数的转发路径研究,将SDN网络架构和传统网络架构里的RIP协议相比较,分别从不同的角度来演示说明了SDN网络机构在对拓扑的把握,以及转发路径的选取上都有不小的优势。 (4)基于带宽的转发路径的研究,在实际环境中,链路总体带宽虽然不变,但是随着业务需求的增加,分配给每个用户的带宽可能就会不足,因此本实验通过模拟应用层动态感知网络拓扑的带宽变化,灵活分配流量所走的路径,来达到流量时刻保持高速转发的目的。1.5 论文结构 本论文的主要分为五章,每章的研究内容如下: 第一章为绪论,首先介绍了课题的研究背景,以及研究意义,然后介绍了国内外关于SDN的一些研究进展,最后介绍了本论文的研究内容和论文结构。 第二章为相关技术的研究,本章首先介绍了SDN网络架构,它主要分为基础设施层,控制层,以及应用层,并且介绍了每层的功能,然后详细分析了南向接口协议Openflow ,最后介绍了实验环境所需要的两大组件,Mininet和Opendaylight。 第三章为系统的设计,首先介绍了拓扑的三种搭建方法,包括用Mininet命令行,Python脚本以及Python程序。然后介绍了利用了控制器进行流表下发的过程,最后介绍了拓扑的验证,转发路径的验证,已经网络性能的检测。 第四章为系统的实现,本章首先介绍了实验环境的搭建包括Mininet的安装以及Opendaylight的安装,然后在SDN环境下进行了通信网络的测试包括基于拓扑信息的获取功能,拓扑结构的验证功能,控制转发路径功能,基于跳数的路径选择,基于带宽的路径选择。 第五章为结束语,本章首先对该论文进行了总结,然后对SDN的未来进行了展望。482 相关技术介绍与研究2.1 SDN网络架构 ONF标准化组织在提出的基于开放的Openflow南向接口协议的SDN架构,其核心理念是将传统网络的控制平面和数据平面分离,通过集中式的控制器用标准化的接口来对各种网络设备进行管理和配置 。如图2.1所示,它由下至上分为基础设施层,控制层,应用层。 图 2.1 SDN框架图基础设施层主要由通用的转发设备构成。基于控制层下发的指令和策略进行分组的转发。控制层与转发设备之间的接口被称为Openflow。通用转发设备的报文转发采用三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)等专用集成电路实现,以充分发挥硬件性能优势。NEC、Juniper、HP、Cisco都在推进支持Openflow接口的原型及产品。控制层主要由控制软件构成,它是将原有的交换机、路由器等网络设备中的控制功能抽取出来并与独立的软件结合起来从而形成控制软件。原有的交换机、路由器中的STP、RIP、IS-IS等软件功能都从基础设施层剥离,由控制层统一实施交换与路由的管理。控制软件可以收集网络状态信息并远程向转发设备下发灵活多变的流表(flow table)和组表(group table),实现对网络报文的处理,如转发、标签处理、过滤等。现在业界已经出现一些开源控制器软件Opendaylight,Ryu,Pox,Floodlight等等 应用层由软件形态的应用程序构成,可通过Restful API的方式或者网络操作系统API的方式调用控制层提供的控制网络转发面的能力。比如,应用可以直接要求控制层为它提供端到端的路由及QoS保障,也可以通过控制层对网络进行精细化的管理,比如设置特殊的访问控制策略、负载均衡方案、防火墙设置规则等。其中层与层之间的通信是通过相应的接口来完成,其中基础设施层通过南向接口和控制层来沟通,Openflow协议就是比较典型的南向接口协议。而控制层和应用层之间通过北向接口协议来进行通信,到目前为止还没有统一的北向接口标准协议。总体来说,SDN网络结构层次化明显,通过对网络设备的集中化控制,控制层能够根据全局网络信息合理高效的分配网络流量,通过开放的控制接口,能够实现控制层对网络设备的灵活控制。同时,用户也可以对开放接口进行自定义编程,这也提高了网络的创新能力。2.2 Openflow技术原理2.2.1 概述 OpenFlow是由斯坦福大学的Nick McKeown教授在2008年4月ACM Commun-ications Review上发表的一篇论文OpenFlow: enabling innovation in cam-pus networks首先详细论述了OpenFlow的原理,最初出发点是用于校园内网络研究人员实验其创新网络架构、协议,考虑到实际的网络创新思想需要在实际网络上才能更好地验证,而研究人员又无法修改在网的网络设备,故而提出了OpenFlow的控制转发分离架构,将控制逻辑从网络设备盒子中引出来,研究者可以对其进行任意的编程从而实现新型的网络协议、拓扑架构而无需改动网络设备本身。自2009年底发布第一个用于商业化交换机的正是标准1.0版本以后,OpenFlow协议已经经历了1.1、1.2、1.3以及1.4等版本的演进变化过程。表2.1列出了OpenFlow协议各个版本的演进过程和主要变化。表 2.1 Openflow协议各个版本介绍版本描述1.0版本协议指定每个OpenFlow交换机中都存在一张流表,用于数据包查找,处理或转发,并且只能同一台控制器进行通信,流表的维护也是通过控制器下发相应的OpenFlow消息来实现,Openflow1.0版本支持12个匹配字段并且只支持IPv41.1版本自OpenFlow1.1版本开始支持多级流表,将流表匹配过程分解成多个步骤,形成流水线处理方式,除此之外,OpenFlow1.1中还增加了对vlan和Mpls标签的处理,并且增加了Group表,通过在不同流表项动作中用相同的组表实现对数据包执行相同的动作,简化了流表的维护。OpenFlow1.1版本是OpenFlow协议版本发展的一个分水岭,他和Openflow1.0开始不兼容,但后续版本仍然还是在此基础上发展。1.2版本OpenFlow1.2规定可以使用多台控制器和同一台交换机进行连接,并且多控制器可以通过发送消息来变化自己的角色,自Openflow1.2版本开始支持IPv61.3版本Openflow1.3版本支持的流表匹配关键字已经增加到40个,足以满足现有网络应用的需求,Openflow1.3主要还增加了Meter表,用于控制关联流表的数据包的传送速率,但控制方式还相对简单。1.4版本增加了一种流表同步机制多个流表可以共享相同的匹配字段,但可以定义不同的动作,另外又增加了Bundle消息确保控制器下发一组完整消息或同时向多个交换机下发消息的一致性。2.2.2 OpenFlow交换机Openflow交换机是整个OpenFlow网络的核心部件之一,如图2.2所示,openflow交换机结构主要由安全通道,流表,Openflow协议组成。它主要描述了控制层以下,基础设施层以上之间的标准,其中控制层和基础设施层之间通过加载在安全通道里的Openflow协议进行通信。图 2.2 OpenFlow交换机的构成 Openflow交换机接收到的数据包通过查询流表来取得相应的动作,如果没有匹配的表象,则把数据包发送给控制器,由控制器决定转发行为。安全通道是交换机和控制器之间同行的接口,控制器通过这个接口控制和管理交换机,同时控制器接受来自交换机的时间并向交换机发送数据包。Openflow协议是指控制器和交换机之间通信的标准。Openflow交换机接受到一个数据包时,首先从Flowtable0开始按照优先级进行匹配查找,如果匹配成功,将首先更新该规则对应的计数器(如果匹配数据包总数目和总字节数等),然后执行对应的指令集和,比如跳转至后续某一FlowTable继续处理,修改或者立即自行该数据包对应的Action Set等,如果匹配不成功,则根据流表中的配置进行相应的处理,比如发送给控制器,丢包,护着继续比对下一个流表项。传统的网络设备的架构中包含两个方面,控制面和转发面。转发平面包含三个功能,转发决策、背板和输出链路调度、通常采用专门的设计的ASIC芯片实现性能的提升,转发平面相对于控制平面具有更高的使用频率,参考如图 2.3所示。图 2.3 传统网络交换设备的架构示意图SDN交换机的实现还需要考虑到使用场景的需要,从而合理的将控制平面和转发平面进行分离。总的来说。以下四个因素是决定不同场景下的SDN交换机的实现的关键性因素。a. 交换模式 交换模式是决定是决定传输的报文在转发时被处理的时间的关键,因为决策层面已经被分离出去了,低延迟,高性能,可靠性是实际应用常见的需求。相比与传统的转发方式,SDN交换机中由于已经将转发和控制分离,减轻了交换机在转发延迟上的负担,所以交换机在转发时应着重考虑到可靠性的问题,所以采用存储转发模式是最好的选择。b. 背板设计 交换机的背板为数据段的传送提供了通道,传统的交换机背板哈含有决策转发硬件辅助设备。由于共享总线方式会出现共享总线的速度对整个网络的流量产生产生很大的影响的缺点,所以SDN交换机的实现应该引入交叉开关矩阵机制,以避免因为仲裁器的决策导致数据包吃迟迟无法从端口发送出去,保证数据交换的概率,进一步提升SDN交换机转发工作效率。c. 缓冲机制 当入端口的速率和出端口的速率不匹配时,数据包不能及时的被发送出去,一次SDN交换机和传统交换机设备相同,都必须考虑数据包的缓冲问题,由于SDN交换机转发面的速率比传统交换机高得多,需要重点考虑数据拥塞时的交换机处理方法,数据帧很有可能被丢弃这种后果对SDN系统来说可能是非常致命的,参考传统缓冲机制。SDN交换机可以考虑一下两种缓冲机制: (1)端口缓冲,交换机在接收数据包时,利用缓冲区域进行缓冲,当缓冲区 满时,后续收到的数据将被丢弃如果缓冲区域可以灵活调整,则可以避 免因为缓冲区域使用殆尽而造成的包丢失。 (2)共享内存,即所有端口可以共享内存空间,通过动态访问内存池,可以 保证数据缓冲由端口流量所控制。 由于中心交换机需要处理大量的数据,使用端口缓冲不可避免的会出现缓冲容量不足的情况,为了保证数据的可靠性,SDN交换机在设计实现的时候应该采用共享内存的缓冲机制。d. 转发策略 在缓冲区的数据包需要根据转发策略来进行转发,数据的转发可以采用不同的策略来决定,传统的交换机根据路由表和转发表来决定数据包的转发方向,而SDN交换机同样需要这种转发决策机制,SDN交换机在进行转发时所需要的信息一方面是对传统网络各层次信息的综合,一方面也容易由控制器记性管理使得转发更加灵活。2.2.3 OpenFlow 协议OpenFlow规范主要分为如下3大部分,a. Openflow的端口(port) Openflowguifan将Openflow交换机的端口分为以下3中类型: (1)物理端口,即设备上物理可见的端口 (2)逻辑端口,在物理端口基础上由交换机设备抽象出来的端口 (3)保留接口:由转发动作定义的接口吗,实现Openflow转发功能,除 Any接口外其他接口进可作为出接口b. Openflow的FlowTable(流表) 在Openflow 1.0中,每个流表由多个流标项组成,每个流标项由包头域,计数器,动作三部分组成。在Openflow 1.0中包头域有12个元素来匹配数据流,如图2.3,端口号、VLAN、L2/L3/L4信息等,但是每个字段都是可以通配的,网络的运营商可以决定使用何种粒度的流,比如运营商只需要根据目的IP进行路由,那么流表中就可以只有目的IP字段是有效的,其它全为通配。图 2.4 Openflow1.0匹配项目每个表项对应到0个或者多个动作,如果没有转发(forward)行动,则默认丢弃。多个动作的执行需要依照行动列表中优先级顺序依次进行。动作可以分为两种类型:必备动作(Required Actions)和可选动作(Optional Actions)。必备动作是默认支持的,交换机在连接到控制器时需要通知控制器它支持的可选动作。交换机将会对包头域匹配到的数据包执行相应的动作。计数器可以针对每张表、每个流、每个端口、每个队列来分别统计。通过对活跃的表项数,查询次数,匹配流的个数,收到的数据包数目等信息的收集,这样一来,使得网络的管理和维护都变得更加容易。c. Openflow的通信通道 Openflow规范定义了一个OpenFlow交换机如何与控制器连接、通信以及相关消息类型等。Openflow协议支持三种消息类型:controller-to-switch(表2.2),Asynchronous(表2.3)和symmetric(表2.4),每一类消息又有多个子消息类型。Controlle-r-to-switch消息由控制器发起,用来管理或获取switch状态;asynchronous消息由switch发起,用来将网络事件或交换机状态变化更新到控制器;symme-tric消息可由交换机或控制器发起。表 2.2 Controller-to-switch子消息类型Controller-to-switch 子消息类型作用Features控制器查询交换机支持的功能Configuration控制器查询交换机的配置信息Modify-state控制器管理交换机的流标项和端口状态Read-state控制器请求流,包等信息Send-Packet(Packet-out)控制器通过交换机制定端口发送包Barrier控制器确保消息已被交换机接收表 2.3 Asynchronous 子消息类型Asynchronous 子消息类型作用Packet-in交换机请求未知网包的流标项Flow-Removed交换机的流标项因超时或修改等原因被删除掉Port-state交换机的端口状态发生改变Error通知控制器出现错误表 2.4 Symmertic子消息类型Symmertic 子消息类型作用Hello控制器和交换机之间的连接Echo交换机和控制器均可以向对方发出Echo消息,接收者则需要回复Echo reply。该消息用来测量延迟、是否保持连接等Vendor交换机提供额外的附加消息,为未来版本预留2.3 Mininet的解析2.3.1 Mininet的概述 Mininet是斯坦福大学Nick McKeown 小组基于linux Container架构开发的一个轻量级的软件定义网络的研发和测试的平台,该系统由虚拟的终端节点,OpenFlow交换机,控制器组成,因此它可以模拟真实的网络。它采用轻量级的虚拟化技术使一个单一的系统看起来像一个完整的网络的内核系统和用户代码,也可简单理解为SDN网络系统中的一种基于进程虚拟化平台,它支持OpenFlow、Open vSwith 等各种协议,Mininet也可以模拟一个完整的网络主机、链接和交换机在同一台计算机上且有助于互动开发、测试和演示,尤其是那些使用OpenFlow和SDN技术;同时也可将此进程虚拟化的平台下的代码迁移到真实的环境中。 Mininet的关键特性和优势如下: a. Mininet能够创建由虚拟的主机,交换机和控制器构成的网络。 b. Mininet主机运行标准的linux网络软件,其交换机支持OpenFlow。可 以认为Mininet是一个用于开发OpenFlow应用的低成本的实验环境, 不需要实际布线搭建物理网络,就能够对复杂的网络拓扑进行测试。 c. 提供了强大的命令行接口(command-line interface),CLI支持Openflow 协议并能感知网络拓扑结构,可以在整个范围内进行调试。 d. 提供简单可扩展的python API,通过该API开发者可方便的创建网络 和对网络进行试验。 e. 允许多个开发者在同一个网络拓扑环境下协同试验。 f. 便于安装,良好的硬件移植性。2.3.2 Mininet的使用 Mininet采用Python语言开发,能够简单快速的创建一个Openflow网络系统,并与该系统进行交互和共享,可以使用Mininet的命令行来创建网络,利用其命令行能够便于开发者使用命令的方式控制和管理整个虚拟网络,此外还可以利用Mininet提供的API自定义网络拓扑结构。在Mininet中常用的命令如下:表 2.5 Mininet常用命令如下表所列名称作用help默认列出所用命令文档,后面加命令将介绍该命令的用法dump打印节点信息xterm给定节点上开启xtermintfs列出所有网络接口Iperf两个节点之间进行简单的的IperfTcp测试Iperffudp两个节点之间用制定带宽的udp进行测试net显示网络链接情况noecho运行交互式窗口,关闭回应pingall所有host节点之间互pingnodes列出所有节点信息py执行python表达式dpctl在所有交换机上用dpctl执行相关命令表 2.6 Mininet启动时常用参数介绍如下表所列选项作用-h,-help列出命令文档查看命令文档-switch=SWITCH指定Mininet使用的交换机类型-controller=CONTROLLER指定Mininet使用的控制器类型-link=LINK指定Mininet使用的链路类型-topo=TOPO指定Mininet仿真的拓扑类型-clean清理并退出适合故障后恢复-mac使用友好的MAC编号-custom在已有的拓扑的基础上,Mininet支持自定义拓扑-xterm在每个节点上自动打开一个Xterm方便某些情况下特定的节点进行操作2.3.3 Mininet的结构分析Mininet中将网络元素分为链路和节点两种类型,并且对于每一种设备都有相应的标记网络元素的各种属性和操作。Node类表示一个基本的虚拟网络节点,是Mininet中所有的挽留过节点的父类,其中包含名称,命名空间,接口,端口等公共属性,实现上其实就是在网络名字空间中的一个shell进程,可以通过各种管道进行通信,其子类包含了虚拟注解节点Host类,虚拟交换节点switch类和控制节点controller类,图2.4画出了Node类及其所有子类的集成关系,Host包括Host和CPULImitedHost两个类,CPULimitedHost类用于控制主机的CPU使用率;Switch在Node类的基础上加入了数据通路、参数、监听端口等Openflow交换机所具备的基本属性,且包括四个子类,用于支持多种Openflow交换机软件,包含: a. UserSwitch类:用户态的Openflow参考交换机,即ofdatapath;b. OVSLegacyKernelSwitch类:传统的Openvswitch交换机,基于 ovs-openflowd; c. OVSKernelSwitch类:表示一台基于opensvswitch交换机,基于ovs-vsctl 进行操作。d. IVSSwitch类:表示一台indigo交换机。Controller在Node类的基础上增加了IP地址,端口等用于连接控制器的参数属性,并支持检查控制器的状态,主要方法包括启动停止一个控制器。Controller类包含三个子类用于支持多种openflow控制器软件,包含: a. OVSController类:用于支持Mininet内置的OVS控制器。b. NOX类:用于支持Mininet内置的NOX控制器。c. RemoteController类:表示一个在Mininet控制器外的控制器,比如 Opendaylight,即用户自己额外运行的控制器。图 2.4 网络节点示例与节点类相对应,Mininet中提供了链路类用于连接各节点,类名称为link。链路类描述链路相关的接口和连接,包括Intf类,Link类,TCIntf类,和TCLink类。 a. Intf类:表示基本的网络接口,比如h1-eth0表示host1上的eth0的接口。 属性包括name,mac,ip等信息。构造的时候会传入节点,端口等属性。 b. Link类:表示基本的一跳链路,最基本的链路在mininet中其实就是veth 接口,属性包含了链路两端对应的接口所对应的实例,创建链路时需要在 两个节点上分别生产两个端口,利用节点和端口,获取对应的两个网络接 口的名称。 c. TCIntf类:被TC自定义的接口,可以配置包括带宽,延迟,丢包率,最 大队列长度等参数。 d. TCLink类:表示已对对称的TC接口连接到一起。2.4 Opendaylight的应用2.4.1 Opendaylight 概述Opendaylight是linux基金会的一个合作项目。目前,包括十二个项目,每一个项目都有自己的代码库,其中与openflow(南向接口协议)有联系的包括:conroller,openflowjava和openflowplugin,目前controller仅支持openflow1.0,openflowplugin是一个单独项目,在未来的发展过程中他的核心代码部分将要集成到controller中,使得controller支持openflow1.3及以上版本。Opendaylight作为最近几年迅速发展起来的项目,加入其中的厂商也逐渐增多,opendaylight将其分为白金会员,金牌会员,银牌会员,包括思科,IBM,NEC,JUNIPER,DELL等等。 Opendaylight-controller使用Java编写,运行在JVM环境下,从理论上来讲可以运行在任何支持Java的平台上。但是官方推荐的最佳运行环境为Linux(Ubuntu 12.04)& JVM 1.7+ 。Opendaylight提供了一个模块化的的开放的SDN控制器,他提供北向的API(主要性应用层提供服务),同时南向支持多种包括Openflow在内的多种SDN协议,底层支持混合模式的交换机和经典的Openflow交换机。Opendaylight controller在设计的时候遵循了六个基本架构原则:a. 运行时模块化和扩展化(Runtime Modularity and Extensibility):支持在 控制器运行时进行服务的安装、删除和更新。 b. 多协议的南向接口协议支持(Mulitiprotocol Southbound):南向支持多种协 议。c. 服务抽形层(Service Abstraction Layer):南向多种协议对上提供统一的 北向服务接口,d. 开放的的可扩展北向API(Open Extensible NorthBound API):提供可扩 展的应用API,通过REST或者函数调用的方式。e. 支持多租户,切片(support for multitenancy/slicing):允许网络在逻辑 上(或物理上)划分成不同的切片或租户,控制器的部分功能和模块可 以管理制定的切片。控制器根据所管理的分片来呈现不同的控制观测面。f. 一致性聚合(Consistent Clustering):提供细粒度复制的聚合和确保网络一 致性的横向扩展。 Opendaylight 南向通过plugin的方式来支持多种协议,包括openflow 1.0,openflow 1.3,BGP-LS等,这些模块被动态的挂载到服务抽象层,SAL为上层提供服务,将来自上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论