SDN核心技术应用与实战 课件全套 第1-6章 SDN概述-SDN 应用开发案例_第1页
SDN核心技术应用与实战 课件全套 第1-6章 SDN概述-SDN 应用开发案例_第2页
SDN核心技术应用与实战 课件全套 第1-6章 SDN概述-SDN 应用开发案例_第3页
SDN核心技术应用与实战 课件全套 第1-6章 SDN概述-SDN 应用开发案例_第4页
SDN核心技术应用与实战 课件全套 第1-6章 SDN概述-SDN 应用开发案例_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

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

文档简介

SDN基础知识

01概述02SDN定义和架构03SDN特征——数据控制分离04SDN特征——网络可编程网络发展历史1、分组交换概念的出现:1962年,LeonardKleinrock在麻省理工学院的博士论文中提出分组交换概念,该技术后来成为互联网的标准通信方式。2、ARPANET:在20世纪60年代的特定历史背景下,美国国防部于1969年开始启动计算机网络开发计划“ARPANET”,ARPANET的成功运行使计算机网络的概念发生了根本变化,同时标志着现代互联网的诞生。网络发展历史3、

OSI参考模型的提出:1974年,国际标准化组织发布了著名的ISO/IEC7498标准,首次提出OSI(OpenSystemInterconnection,开放式系统互连)7层参考模型,同年12月,斯坦福大学的VintCerf和RobertE.Kahn提出了著名的TCP/IP(TransmissionControlProtocol/InternetProtocol),实现计算机网络互联的思想,以互连具有不同协议的网络。网络发展历史4、

NCP:1983年,ARPANET宣布将过去的通信协议——NCP(NetworkControlProtocol)向TCP/IP过渡。5、WWW技术:1991年,欧洲粒子物理研究实验室(CERN)的TimBernersLee利用HTML、HTTP成功编制了第一个局部存取浏览器Enguire,从这时开始,Web应用开始起飞,随后通过不断演进最终形成了著名的万维网(WorldWideWeb,WWW)技术。6、1996年,随着万维网的大规模应用,Internet(互联网)一词广泛流传,之后10年,互联网成功容纳了各种不同的底层网络技术和丰富的上层应用,迅速风靡全世界。Enguire的成功编制传统网络面临的挑战PART1现有网络难以高效支撑未来用户、终端和应用的可持续发展,网络架构亟待更新网运复杂设备供应商编写代码引入新功能周期长开发新功能困难软件硬件捆绑在一起供应商特定的接口封闭的设备过度复杂的协议协议标准化进展缓慢小结:新的业务需求驱动新的网络架构与网络技术7TCP/IP层次协议架构内容中心网络(CCN)未来移动网络云网络(Nebula)可表述网络(XIA)可选网络(ChoiceNet)软件定义网络(SDN)工业互联网能源互联网车联网P比特路由器智慧边缘网络下一代网络协议美欧日都在加大未来网络技术的研究ResearchfundingprogramaimingatestablishingfutureInternetarchitectureClean-slateapproachFocusingoncomprehensiveresearchofnetworkarchitecturedesignManysmallprojectsareadoptedandconvergedtoafewfull-scalearchitectures.ThosearchitectureswillbeexaminedonGENIinfrastructure.GENIInitiative-R&DfundingprogramtosupporttosecuretechnologicalimprovementandcompetitivenessofuniversitiesandcompaniesinEurope<Relatedprojects>1.Thenetworkofthefuture2.Serviceandsoftwarearchitectures,InfrastructuresandEngineering3.Secure,DependableandTrustedInfrastructure4.NetworkedMediaEUUS(独)情報通信研究機構(NICT)の研究者グループが中心となり、新たなネットワークアーキテクチャの確立と、それに基づいたネットワーク設計図の作成を目的としたプロジェクト「AKARI」が立ち上げられた。AKARIプロジェクトでは、議論を重ね、2007年4月に、新ネットワークアーキテクチャの原理と手法、基本構成、その検証のためのテストベッドに対する要求条件等からなる「新世代ネットワークアーキテクチャAKARI概念設計書」を取りまとめ、公表。AKARIプロジェクトのURL:http://akari-project.nict.go.jp/JapanAKARI-Giga-bpsR&DnetworkcoveringalloverEuropearea,fundedbyEUcommittee.-Interconnecting34NRENsinEU.-Over3,000researchorganizationsinEuropecanshareinformationaboutresearchactivities.-MigrationtoGEANT3isplannedin2008;improvingbandwidthandfunctionality.GÉANT2R&DtestbednetworkoperatedbyNICTwithnation-wideaccesspoints,utilizedtoR&Dactivitiesandexperimentsthroughcollaborationofindustry,academiaandgovernment.ContributingtohumanresourcedevelopmentinICTareaviaexperienceofpracticalexperiments.-NICTmodifiesexistingJGN2networkandstartsoperationof“JGN2plus”fromnextfiscalyear,asatestbedforNWGNresearches,R&DofNWtechnology,etc.JGN2

JGN2plusFINDSucceedingtotheresultofPlanetLabProgrammableAimingatinnovationbyfundamentalreconsiderationofservicearchitecturetoovercomeproblemsofcurrentInternetResearchscopes:Security,Mobile/Wireless,SensorNW,etc.TryingtosecurebudgetfromMREFCInternationalcollaborationisalsoinascope.FP7NICTpromotesNWGNresearchactivity“AKARIArchitecture”,aimingatimplementationofNWGNviaestablishingnewNWarchitecture/designandexperiments.TheconceptpaperofNWGNarchitecturewaspublishedinApr2007.NICTestablishedStrategicHeadquarterforNWGNR&DinOct2007tobuildupstrategicroadmapofR&Dandtopromoteit.SDN发展起源Ethane:从2006年开始,斯坦福大学研究生MartinCasado参与了Clean-Slate项目,并着手领导了一个叫做Ethane的项目,在2007年的SIGCOMM会议上,MartinCasado发表了一篇名为“Ethane:TakingControloftheEnterprise”的论文。在Ethane的系统架构中,控制与转发完全解耦,控制器通过Pol-Ethane语言向交换机分发策略,可以说Ethane包含了SDN早期的思想,它实际上成为了SDN技术的雏形。Nicira:2007年,MartinCasado联合NickMcKeown、ScottShenker等人共同创建了一个致力于网络虚拟化技术创新的公司——Nicira,并最早提出了SDN的概念。SDN发展起源OpenFlow协议的产生:2008年,NickMcKeownSIGCOMM会议上发表文章“OpenFlow:EnablingInnovationinCampusNetworks”,首次提出了将OpenFlow协议用于校园网络的试验创新。(index2700+)OpenFlow协议是为了简化Ethane项目中的交换机设计而被提出的。OpenFlow协议蝉联了2008年和2009年的SIGCOMM最佳演示奖,被麻省理工学院和多家咨询机构评选为未来十大技术之一。小结:SDN发展历史2012OF1.3HotSDN&EWSDN2012-HAS(335)2012-NICEWay

(326)2012-CPP(288)2012-Kandoo(269)2012-VeriFlow(361)2012-Debugger(130)2012-NetCore(150)2012-OFLOPS(170)2012-Odin(152)2015SOSR&EWSDN2015-NetKAT(116)2015-Fibbing(26)2015-PGA(22)2015-OpenBox(8)2015-Kinetic(27)2015-DCSwitch.P4(6)2015-NetASM(5)2015-TowardsPPS(7)2015-UniversePS(6)2015-P4Compiler(20)2015-mSwitch(11)2015-KnowtoFlowTable(38)2015-CoVisor(28)2015-OpenvSwitch(93)2016-SNAP(6)2016-UniversePS(6)2016-OpenPacketProcessor(56)Past2005-RCP2005-4D2006-SANE2007-Ethane(869)2008-OpenFlow

5777次引用2009-NOX(1369)2009-OVS(619)2009-FlowVisor(628)2009-OpenRoads(175)2010-OpenPipes(22)2009OF1.02011OF1.12010-Mininet(786)2010-Onix(785)2010-DIFANE(433)2010-HyperFlow(482)2011

-Frenetic(424)2011-DevoFlow(605)2011-Nettle(74)2011-Maestro(177)2014OF1.5HotSDN&EWSDN2014-ONOS(152)2014-P4(159)2014-OpenNF(136)2014-TheroadtoSDN(139)2014-SDNSurvey(501)2014-OpenVirtex(66)2014-FlowGuard(50)2014-CacheFlow(55)2014-OpenNF(136)2014-SDNTE(114)2014-DISCO(75)2014-SDNLTE(64)2014-CompassSDN(62)2014-OF&sFlow(78)2013OF1.4HotSDN&EWSDN2013-RMT(162)2013-B4(747)2013-Pyretic(295)2013-SDWAN(277)2013-ElastiCon(202)2013-Beacon(221)2013-SoftRAN(204)2013-SoftCell(150)2013-OpenSketch(155)2013-Participatory(142)2013-Maple(100)2013-SIMPLIFY(292)2013-SDNSecurity(123)01概述02SDN定义和架构03SDN特征——数据控制分离04SDN特征——网络可编程SDN的定义PART2SDN(SoftwareDefinedNetwork),中文译为软件定义网络,是由美国斯坦福大学cleanslate研究组提出的一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。传统网络设备紧耦合的网络框架被拆分为应用、控制、转发三层分离的架构。控制功能被转移到了服务器,上层应用、底层转发设施被抽象成多个逻辑实体。

SDN控制器

APPSDN

给网络增加了一个大脑SDN的架构PART2特征:集中控制、开放接口、网络虚拟化ONF所定义的SDN的典型架构、数据平面:数据平面由若干网元(NetElement)构成,每个网元可以包含一个或多个SDN数据路径SDNDatapath),是一个被管理的资源在逻辑上的抽象集合。控制平面:控制平面为SDN控制器,SDN控制器是一个逻辑上集中的实体,它主要承担两个任务:一是将SDN应用层请求转换到SDN数据路径,二是为SDN应用提供底层网络的抽象模型。应用平面:应用平面由若干用户需要的SDN应用(SDNApplication)构成,它可以通过北向接口与SDN控制器进行交互,即这些应用能够通过可编程方式把需要请求的网络行为提交给控制器。管理平面:管理平面主要负责一系列静态的工作,这些工作比较适合在应用、控制、数据平面外实现。SDN的架构PART2特征:集中控制、开放接口、网络虚拟化ONF所定义的SDN的典型架构、SDN控制-数据平面接口:是控制平面和数据平面之间的接口。它提供的主要功能包括对所有转发行为进行控制、设备性能查询、统计报告、事件通知等。SDN北向接口:SDN北向接口是应用平面和控制平面之间的一系列接口。它主要负责提供抽象的网络视图,并使应用能直接控制网络的行为,其中包含从不同层次对网络及功能进行的抽象。这个接口也应该是一个开放的、与厂商无关的接口。01概述02SDN定义和架构03SDN特征——数据控制分离04SDN特征——网络可编程基本概念——传统网络设备的数控分离传统网络设备的数据和控制平面都是分布式的。控制平面由于要完成更多更灵活的功能,经常运行在可编程性良好的通用处理器上,而数据平面需要保证高速的交换能力,通常运行在具备高速硬件转发能力的线卡上,两者之间一般通过高速总线或专门的光纤互连。传统网络设备中数据与控制平面示意图数控分离历史网络控制节点NCP:最早期的数据控制分离思想来源于电话网络——AT&T公司在20世纪80年代采取数据控制分离的网络模型,为电话网络引入了网络控制点NCP(NetworkControlPoint)。数控分离历史与传统的电信网络(电话网)相比,Internet具有网络功能简单、终端功能复杂的特点,使得其得到迅速发展。采用“尽力而为”模式的Internet的最大问题之一就是难以保证承载业务的服务质量,缺少对网络状态的感知和控制,为此解决方案ATM网络和主动网络等,都或多或少使用了数控分离的管控策略。ForCES工作组是IETF在2002年专门成立的,它与2003年和2004年针对一般网络设备提出了控制面—转发面分离的基本结构,而后,一直专注于ForCES协议等标准草案文件的制定。数控分离历史数控分离历史决策平面扩散平面发现平面数据平面网络级目标直接控制全网视图针对网络逻辑决策平面和分布式硬件设备结合过紧的问题,Greenberg等人重新设计了互联网控制和管理结构,提出将决策逻辑从底层协议中完全分离出来的4D项目。在4D项目的基础上,SANE项目出现了,SANE在链路层和IP层之间定义了一个可以管理所有连接的保护层,所有路由和接入控制决策都通过这个保护层由一台中央服务器进行集中式控制。2007年提出的Ethane项目则在SANE项目的基础上进行了功能扩展,将安全管理策略添加到网络管理中,扩充了中央控制器的管理功能。4D框架体系模型在以上相关工作的基础上,斯坦福大学的研究人员与2008年提出了OpenFlow技术,OpenFlow更加明确的提出了数据控制分离的基本概念,打破了传统网络的分布式框架,简化了网络管理和配置操作,实现了高层控制逻辑的灵活性和可部署性,为SDN的概念和生态系统的出现迈出了重要一步。SDN的数据控制分离数据控制分离是SDN的主要特征之一。SDN提出将各个设备的管理系统(控制平面)从设备中抽取出来,通过软件统一地进行定义,而网络设备专门地进行数据通信工作(转发平面)。传统网络与SDN网络对比图SDN网络控制平面转发平面OpenFlow传统网络SDN的数据控制分离特征采用逻辑集中控制,对数据平面采用开放式接口需要解决分布式的状态管理问题优点全局集中控制和分布高速转发灵活可编程与性能的平衡开放性和IT化问题可扩展性问题一致性问题可用性问题SDN在数据控制分离方面对网络工作模式进行了创新,这种模式能否得到普遍认可还有待研究和市场检验,但是可以肯定的是,SDN目前在某些特定的场景下已经有基于数据控制思想的商业使用案例,并已经得到了市场的认可。01概述02SDN定义和架构03SDN特征——数据控制分离04SDN特征——网络可编程基本概念网络可编程性最初是指网络管理员可以通过命令行对设备进行配置,后来有了可编程路由器、NetFPGA等设备,这些设备的可编程性主要是对设备本身硬件电路级的可编程,即开发者是通过编译代码直接控制这些硬件来实现自己的协议或者功能。这种可编程的能力是对某台设备而言的,是一种处于最底层的编程能力,相当于计算机中汇编等级的编程语言,不够灵活便捷。SDN的网络可编程性是从另外一个角度来看的,传统网络设备需要通过命令行或者直接基于硬件的编译写入来对网络设备进行编程管理,现在管理者希望有更高级的编程方式,相当于Java等高级语言。管理者可以通过SDN中这种高级的编程能力实现与网络设备的双向交互,通过软件更加方便、灵活地管理网络。这种可编程性是基于整个网络的,而不是基于某台设备的。它是对网络整体功能的抽象,使程序能通过这种抽象来为网络添加新的功能。主动网络和SDN之间有很多的相似之处,但它并没有发展起来主动网络主动网络的基本思想是,打破传统网络只能被动传输信息的模式,允许网络中的节点在用户数据上执行用户所需的计算。主动网络架构网络可编程历史——主动网络Out-bandIn-band网络可编程历史——主动网络ANTS项目:通过编码分发的过程来压缩文件。SwitchWare项目:项目提出一种创新的SwitchWare交换机,该交换机使用一个编程元件完成交换功能,由可编程元件控制的如端口组成,被称为“交换插件”的程序部分被发送到交换机端口,然后编译执行。SmartPackets项目:该项目是将主动网络技术引入到网络管理中,一达到管理节点可编程化的目的。Netscript项目:该项目的体系结构应用了压缩技术,用脚本语言对传统网络的院士功能进行一系列简单的抽象主动网络通过一系列的编程接口来控制网络节点内的资源SDN网络可编程网络可编程性是SDN的另一个重要属性,他通过为开发者们提供强大的编程接口,从而使网络有了还好的编程能力。SDN的编程接口主要体现在北向接口上,北向接口提供了一系列丰富的API,开发者可以在此基础上设计自己的应用不必关心底层的硬件细节。上层应用网络设备APIAPIAPI网络设备网络设备网络设备控制数据平面接口(例如:OpenFlow)应用层控制层基础设施层SDN网络可编程SDN北向接口是上层应用与控制器交互的接口,可以是基于控制器本本身提供的各种接口API函数,也可以是现在最为流行的RESTAPI。SDN南向接口协议时集中式的控制平面和分布式的转发设备之间交互的接口协议,用于实现控制器对底层转发设备的管控。SDN的控制平面可以是分布式的,在这种情况下,就需要一种接口协议来负责控制器之间的通信,SDN的东西向接口主要解决了控制器之间物理资源共享、身份认证、授权数据库间协作等问题,实现多域间控制信息交互,从而实现底层基础设施透明化的多控制器组网策略。SDN网络可编程优势与问题优势SDN应用多集中在对控制平面的编程上、上层应用通过北向接口与控制器交互,然后控制器再通过南向接口与底层硬件交互,这样降低了程序与硬件的耦合度,只需实现不同的南向协议就可以在不同的硬件环境上执行相同的功能。SDN有一些明确的应用场景,使得业界对SDN的落地持有非常乐观的态度。SDN出现时硬件技术能基本支撑他的发展,有大批的厂商开发出了自己的SDN设备,且SDN设备的造价也越来越低。SDN的发展方向明确,SDN将目标放在为网络管理者和应用开发者提供强大的编程能力上,真正做到了为开发者提供一整套编程接口,让网络有强大的可编程能力。问题SDN所提供的强大的可编程能力需要数据平面的转发设备来支撑,只有转发设备提供了丰富的功能,SDN才能真正提供强大的编程能力。但目前主流的设备厂商都有自己的交换芯片,转发设备数据模型的设计也各不相同,这就导致SDN功能实现起来越来越复杂。POF目前主流的南向接口协议OpenFlow面临以下挑战:①处于被动演进的模式;②转发层面无状态性POF基于OpenFlow进行增强改进,POF的转发设备对数据报文处理转发中无须协议感知能力,网络行为完全由控制平面负责定义。POF还可以实现基于自定义协议的网络服务,这是目前OpenFlow无法做到的,这无疑给网络开发者提供了新的空间。因此,POF从很大程度上提高了SDN的可编程能力,满足更多的网络需求。在POF中,控制器主要通过定义数据的偏移和长度,识别已有协议类型和新的协议类型,并且可以控制所有协议报文的业务逻辑和转发规则。目前,华为已针对POF开发了相应控制器和交换机。POF控制器由基于Java开发的Floodlight改进实现,采用BSD/Apache许可授权。POF转发单元基于LinuxC,同样采用BSD许可授权。P42014年7月,斯坦福大学提出了SDN编程语言P4。这是一种声明式编程语言,通过P4开发者可以灵活地定义各种协议报文的格式。它主要用于编写程序以下达指令给数据转发平面的设备(如交换机、网卡、防火墙、过滤器等)处理数据分组。通过P4语言,可以很大程度上提升网络的可编程性。无论是在软件设计(编程、调试、代码覆盖、模块检查等)方面,还是在网络系统的设计上,都给用户带来了很多好处。P4有三大特性。①域可重构性:P4支持网络工程师在已经部署交换机后再更改交换机处理数据分组的方式。②协议无关:P4编程定义如何处理数据分组的转发,交换机不应该绑定任何网络协议。③目标无关:网络工程师通过P4能够描述从高性能硬件到软件交换机的包处理功能。

谢谢!

SDN数据平面01数据平面简介02开源交换机OpenvSwitch传统交换设备架构传统网络的设计遵循OSI的7层模型,交换设备包括了工作在第二层(数据链路层)的交换机和工作在第三层(网络层)的路由器。交换机可以识别数据分组中的MAC地址,并基于MAC地址来转发数据分组;路由器可以识别数据分组中的IP地址,并基于IP地址来转发数据分组和实现路由。传统交换设备由控制平面和数据平面组成。传统交换设备功能传统交换设备的控制平面和数据平面在物理上是紧密耦合的,逻辑上是相互分离的。控制平面通过网络操作系统和底层软件,生成、维护交换设备内部的转发表,并实现对网络的配置管理。数据平面通过硬件转发芯片对数据分组进行高速转发,基本功能主要包括转发决策、背板转发以及输出链路调度等几个方面。转发决策:在端口收到数据分组时,将数据分组中的目的地址与设备自身存储的MAC地址表或路由表进行匹配,从而确定数据分组转发的目的端口背板转发:交换机通过背板把各个端口连接起来,数据分组经转发决策后,由背板从入端口转发到目的端口。输出链路调度:各个端口针对接收线路和发送线路各有一个缓冲队列。当数据分组发往交换机时,发出的数据分组暂存在交换机的接收队列中,然后等待下一步处理。如果交换机决定把接收的数据分组发送给某一终端,这时候交换机把要发送的数据分组发往该接收终端所在端口的发送队列,然后发送到接收终端,如果终端忙则一直存储在发送队列中。传统交换设备架构与SDN数据平面架构传统网络的数据平面和控制平面在物理上是完全紧密耦合的,分布在各个单独的交换设备中,并只支持制定好的网络标准协议,用户无法部署新的网络策略。加之各厂商的设备接口均对外封闭,用户亦无法自行管理和调用网络设备,在使用厂商的设备时不得不同时依赖其软件和服务,网络相对僵化,缺乏足够的灵活性。不同于传统交换设备,SDN将交换设备的数据平面与控制平面完全解耦,所有数据分组的控制策略由远端控制器通过南向接口协议下发,网络的配置管理也同样由控制器完成,这大大提高了网络管控的效率。交换设备只保留数据平面,专注于数据分组的高速转发,降低了交换设备的复杂度。传统交换设备架构缺点SDN数据平面架构优势SDN交换设备架构SDN中交换设备不再有二层交换机、路由器、三层交换机之分。SDN交换设备架构如下图所示,SDN交换设备的基本功能仍然包括转发决策、背板转发、输出链路调度,但在功能的具体实现上与传统网络的交换设备有所不同。SDN交换设备的基本功能转发决策:SDN交换设备首先用流表代替了传统网络设备二层和三层转发表,该流表中的每个表项都代表了一种流解析以及相应的处理动作。数据分组进入SDN交换机后,先与流表进行匹配查找,若与其中一个表项匹配成功,则执行相应的处理动作;若无匹配项则上交控制器,由其决定处理决策。背板转发:就目前的网络设备来说,设备的速率瓶颈主要还是交换芯片,背板提供满足要求的交换速率并不难。输出链路调度:SDN交换机对QoS的支持主要有基于流表项设置报文入队列、根据Meter进行限速、基于Counter进行计费、基于Group的Select功能进行队列调度等。背板转发和输出链路调度功能没有给SDN交换机带来太大挑战,但转发决策却给SDN交换机在技术实现上带来了很大的难题SDN硬件交换机基于ASIC芯片的品牌交换机①NECIP8800系列交换机②IBMRackSwitchG8264交换机③HPSDN系列交换机④Arista7150S系列和7500E交换机⑤DCNCS16800系列交换机⑥CiscoNexus9000系列交换机⑦JuniperEX9200系列交换机⑧H3CS12500系列交换机⑨博科ICX7450交换机基于ASIC芯片的白盒交换机①盛科V330、V350、V580白盒交换机②Pica8白盒交换机系列③基于NP的SDN交换机④基于NetFPGA的SDN交换机SDN软件交换机由于当前OpenFlow标准仍在不断完善,支持OpenFlow标准的硬件交换机较少。相对于硬件交换机,在众多SDN软件交换机中,OpenFlow软件交换机成本更低、配置更为灵活,其性能基本可以满足中小规模实验网络的要求,因此OpenFlow软件交换机是当前进行创新研究、构建试验平台以及建设中小型OpenFlow网络的首选。(1)OpenvSwitch(2)Pantou(3)Indigo(4)LINC(5)OpenFlowClick(6)OF1.3SoftSwitch01数据平面简介02开源交换机OpenvSwitchSDN数据平面OpenvSwitch是一个优秀的开源软件交换机,支持主流的交换机功能,比如二层交换、网络隔离、QoS、流量监控等,而其最大的特点就是支持openflow,openflow定义了灵活的数据包处理规范。为用户提供L2-L7包处理能力。OVS支持多种Linux虚拟化技术,包括Xen、KVM以及VirtualBox。此外,OVS支持硬件交换机。OVS支持丰富的特性,如下:OpenvSwitch的典型组网OpenvSwitch具备很强的灵活性,可以在管理程序中作为软件交换机运行,也可以直接部署到硬件设备上作为控制层。利用其作为SDN的基础设施层转发设备,可以大幅降低部署成本,还可以提高网络的灵活性以及扩展性。OpenvSwitch系统架构OpenvSwitch系统架构分为内核空间(KernelSpace)、用户空间(UserSpace)、配置管理层(NetworkDevice)这3部分。其中,内核空间包含OVS模块和流表,用户空间运行着OVS的守护进程(ovs-vswitchd)和数据库(ovsdb-server),配置管理层包括ovs-dpctl、ovs-appctl、ovs-vsctl和ovs-ofctl等OpenvSwitch各模块简要介绍ovs-vswitchd:主要模块,实现vSwitch的守候进程(Daemon),包括一个支持流交换的DVS内核模块。ovsdb-server:轻量级数据库服务器,保存配置信息,ovs-vswitchd通过这个数据库获取配置信息。ovs-dpctl:用来配置vSwitch内核模块的一个工具。ovs-appctl:一个向ovs-vswtichd的守护进程发送命令的程序。ovs-vsctl:主要获取或更改ovs-vswitchd的配置信息,此工具操作时会更新ovsdb-server中的数据库。OpenvSwitch(datapath):内核模块,根据流表匹配结果做相应处理。ovs-ofctl:查询和控制OpenFlow虚拟交换机的流表。

谢谢!

SDN控制平面

01控制平面简介02开源控制器OpenDaylight0304OpenDaylight实验——安装和配置OpenDaylight实验——使用界面下发流表控制平面的定义控制平面负责创建维护网络拓扑信息、指导数据平面处理到达的数据包。网络交换设备架构SDN的控制平面模型SDN架构中,控制平面通过控制-转发接口使用控制协议(如OpenFlow)对网络设备进行集中式控制(区别与传统分布式的控制平面)网络设备通过接收控制协议消息生成转发表,据此对数据流量进行处理控制器向上暴露API用于开发控制器上的应用SDN控制器层次化体系结构基本功能层模块管理事件机制任务日志资源数据库网络基础服务层交换机管理主机管理拓扑管理路由、转发策略虚拟网管理SDN业务编排SDN控制器需要协调一系列分布在各下级平台的相关资源,并且有时需要保持事件完整性,通常将这个过程称为编排(Orchestration)将n层的节点看作服务器,n−1层的节点看作客户端。一个服务器控制多个客户端的情况都可以看作编排。例如,应用可以编排多个控制器,超级控制器(SuperController,SC)可以编排多个域内控制器(DomainController,DC),DC能够编排多个设备。目前SDN对编排还没有正式的定义。根据ONF的理解,SDN业务编排暂时可以定义为一个以最优方式满足竞争性需求的资源分配的持续过程。这里的“最优”至少可以包括优先化用户服务等级协定(ServiceLevelAgreement,SLA)保障和一些要素,包括用户端点位置、地理或拓扑距离、延迟、聚合或细粒度的负载、经济开销、资源共享或亲和度。这里的“持续”表示环境和服务需求随着时间推移在不断变化,所以编排是一个持续的、多维的优化反馈回路。SDN控制器评估要素网络虚拟化对OpenFlow的支持网络功能可扩展性性能控制器供应商集中管理和可视化网络安全性可靠性网络可编程性01控制平面简介02开源控制器OpenDaylight0304OpenDaylight实验——安装和配置OpenDaylight实验——使用界面下发流表OpenDaylight概述OpenDaylight项目在2013年初由Linux协会联合业内18家企业(包括Cisco、Juniper、Broadcom等多家传统网络设备商)创立;OpenDaylight提供开放的北向API,同时支持包括OF在内的多种南向接口协议,底层支持传统交换机和OpenFlow交换机;OpenDaylight是基于java实现的、面向模型驱动的控制器。技术:OSGI、Karaf、Yang;核心:MD-SAL、Configsubsystem;协议:Netconf、Restconf、OpenFlow、OVSDB;OpenDaylight版本现已发布第8个版本:氧版本;版本名称按元素周期表顺序依次命名;OpenDaylight总体架构详细介绍参见OpenDaylight官网:/carbon-fertile-ground-new-use-casesOpenDaylight控制器主要模块功能模块名功能SAL控制器模块化设计的核心,支持多种南向接口协议,屏蔽了协议间差异,为上层模块和应用提供一致性的服务拓扑管理负责管理节点、连接、主机等信息,并负责拓扑计算统计管理负责统计各种状态信息主机追踪负责追踪主机信息,记录主机的IP地址、MAC地址、VLAN以及连接交换机的节点和端口信息。该模块支持ARP请求发送及ARP消息监听,支持北向接口的主机创建、删除及查询FRM(ForwardingRulesManager,转发规则管理)负责管理流规则的增加、删除、更新、查询等操作,并在内存数据库中维护所有安装到网络节点的流规则信息,当流规则发生变化时负责维护规则的一致性交换机管理负责维护网络中节点、节点连接器、接入点属性、三层配置、Span配置、节点配置、网络设备标识ARP处理负责处理ARP报文SAL介绍SAL服务基于插件提供的特性来构建,上层服务请求被SAL映射到对应的插件,然后采用适合的南向接口协议与底层设备进行交互。各个插件之间相互独立并与SAL松耦合。SAL支持上层不同的控制功能模块,包括交换机管理、主机检测、统计管理、切片管理、拓扑管理和转发管理等。OpenDaylight代码结构OpenDaylight控制器Lithium-SR3版本代码结构:OpenDaylight系统架构OpenDaylight代码解析使攻击者非法获取主机的系统级访问权限,执行任意指令。使攻击者非法获取主机的系统级访问权限,执行任意指令。控制器集群对于控制器来说,集群不是功能,而是控制器必需的基础框架。集群作为其他模块正常工作的重要保障,使得控制器不再是一个单点故障点,这就需要控制器有灾难恢复机制和控制器实例之间数据一致性保障。MD-SALDatastore在OpenDaylight中,基于MD-SAL的应用将数据存储(DataStore)分为两种类型:一种类型称为配置,在NETCONF中以config:configuration模块来定义;另一种类型称为状态,在NETCONF中以config:stats模块来定义。MD-SAL实例Toaster源码分析Toaster应用一般由以下几个模块组成:应用模型模块、应用服务模块、应用提供模块、应用配置模块、应用组建模块、集成测试模块。OpenDaylight指南--控制器/en/stable-carbon/user-guide/opendaylight-controller-overview.html#controller-user-guide--使用界面/en/stable-carbon/user-guide/using-the-opendaylight-user-interface-(dlux).html--控制器开发指南/en/stable-carbon/developer-guide/controller.html#controller-dev-guide--基于ODL开发APP/en/stable-carbon/developer-guide/developing-apps-on-the-opendaylight-controller.html--安装指导/en/stable-carbon/getting-started-guide/installing_opendaylight.html01控制平面简介02开源控制器OpenDaylight0304OpenDaylight实验——安装和配置OpenDaylight实验——使用界面下发流表实验介绍实验内容:采用两种不同的方式启动Karaf控制台,对比两种方式的区别。安装OpenDaylight组件,掌握一系列相关的安装、查询命令。安装后进行简单的验证,确保OpenDaylight安装正确。实验目的:了解OpenDaylight的背景和基本架构。掌握安装、部署OpenDaylight的方法,能够独立解决实验过程中遇到的问题。实验拓扑实验拓扑包括一个控制器和一台主机设备:OpenDaylight的安装直接启动Karaf控制台后台启动Karaf控制台在Karaf控制台查看日志安装OpenDaylight组件验证OpenDaylight基本功能卸载OpenDaylight组件OpenDaylight配置配置TCP监听端口配置Web服务端口配置Java环境01控制平面简介02开源控制器OpenDaylight0304OpenDaylight实验——安装和配置OpenDaylight实验——使用界面下发流表实验介绍实验内容:比较使用YANGUI下发流表的方法,与直接在交换机中通过命令下流表的方法,总结两者的异同点。通过YANGUI下发流表控制主机之间的连通性,并且利用scapy工具进行测试验证。分别基于OpenFlow1.0协议和OpenFlow1.3协议下发流表,经过下流表的过程了解单级流表和多级流表的概念。实验目的:掌握YANGUI下发流表的方式,了解YANGUI的功能特点,以及其在OpenDaylight架构中所起的作用。通过下发流表的过程,梳理出数据包处理的简单流程。并且进一步了解单级流表和多级流表的处理过程。实验拓扑实验拓扑包括一个控制器,一个交换机和三台主机设备:基于OpenFlow1.0下发流表下发流表:检查流表是否已经成功下发:基于OpenFlow1.3下发流表检查流表是否已经成功下发:下发流表:

谢谢!

SDN仿真环境01配置Linux环境02Mininet介绍VMware简介VMwareWorkstation是美国VMware公司出品的一个用于运行虚拟机的软件。它可以在一台计算机上同时运行多个操作系统,包括Windows2003、WindowsXP、Windows7、Windows8、Windows10、Linux等。利用它,你可以在一台计算机上将硬盘和内存的一部分“拿出来”并虚拟出若干台计算机,虚拟的每台计算机可以运行单独的操作系统而互不干扰。这些“新”计算机各自拥有自己独立的CMOS、硬盘和操作系统,你可以像使用普通计算机一样对它们进行分区、格式化、安装系统和应用软件等操作,还可以将这几个“计算机”联成一个网络。在虚拟系统崩溃之后可直接删除,并不影响本机系统,本机系统崩溃后也不影响虚拟系统,可以下次重装后再加入以前做的虚拟系统。VMuareWorkstation也是唯一能在Windows和Linux主机平台上运行的虚拟计算机软件。Ubuntu简介Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统。Ubuntu基于DebianGNU/Linux,支持x86、amd64(x64)和PPC架构,由全球化的专业开发团队(Canonical公司)打造。Ubuntu基于Debian和GNOME,而从11.04版起,Ubuntu发行版放弃了GNOME,改为Unity。与Debian的不同之处在于,它每6个月会发布一个新版本。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。Ubuntu对GNU/Linux的普及特别是桌面普及做出了巨大贡献,由此使更多人可以共享开源的成果。在VMwareWorkstation上安装Ubuntu操作系统步骤1:运行VMware,创建新的虚拟机,选择“典型”,转至下一步。步骤2:选择“稍后安装操作系统”,转至下一步。步骤3:选择“Linux”→“Ubuntu64位”,转至下一步。步骤4:填写虚拟机名称,选择保存位置,转至下一步。步骤5:磁盘容量使用默认值,转至下一步,单击“完成”。步骤6:单击编辑虚拟机设置。步骤7:在CD/DVD右侧的选项中,选择“使用ISO映像文件”,单击“浏览”,选择下载好的Ubuntu映像文件,单击“确定”。步骤8:单击“开启此虚拟机”,进入安装。推荐使用英文,选择“InstallUbuntu”。步骤9:直接单击“Continue”。步骤10:使用Ubuntu默认的分区,不自己进行分区,分别单击“InstallNow”和“Continue”。步骤11:选择你的所在地,选择语言键盘,填写用户名、主机名和密码。步骤12:Ubuntu开始安装,完成后会提示重启,单击“RestartNow”。步骤13:Ubuntu安装完成。01SDN仿真基础02MininetMininet是由斯坦福大学基于LinuxContainer架构开发的一个进程虚拟化网络仿真工具,可以创建一个含有主机、交换机、控制器和链路的虚拟网络,其交换机支持OpenFlow,具有高度灵活的自定义软件定义网络。Mininet是什么Mininet结合了许多仿真器、硬件测试床和模拟器的优点。Compareto模拟器:运行真实的代码容易连接真实网络Compareto硬件测试床:便宜快速重新配置及重新启动Compareto仿真器:启动速度快扩展性大带宽提供多方便安装、易使用Mininet是一个不错的选择Mininet软件安装Mininet安装主要有三种方法(/download/):

使用装有Mininet的虚拟机github获取安装Mininet源代码Mininet文件包安装Mininet命令图谱网络构建启动参数内部交互命令Mininet--topo--custom--switch--controller--mac…外部运行参数dumpnetnodeslinksdpctliperf…-c清除配置信息-h帮助Mininet可视化Miniedit可视化,直接在界面上编辑任意拓扑,生成python自定义拓扑脚本,简单方便。Mininet2.2.0+内置miniedit。在mininet/examples下提供miniedit.py脚本,执行脚本后显示可视化界面,可自定义拓扑及配置属性。Miniedit启动自定义创建拓扑,设置设备信息运行拓扑并生成拓扑脚本Miniedit三步走实验内容:通过Mininet模拟二层交换机和两个主机,通过两个主机通信来了解交换机MAC地址学习过程。实验目的:了解交换机的MAC地址学习过程;了解交换机对已知单播、未知单播和广播帧的转发方式。Mininet实验——MAC地址学习

谢谢!

SDN协议接口

01南向接口协议02北向接口协议03

使用OpenFlow协议建立连接04

使用Postman下发流表南向接口协议概述SDN控制平面通过南向接口协议对数据平面进行控制和管理,包括链路发现、拓扑管理、策略制定、表项下发等。南向接口协议在完成控制平面与数据平面间交互的同时,也需要完成部分管理配置功能。SDN南向接口协议有很多种,其中发展较为成熟、使用较为广泛的交互协议是OpenFlow协议,较为典型的网络设备管理协议是NETCONF协议。OpenFlowv1.0架构OF交换机通过OpenFlow协议与控制器通信。流表、安全通道与OpenFlow协议是v1.0版本中最为核心的概念。OpenFlowv1.0流表项结构OpenFlow控制器通过部署流表来处理数据平面的流量。OpenFlowv1.0中每台OF交换机只有一张流表,这张流表中存储着许多的表项,每一个表项都表征了一个流及其对应的处理方法——动作(Action)表。一个数据分组进入OF交换机后需要先匹配流表,如果它的特征与其中某条表项相匹配,则按照相应的动作进行转发,否则封装为Packet-in消息并通过安全通道交给控制器,再由控制器决定如何处理。另外,每条流表项都存在一个有效期,过期之后流表会自动删除。OpenFlowv1.0流表项结构分组头域(HeadField):用于数据分组匹配计数器(Counter):用于保存与条目相关的统计信息动作表:用于匹配表项后对数据分组执行动作OpenFlowv1.0分组头域分组头域是数据分组匹配流表项时的参考依据,作用类似于传统交换机进行二层交换时匹配数据分组的MAC地址,也类似于路由器进行三层路由时匹配的IP地址。如图5-3所示,在OpenFlowv1.0中,流表项的分组头域包括了12个字段,协议称其为12元组(12-Tuple),它提供了1~4层的网络控制信息。OpenFlowv1.0——12元组字段字节数适用范围说明入端口未规定所有数据分组数据分组进入交换机的端口号,从1开始以太网源地址6B有效端口收到的数据分组无以太网目的地址6B有效端口收到的数据分组无以太网帧类型2B有效端口收到的数据分组OF交换机必须支持由IEEE802.2+SNAP或OUI规定的类型。使用IEEE802.3而非SNAP的帧类型为0x05FFVLAN标识12bit帧类型为0x8100的数据分组VLANIDVLAN优先级3bit帧类型为0x8100的数据分组VLANPCP字段源IP地址4BARP与IP数据分组可划分子网目的IP地址4BARP与IP数据分组可划分子网IP数据分组类型1BARP与IP数据分组对应ARP中opcode字段的低字节服务类型ToS6bitIP数据分组高6bit为ToS传输层源端口号/ICMP类型2BTCP/UDP/ICMP分组当数据分组类型是ICMP时,低8bit用于标识ICMP类型传输层目的端口号/ICMP码值2BTCP/UDP/ICMP分组当数据分组类型是ICMP时,低8bit用于标识ICMP码值OpenFlowv1.0——计数器类型计数器字节数/B每张表有效表项4查表的数据分组8匹配的数据分组8每条流表项接收数据分组8接收字节8生存时间(单位为s)4生存时间(单位为ns)4每个端口接收数据分组8传送数据分组8接收字节8传送字节8接收出现的错误8传送出现的错误8接收后丢弃的分组8传送时丢弃的分组8接收的帧排列错误8溢出错误8循环冗余校验(CRC)错误8帧冲突8每个队列传送的数据分组8传送的字节8溢出错误8流表项中的计数器被用来统计流的一些信息,例如查找次数、收发分组数、生存时间等。另外,OpenFlow针对每张表、每条流表项、每个端口、每个队列也都会维护它们相应的计数器。OpenFlowv1.0——动作表动作表指定了OF交换机处理相应流的行为。动作表可以包含0个或多个动作,交换机会按照这些动作的先后顺序依次执行。如果其中不包含转发(Forward)动作,数据分组就会被丢弃掉;如果包含转发动作,数据分组会得到相应的转发处理。必选动作是默认支持的,可选动作需要交换机通知控制器它支持的动作类型。另外,当流表项中存在OF交换机不支持的动作时,将向控制器返回错误消息。类型名称说明必选动作转发交换机必须支持将数据分组转发给设备的物理端口及下面的虚拟端口。ALL:数据分组复制为多份转发到所有端口(不包括入口,不考虑最小生成树)。CONTROLLER:将数据分组封装为Packet-in消息并转发给控制器。LOCAL:转发给本地网络栈。TABLE:对控制器Packet-out数据分组执行流表的匹配。IN_PORT:把数据分组从它的入端口发回去丢弃没有明确指明处理行动的表项,匹配的所有数据分组默认被丢弃可选动作转发NORMAL:按照OF交换机所支持的传统交换机的二层或三层策略进行转发。FLOOD:通过最小生成树从出口泛洪发出,但不包括入口入队将分组转发到某个端口上已配置好的队列中,队列的配置OpenFlow无法实现修改域交换机将修改数据分组的分组头,可以为12元组中的任意字段OpenFlowv1.0——流表的匹配在OpenFlowv1.0中,数据分组是依照12元组进行匹配的。当数据分组进入OF交换机后,就会将它的12元组解析出来,并将该12元组与流表中各个表项的分组头域中的12元组对照,以决定后续的动作,整个流程如下图所示。OpenFlow安全通道TCP三次握手Port6653OpenFlowSwitchControllerOF控制器OF交换机OFPT_HELLO(版本协商)建立连接OFPT_FEATURES_REQUESTOFPT_FEATURES_REPLYOFPT_ECHO

(保持连接)OFS功能查询OpenFlow消息消息类型描述Controller-to-Switch控制器使用这些消息可以添加、修改或删除流表项查询交换机的功能和统计,配置交换机,设置交换机端口属性将数据包发送出指定交换机端口。Asynchronous(异步)由交换机发起,发送消息给控制器这些消息可以是没有匹配交换机中任意流表项的数据包或数据包头,因此需要发送给控制器进行处理,在流状态、端口状态改变,或者产生一个错误消息时,进行通知Symmetric(对称)Hello消息在用户建立连接时控制器和交换机之间使用;Echo消息用来确定Controller-to-Switch连接的延时,验证Controller-to-Switch连接是否保持活跃的状态;Experimenter消息用来未来的消息扩展。Controller-to-Switch消息子类型功能描述Features控制器获取交换机的功能信息:DatapathID(64bits),n_buffers等Configuration控制器会设置和查询交换机配置参数Modify-State控制器通过Port-mod消息管理交换机的端口状态,通过Flow-mod消息增加或者删除交换机的流表项。Read-State查询特定Flow的statistics/description/features信息Send-Packet控制器指定从交换机某个端口发送数据包Barrier控制器用来确保request/reply消息之间的独立性Asynchronous消息子类型功能描述Packet-in交换机将数据包可以发送给控制器Flow-Removed流表项失效时间满足时,OFS会向控制器发送该消息Port-statusOFS会向控制器报告端口状态更新消息,添加,删除或更改端口Error交换机通过Error消息来通知控制器发生错误的信息Symmetric消息子类型功能描述HelloHello消息在用户建立连接时控制器和交换机之间使用EchoEcho消息用来确定Controller-to-Switch连接的延时,验证Controller-to-Switch连接是否保持活跃的状态VendorExperimenter消息用于厂商或用户的消息扩展。OpenFlow协议的演进OpenFlow协议由开放网络基金会(ONF)负责维护,OpenFlowv1.0作为第一个较为成熟的版本,于2009年12月发布,随后陆续地发布了几个版本,协议仍在不断地演进。OpenFlow协议面临的问题使攻击者非法获取主机的系统级访问权限,执行任意指令。使攻击者非法获取主机的系统级访问权限,执行任意指令。协议消息类型尚不完善SDN是一种革命性的技术,虽然各个版本在不断丰富消息类型,但整体来看OpenFlow在这方面仍然存在很多的缺陷,控制平面的安全性与扩展性问题SDN是集中式控制思想的产物。当网络规模超过一定限度时,单点控制会成为SDN中的瓶颈,而且其安全性也存在很大隐患。数据平面的设备性能问题OpenFlow将网络协议栈扁平化,对转发设备而言,协议栈各层次不再具有明确的界限,各个网络字段都可作为流表中的匹配域,还可以进行任意字段的组合。这种做法提高了网络灵活性,但硬件设备为了适应这种通用的匹配方式,需要付出高昂的代价,这极大地限制了流表的规模,也就限制了SDN的规模。NETCONF概述NETCONF定义了一种简单的管理网络设备的机制,通过该机制可以在设备中检索配置数据信息,使用相应的软件向设备上传新的配置数据。通过NETCONF协议,网络设备可以提供规范的应用程序接口(ApplicationProgrammingInterface,API),应用程序可以使用这个简单的API来发送和接收完整或部分的配置数据。NETCONF使用远程过程调用(RemoteProcedureCall,RPC)方式促进客户端和服务器之间的通信。客户端通常作为网络管理器的一部分运行脚本或应用程序。服务器通常是网络设备。客户端使用可扩展标记语言(ExtensibleMarkupLanguage,XML)对RPC进行编码,并使用安全的、面向连接的会话将其发送到服务器。服务器以XML编码的回复进行响应。请求和响应的具体内容在XMLDTDs或XML模式中进行了详细的描述。NETCONF协议分层架构NETCONF协议采用了分层协议模型,初始的配置数据通过每一层对应的协议进行包装,然后向下一层提供相关的服务。采用这种分层架构能够将NETCONF复杂的整体拆分成相对独立的几层,让每层都只专注于协议的某个方面,将各层内部发生修改之后对其他层的影响降到最低,使得整个过程实现起来更加简单。NETCONF分层介绍NETCONF协议在逻辑上可以划分为4层层面示例说明第一层:传输层BEEP,SSH,SSL传输层为NETCONFManager和NETCONFAgent之间交互提供通信路径。NETCONF协议可以使用任何符合基本要求的传输层协议承载。第二层:消息层/RPC层<rpc>,<rpc-reply>RPC层提供了一种简单的、不依赖于传输协议的RPC请求和响应机制。client采用<rpc>元素封装操作请求信息,并通过一个安全的、面向连接的会话将请求发送给服务器,而服务器将采用<rpc-reply>元素封装RPC请求的响应信息(即操作层和内容层的内容),然后将此响应信息发送给请求者。第三层:操作层<get-config>,<edit-config>,<notification>操作层定义了一系列在RPC中应用的基本操作,这些操作组成了NETCONF基本能力。第四层:内容层配置数据内容层描述了网络管理所涉及的配置数据,由于NETCONF内容层是唯一没有被标准化的层,没有标准的NETCONF数据建模语言和数据模型,所以各制造商设备的配置数据可能会不相同。01南向接口协议02北向接口协议03

使用OpenFlow协议建立连接04

使用Postman下发流表北向接口概述什么是SDN北向接口?从控制器的视角出发,向下与设备交互的接口称为南向接口协议,相应地控制器向上为SDNAPP提供的编程接口(API)就称为北向接口。之所以南向接口可称为协议,是因为它规定了控制器与设备间标准的双向通信流程,而北向接口只是一些APP调用控制器能力的函数,不能称其为协议。北向接口有什么用?SDN最本质的特征就是允许通过编程的方式控制网络,没有友好的北向接口,SDNAPP的开发门槛会非常高,而且会非常枯燥。北向接口以API的形式开放出强大的二次开发能力,使开发者可以着力关注更高层的应用业务,而非底层硬件实现。北向服务接口连通了网络操作系统与网络服务应用,是衡量网络开放化、网络智能化的重要标志。标准化的北向服务接口,通过解耦网络操作系统和网络应用服务,不仅可以支持网络编排管理系统统一调度和定制网络服务,还可以实现不同平台之间的跨平台异构互联。RESTfulAPI简介REST:RepresentationalStateTransfer表现层状态转化;资源统一接口URI无状态REST特点为:RESTfulAPI:资源所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。资源总要通过某种载体反应其内容,文本可以用txt格式表现,也可以用HTML格式、XML格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现;JSON是现在最常用的资源表示格式。资源总是以某种Representation为载体显示的,即序列化的信息;常用的Representation是json(推荐)或者xml(不推荐)等;Represntation是REST架构的表现层;RESTfulAPI:统一接口RESTful架构风格规定,数据的元操作,即CRUD(create,read,update和delete,即数据的增删查改)操作,分别对应于HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。即:GET(SELECT):从服务器取出资源(一项或多项);POST(CREATE):在服务器新建一个资源;PUT(UPDATE):在服务器更新资源(客户端提供完整资源数据);DELETE(DELETE):从服务器删除资源;RESTfulAPI:URI和无状态URI可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或识别符。一般的,每个资源至少有一个URI与之对应,最典型的URI即URL。无状态所谓无状态,即所有的资源,都可以通过URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。RESTfulAPI调测工具Postman介绍Postman是Google开发的一款功能强大的网页调试、发送网页HTTP请求,并能运行测试用例的Chrome插件。其主要功能:(1)模拟各种HTTP请求(2)Collection功能(测试集合)(3)人性化的Response整理(4)内置测试脚本语言(5)设定变量与环境01南向接口协议02北向接口协议03使用OpenFlow协议建立连接04

使用Postman下发流表实验介绍实验内容:学习OpenFlow交换机和控制器的配置方式。使用Wireshark抓包并进行分析,学习OpenFlow交换机与控制器的消息交互过程。实验目的:了解OpenFlow交换机与控制器建立TCP连接的过程。掌握配置安全通道中OpenFlow版本的方法。理解OpenFlow交换机和控制器的消息交互过程。实验拓扑实验拓扑包括一个控制器和一台主机设备:OpenFlow连接建立交互流程控制器与OpenFlow交换机通过TCP“三次握手”,建立有效的连接。其中,控制器一端的端口号为6633。控制器与OpenFlow交换机之间相互发送Hello消息,用于协商双方的OpenFlow版本号。在双方支持的最高版本号不一致的情况下,协商的结果将以较低的OpenFlow版本为准。如果双方协商不一致,还会产生Error消息。OpenFlow连接建立交互流程3.控制器向OpenFlow交换机发送FeaturesRequest消息,请求OpenFlow交换机上传自己的详细参数。OpenFlow交换机收到请求后,向控制器发送FeaturesReply消息,详细汇报自身参数,包括支持的buffer数目、流表数以及Actions等。4.控制器通过SetConfig消息下发配置参数,然后通过GetConfigRequest消息请求OpenFlow交换机上传修改后的配置信息。OpenFlow交换机通过GetConfigReply消息向控制器发送当前的配置信息。5.控制器与OpenFlow交换机之间发送Packet_out、Packet_

温馨提示

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

评论

0/150

提交评论