




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SDN基础知识
第1章SDN基础知识第2章SDN仿真环境第3章SDN数据平面第4章SDN控制平面第5章SDN协议接口第6章SDN基础应用开发第7章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年,互联网成功容纳了各种不同的底层网络技术和丰富的上层应用,迅速风靡全世界。传统网络面临的挑战PART1现有网络难以高效支撑未来用户、终端和应用的可持续发展,网络架构亟待更新SDN发展起源从2006年开始,斯坦福大学研究生MartinCasado参与了CleanSlate项目,并着手领导了一个叫作Ethane的项目。在2007年的SIGCOMM会议上,MartinCasado发表了一篇名为“Ethane:TakingControloftheEnterprise”的论文,该论文引起了学术界的广泛关注。2007年,MartinCasado联合NickMcKeown、ScottShenker等人共同创建了一个致力于网络虚拟化技术创新的公司——Nicira。2008年,NickMcKeown在SIGCOMM会议上发表文章“OpenFlow:EnablingInnovationinCampusNetworks”,首次提出了将OpenFlow协议用于校园网络的试验创新。OpenFlow开始正式进入人们的视野,SDN呼之欲出。2011年初,Google等企业共同成立了开放网络基金会(OpenNetworkingFoundation,ONF),并正式提出了SDN的概念。SDN发展起源2013年4月,由Cisco、Juniper、Broadcom、IBM等公司主导的SDN开源控制器平台项目——OpenDaylight,引发了IT界一次巨大的轰动。OpenDaylight项目的成立对SDN技术的发展具有里程碑式的意义,它代表了传统网络芯片、设备“巨头”对网络领域开源技术方向的认可。在2013年8月的SIGCOMM会议上,Google公司首次将其如何利用SDN技术解决数据中心之间流量问题的方案通过论文公之于众——“B4:ExperiencewithaGlobally-DeployedSoftwareDefinedWAN”。2014年4月,中国电信与华为联合宣布双方合作完成了全球首个运营商SDN商用部署,将SDN技术成功应用于数据中心网络。2014年8月,中国移动与华为合作利用SDN技术完成了政企专线业务在分组传送网(PacketTransportNetwork,PTN)中的改造,大幅提升了运维效率及带宽利用率。同年,中国联通首次成功实现了SDNIPRAN的商用,初步实现了运维精简、业务可视、快速创新的目标。2015年9月,中国联通发布了新一代网络架构CUBE-Net2.0白皮书,目标是基于SDN/NFV、云和超宽带技术实现网络重构。01概述02SDN定义和架构03SDN特征——数据控制分离04SDN特征——网络可编程SDN的定义PART2SDN(SoftwareDefinedNetwork),中文译为软件定义网络,是由美国斯坦福大学cleanslate研究组提出的一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。传统网络设备紧耦合的网络框架被拆分为应用、控制、转发三层分离的架构。控制功能被转移到了服务器,上层应用、底层转发设施被抽象成多个逻辑实体。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特征——网络可编程基本概念——传统网络设备的数控分离传统网络设备的数据和控制平面都是分布式的。控制平面由于要完成更多更灵活的功能,经常运行在可编程性良好的通用处理器上,而数据平面需要保证高速的交换能力,通常运行在具备高速硬件转发能力的线卡上,两者之间一般通过高速总线或专门的光纤互连。传统网络设备中数据与控制平面示意图数控分离历史1.早期的数据控制分离思想来源于电话网络。2.美国AT&T公司在20世纪80年代早期决定采取数据控制分离的网络模型,为电话网络引入了网络控制点NCP的概念。3.ForCES工作组是IETF在2002年专门成立的,并于2003年针对一般网络设备提出了控制平面-转发平面分离的基本结构。数控分离历史决策平面扩散平面发现平面数据平面网络级目标直接控制全网视图针对网络逻辑决策平面和分布式硬件设备结合过紧的问题,Greenberg等人重新设计了互联网控制和管理结构,提出将决策逻辑从底层协议中完全分离出来的4D项目。在4D项目的基础上,SANE项目出现了,SANE在链路层和IP层之间定义了一个可以管理所有连接的保护层,所有路由和接入控制决策都通过这个保护层由一台中央服务器进行集中式控制。2007年提出的Ethane项目则在SANE项目的基础上进行了功能扩展,将安全管理策略添加到网络管理中,扩充了中央控制器的管理功能。4D框架体系模型在以上相关工作的基础上,斯坦福大学的研究人员与2008年提出了OpenFlow技术,OpenFlow更加明确的提出了数据控制分离的基本概念,打破了传统网络的分布式框架,简化了网络管理和配置操作,实现了高层控制逻辑的灵活性和可部署性,为SDN的概念和生态系统的出现迈出了重要一步。SDN的数据控制分离数据控制分离是SDN的主要特征之一。SDN提出将各个设备的管理系统(控制平面)从设备中抽取出来,通过软件统一地进行定义,而网络设备专门地进行数据通信工作(转发平面)。传统网络与SDN网络对比图SDN的数据控制分离特征采用逻辑集中控制,对数据平面采用开放式接口需要解决分布式的状态管理问题优点全局集中控制和分布高速转发灵活可编程与性能的平衡开放性和IT化问题可扩展性问题一致性问题可用性问题SDN在数据控制分离方面对网络工作模式进行了创新,这种模式能否得到普遍认可还有待研究和市场检验,但是可以肯定的是,SDN目前在某些特定的场景下已经有基于数据控制思想的商业使用案例,并已经得到了市场的认可。01概述02SDN定义和架构03SDN特征——数据控制分离04SDN特征——网络可编程基本概念网络可编程性最初是指网络管理员可以通过命令行对设备进行配置,后来有了可编程路由器、NetFPGA等设备,这些设备的可编程性主要是对设备本身硬件电路级的可编程。这种可编程的能力是对某台设备而言的,是一种处于最底层的编程能力,相当于计算机中汇编等级的编程语言,不够灵活便捷。SDN的网络可编程性是从另外一个角度来看的,管理者可以通过SDN中这种高级的编程能力实现与网络设备的双向交互,通过软件更加方便、灵活地管理网络。这种可编程性是基于整个网络的,而不是基于某台设备的。它是对网络整体功能的抽象,使程序能通过这种抽象来为网络添加新的功能。主动网络和SDN之间有很多的相似之处,但它并没有发展起来主动网络主动网络的基本思想是,打破传统网络只能被动传输信息的模式,允许网络中的节点在用户数据上执行用户所需的计算。主动网络架构网络可编程历史——主动网络Out-bandIn-band网络可编程历史——主动网络ANTS项目:通过编码分发的过程来压缩文件。SwitchWare项目:项目提出一种创新的SwitchWare交换机,该交换机使用一个编程元件完成交换功能,由可编程元件控制的如端口组成,被称为“交换插件”的程序部分被发送到交换机端口,然后编译执行。SmartPackets项目:该项目是将主动网络技术引入到网络管理中,一达到管理节点可编程化的目的。Netscript项目:该项目的体系结构应用了压缩技术,用脚本语言对传统网络的院士功能进行一系列简单的抽象主动网络通过一系列的编程接口来控制网络节点内的资源SDN网络可编程网络可编程性是SDN的另一个重要属性,他通过为开发者们提供强大的编程接口,从而使网络有了还好的编程能力。SDN的编程接口主要体现在北向接口上,北向接口提供了一系列丰富的API,开发者可以在此基础上设计自己的应用不必关心底层的硬件细节。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配置Linux环境02Mininet介绍03Mininet实验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安装完成。01配置Linux环境02Mininet介绍03Mininet实验Mininet是由斯坦福大学基于LinuxContainer架构开发的一个进程虚拟化网络仿真工具,可以创建一个含有主机、交换机、控制器和链路的虚拟网络,其交换机支持OpenFlow,具有高度灵活的自定义软件定义网络。Mininet是什么相较于仿真器:启动速度快扩展性大带宽提供多方便安装、易使用相较于模拟器:运行真实的代码容易连接真实网络相较于硬件测试床:便宜快速重新配置及重新启动Mininet软件安装Mininet安装主要有三种方法(/download/):
使用装有Mininet的虚拟机github获取安装Mininet源代码Mininet文件包安装Mininet命令图谱网络构建启动参数内部交互命令Mininet--topo--custom--switch--controller--mac…外部运行参数dumpnetnodeslinksdpctliperf…-c清除配置信息-h帮助01配置Linux环境02Mininet介绍03Mininet实验实验内容:利用Mininet的可视化应用完成自定义拓扑的创建。实验目的:了解交换机的MAC地址学习过程;了解交换机对已知单播、未知单播和广播帧的转发方式。Mininet实验——可视化应用Mininet可视化Miniedit可视化,直接在界面上编辑任意拓扑,生成python自定义拓扑脚本,简单方便。Mininet2.2.0+内置miniedit。在mininet/examples下提供miniedit.py脚本,执行脚本后显示可视化界面,可自定义拓扑及配置属性。Miniedit启动自定义创建拓扑,设置设备信息运行拓扑并生成拓扑脚本Miniedit三步走实验内容:通过Mininet模拟二层交换机和两个主机,通过两个主机通信来了解交换机MAC地址学习过程。实验目的:了解交换机的MAC地址学习过程;了解交换机对已知单播、未知单播和广播帧的转发方式。Mininet实验——MAC地址学习初始状态交换机A、B的MAC表均为空MAC地址学习过程分析在11上ping33主机之后,MAC地址表分别为在33上ping11主机之后,MAC地址表分别为
谢谢!
SDN数据平面01数据平面简介02开源交换机OpenvSwitch03OpenvSwitch实验传统交换设备架构传统网络的设计遵循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开源交换机OpenvSwitch03OpenvSwitch实验SDN数据平面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虚拟交换机的流表。01数据平面简介02开源交换机OpenvSwitch03OpenvSwitch实验OVS的安装部署实验内容:了解OpenvSwitch的版本信息以及安装需求,实现源代码安装OpenvSwitch。配置、运行OpenvSwitch,验证安装是否正确。实验目的:了解OpenvSwitch的背景、功能和基本组成结构。掌握安装部署OpenvSwitch的方法,能够独立解决安装部署中遇到的问题。OVS的安装部署步骤1解压源文件,生成Makefile#cd/home/openlab/lab#tar-zxvfopenvswitch-2.3.2.tar.gz#cdopenvswitch-2.3.2#./configure--with-linux=/lib/modules/3.13.0-24-generic/build步骤2编译安装OpenvSwitch#make#makeinstall步骤3配置OpenvSwitch#insmod./datapath/linux/openvswitch.ko#mkdir-p/usr/local/etc/openvswitch#ovsdb-toolcreate/usr/local/etc/openvswitch/conf.db/usr/local/share/openvswitch/vswitch.ovsschema#ovsdb-server--remote=punix:/usr/local/var/run/openvswitch/db.sock--remote=db:Open_vSwitch,Open_vSwitch,manager_options--private-key=db:Open_vSwitch,SSL,private_key--certificate=db:Open_vSwitch,SSL,certificate--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert--pidfile--detach步骤4初始化数据库并启动#ovs-vsctl--no-waitinit#ovs-vswitchd--pidfile--detachOVS的网桥管理实验内容:学习网桥的基本理论知识。学习常用的网桥命令,进行网桥和端口的添加、删除、查看等操作。实验目的:了解网桥(Bridge)的基本概念以及工作原理。掌握网桥相关命令的基本使用方法。OVS的网桥管理执行以下命令添加名为br0的网桥。#ovs-vsctladd-brbr0执行以下命令,列出OpenvSwitch中所有网桥,如下所示。#ovs-vsctllist-br执行以下命令,列出挂接到网桥br0上的所有网卡,如下所示。#ovs-vsctllist-portsbr0执行以下命令,列出挂接到eth0网卡上的所有网桥,如下所示。#ovs-vsctlport-to-breth0执行以下命令,查看OpenvSwitch的网络状态,如下所示。#ovs-vsctlshow步骤1添加网桥端口执行以下命令,将物理网卡挂接到网桥br0上,如下所示。#ovs-vsctladd-portbr0eth0说明:port和bridge是多对一的关系,也就是说一个网桥上可以挂接多个物理网卡。OVS的网桥管理步骤2删除网桥端口执行以下命令,删除挂接到网桥br0上的网卡eth0。#ovs-vsctldel-portbr0eth0执行以下命令,查看OpenvSwitch的网络状态,如下所示。#ovs-vsctlshow由上可知,删除et0后网桥br0依旧存在。执行如下命令,删除网桥br0,并进行确认,如下所示。#ovs-vsctldel-brbr0说明:如果不删除eth0直接删除br0,br0及挂接到br0上的端口会被一并删除。
OVS的流表管理实验内容:学习OpenvSwitch流表的概念、作用及常用命令。进行流表的添加、查看等操作。实验目的:了解OpenvSwitch流表的基本概念。掌握流表的基本命令及其使用方法。OVS的流表管理以root用户登录交换机,执行以下命令,查看镜像中原有的网桥,如下所示。#ovs-vsctlshow执行以下命令,删除当前网桥,并进行确认,如下所示。#ovs-vsctldel-brbr-sw#ovs-vsctlshow执行以下命令,添加网桥,并查看虚拟交换机的基本信息,如下所示。#ovs-vsctladd-brbr0#ovs-ofctlshowbr0OVS的流表管理执行以下命令,查看虚拟交换机上初始流表信息,如下所示。#ovs-ofctldump-flowsbr0执行以下命令,添加一条流表项,设置流表项生命周期为1000s,优先级为17,入端口为3,动作是output:2。#ovs-ofctladd-flowbr0idle_timeout=1000,priority=17,in_port=3,actions=output:2说明:这条流表项的作用是将端口3接收到的数据包从端口2输出。
执行以下命令,查看交换机上所有流表信息,如下所示。#ovs-ofctldump-flowsbr0执行以下命令,删除入端口为3的的流表项,删除后,再次查看流表信息,如下所示。#ovs-ofctldel-flowsbr0in_port=3#ovs-ofctldump-flowsbr0OVS的QoS设置及端口映射实验内容:利用OpenvSwitch设置端口速率,通过对比主机间的吞吐量,直观地展示出利用OpenvSwitch配置QoS的效果。学习端口映射的作用,利用OpenvSwitch设置端口映射。实验目的:了解QoS、端口映射等相关网络知识。掌握利用OpenvSwitch调控网络性能。OVS的QoS设置在主机1上执行以下命令设置eth0吞吐量为100±50Mbps。#ovs-vsctlsetinterfaceeth0ingress_policing_rate=100000#ovs-vsctlsetinterfaceeth0ingress_policing_burst=50000说明:利用ingress_policing_rate设置eth0端口最大速率(kbps),ingress_policing_burst设置最大浮动速率(kbps)。在主机2上执行以下命令启动客户端,测量服务器与主机之间的吞吐量,如下所示。#netperf-tUDP_STREAM-H-p9991由图可知,端接收速率明显降低。OVS的端口映射执行以下命令查看端口uuid。由于端口比较多,用|more分页显示。#ovs-vsctllistport|moreeth2uuid是:dff77057-e7a8-43ff-95f7-8c6e3308fd87,如下所示。
eth1uuid是:2e9edacd-f52a-4855-83b8-3839891b546c,如下所示。OVS的端口映射eth3uuid是:679aefab-88ba-44da-a1f7-0324a5790759,如下所示。执行以下命令将发往eth1端口和从eth2端口发出的数据包全部定向到eth3端。#ovs-vsctl--setbridgebr-swmirrors=@m----id=@mcreatemirrorname=mymirrorselect-dst-port=2e9edacd-f52a-4855-83b8-3839891b546cselect-src-port=dff77057-e7a8-43ff-95f7-8c6e3308fd87output-port=679aefab-88ba-44da-a1f7-0324a5790759
谢谢!
SDN控制平面
01控制平面简介02开源控制器OpenDaylight0304OpenDaylight实验——安装和配置OpenDaylight实验——使用界面下发流表SDN控制器层次化架构基本功能层模块管理事件机制任务日志资源数据库网络基础服务层交换机管理主机管理拓扑管理路由、转发策略虚拟网管理控制器是SDN的重要组成部分,其设计与实现是SDN最为关键的技术环节之一,因此理解控制器的架构对于深入研究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等多家传统网络公司)创立,旨在推出一个开源的通用SDN平台。OpenDaylight项目的设计目标是降低网络运营的复杂度,扩展现有网络架构中硬件的生命期,同时能够支持SDN新业务和新能力的创新。OpenDaylight开源项目希望能够提供开放的北向API,同时支持包括OpenFlow在内的多种南向接口协议,底层支持传统交换机和OpenFlow交换机。OpenDaylight拥有一套模块化、可插拔且极为灵活的控制器,能够被部署在几乎所有支持Java的平台上。目前,OpenDaylight的基本版本已经实现了传统二、三层交换机的基本转发功能,并支持任意网络拓扑和最优路径转发。OpenDaylight总体架构OpenDaylight主要模块功能模块名功能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应用一般由以下几个模块组成:应用模型模块、应用服务模块、应用提供模块、应用配置模块、应用组建模块、集成测试模块。01控制平面简介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南向接口协议02北向接口协议03
使用OpenFlow协议建立连接04
使用Postman下发流表南向接口协议概述SDN控制平面通过南向接口协议对数据平面进行控制和管理,包括链路发现、拓扑管理、策略制定、表项下发等。南向接口协议在完成控制平面与数据平面间交互的同时,也需要完成部分管理配置功能。SDN南向接口协议有很多种,其中发展较为成熟、使用较为广泛的交互协议是OpenFlow协议,较为典型的网络设备管理协议是NETCONF协议,本节将分别对这两种协议进行详细介绍。OpenFlow协议架构OF交换机通过OpenFlow协议与控制器通信。流表、安全通道与OpenFlow协议是v1.0版本中最为核心的概念。流表是一些针对特定流的策略的集合,负责数据分组的查询和转发,主要包含数据分组的匹配特征和处理方法。OF交换机通过安全通道与控制器相连,安全通道上传输的就是OpenFlow协议消息,负责控制器与交换机间的交互。OpenFlow流表项结构OpenFlowv1.0流表项结构OpenFlow的流表项主要包括3个部分:分组头域(HeadField):用于数据分组匹配;计数器(Counter):用于保存与条目相关的统计信息;动作表:用于匹配表项后对数据分组执行动作。OpenFlow分组头域分组头域是数据分组匹配流表项时的参考依据,作用类似于传统交换机进行二层交换时匹配数据分组的MAC地址,也类似于路由器进行三层路由时匹配的IP地址。如图5-3所示,在OpenFlowv1.0中,流表项的分组头域包括了12个字段,协议称其为12元组(12-Tuple),它提供了1~4层的网络控制信息。OpenFlow12元组字段字节数适用范围说明入端口未规定所有数据分组数据分组进入交换机的端口号,从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中12元组详细信息:OpenFlow计数器类型计数器字节数/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针对每张表、每条流表项、每个端口、每个队列也都会维护它们相应的计数器。OpenFlow动作表动作表指定了OF交换机处理相应流的行为。动作表可以包含0个或多个动作,交换机会按照这些动作的先后顺序依次执行。如果其中不包含转发(Forward)动作,数据分组就会被丢弃掉;如果包含转发动作,数据分组会得到相应的转发处理。类型名称说明必选动作转发交换机必须支持将数据分组转发给设备的物理端口及下面的虚拟端口。ALL:数据分组复制为多份转发到所有端口(不包括入口,不考虑最小生成树)。CONTROLLER:将数据分组封装为Packet-in消息并转发给控制器。LOCAL:转发给本地网络栈。TABLE:对控制器Packet-out数据分组执行流表的匹配。IN_PORT:把数据分组从它的入端口发回去丢弃没有明确指明处理行动的表项,匹配的所有数据分组默认被丢弃可选动作转发NORMAL:按照OF交换机所支持的传统交换机的二层或三层策略进行转发。FLOOD:通过最小生成树从出口泛洪发出,但不包括入口入队将分组转发到某个端口上已配置好的队列中,队列的配置OpenFlow无法实现修改域交换机将修改数据分组的分组头,可以为12元组中的任意字段OpenFlow流表的匹配在OpenFlowv1.0中,数据分组是依照12元组进行匹配的。当数据分组进入OF交换机后,就会将它的12元组解析出来,并将该12元组与流表中各个表项的分组头域中的12元组对照,以决定后续的动作,整个流程如下图所示。OpenFlow安全通道OpenFlow安全通道负责承载OpenFlow协议的消息,不管是流表的下发还是其他的控制消息,都要经过这条通道。这部分流量属于OpenFlow网络的控制信令,不同于数据平面的网络流,它不需要经过交换机流表的检查。为了保证这部分流量安全可靠的传输,OpenFlowv1.0规定通道建立在TCP连接之上,采用安全传输层协议(TransportLayerSecurity,TLS)进行加密。OpenFlow安全通道的建立OpenFlow安全通道的维护OpenFlow协议消息OpenFlow协议消息——Controller-to-Switch子类型功能描述Features安全通道建立以后,控制器会立即发送Features-Request消息给交换机,以获取交换机支持的相关特性。Configuration控制器可以通过Set-Config消息设置交换机的配置信息,通过Get-Config消息查询配置信息,交换机需要通过Config-Reply消息做出应答。Modify-State控制器通过Port-mod消息管理交换机的端口状态,通过Flow-mod消息增加或者删除交换机的流表项。Read-StateOpenFlow会维护每张表、每个流表项、每个端口、每个队列相应的计数器,当控制器需要统计信息时,还会向交换机发送相关的Request消息,请求相关信息。Send-Packet很多情况下,控制器需要发送消息到数据平面,这时可以通过Packet-out消息封装好数据分组并传给OF交换机,并在该消息中指定特定的动作表,指导交换机如何处理这个数据分组,而不再进行流表的匹配。Barrier控制器通过Barrier-Request消息确保之前下发的消息已经被交换机执行完。Controller-to-Switch(控制器—交换机):这类消息由控制器发起。Asynchronous消息子类型功能描述Packet-in收到的数据分组如果在流表中没有匹配的流表项,或者匹配的流表项中给出了转发动作,但动作中指定端口为CONTROLLER时,OF交换机会封装Packet-in消息,把这个数据分组上交给控制器。Flow-Removed交换机中的流表项因为超时或修改等原因被删除掉时,会触发Flow-Removed消息,触发的前提是在下发这条流表项时flags字段置位了OFPFF_SEND_FLOW_REM。Port-Status交换机端口状态发生变化时(如Up/Down),会触发Port-Status消息报告端口的信息以及发生的状态变化(如Add、Delete或者Modify)。Error交换机通过Error消息来通知控制器发生错误的信息。Asynchronous(异步):这类消息由交换机主动发起。用来将网络事件或交换机状态的变化更新到控制器。Symmetric消息子类型功能描述Hello认证通过后,双方通过握手消息(Hello)建立安全通道。Echo双方均可以主动向对方发出Echo-Request消息,接收者需要回复Echo-Reply。该消息用来“保活”,也可以用来测量延迟。VendorVendor是为未来的协议版本预留的,以便允许OF交换机厂商提供额外的OpenFlow功能。Symmetric(对称):这类消息可由控制器发起,也可以由OF交换机发起。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层:层面说明第一层:传输层面向连接;身份认证、完整性和机密性;强制性运输协议。第二层:消息层NETCONF协议采用基于RPC的通信模式。NETCONF协议使用<rpc>和<rpc-reply>元素来提供与传输协议相独立的NETCONF请求和响应,来完成对网络设备的配置管理工作。第三层:操作层NETCONF协议在操作层中提供了一系列低级别操作来管理设备配置和检索设备状态信息,而设备状态信息一般存放在数据库中,这些操作提供了检索、配置、复制和删除配置数据存储的功能。第四层:内容层内容层由配置数据和通知数据组成。在NETCONF的标准规定中并没有对内容层进行标准化,但是在RFC6020标准中提出的YANG数据建模语言被应用于NETCONF数据模型和协议操作。01南向接口协议02北向接口协议03
使用OpenFlow协议建立连接04
使用Postman下发流表北向接口协议概述北向接口是提供给运营商或者用户接入和管理的接口,用户通过控制器提供的北向接口定义和开发应用层中的网络管理应用程序。与南向接口领域已经有OpenFlow等多种国际标准不同,北向接口方面还缺少业界公认的标准。其主要原因是北向接口直接为业务应用服务,其设计需密切联系业务应用需求,具有多样化的特征,很难统一。本节针对RESTfulAPI这一北向接口进行介绍。RESTfulAPI简介RESTfulAPI指的就是REST风格的应用程序接口。最初是由RoyFielding(参与设计HTTP)在其博士毕业论文中提出。REST的全称是RepresentationalStateTransfer,可以翻译为“描述性状态迁移”。REST主要有以下几个特点:资源统一资源标识符统一接口无状态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连接建立交互流程1、控制器与OpenFlow交换机通过TCP“三次握手”,建立有效的连接。其中,控制器一端的端口号为6633。2、控制器与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_in消息,通过Packet_out中内置的LLDP包,进行网络拓扑的探测。6.控制器与OpenFlow交换机之间通过发送EchoRequest、EchoReply消息,保证二者之间存在有效连接,避免失联。OpenFlowv1.3交互流程分析01南向接口协议02北向接口协议03
使用OpenFlow协议建立连接04使用Postman下发流表实验介绍实验内容:学习OpenFlow流表的组成,包头域的解析流程及流表的匹配流程。设置OpenDaylight控制器对接OpenvSwitch交换机。使用Postman工具,下发L2、L3、L4层流表并验证流表下发效果。实验目的:掌握OpenFlow流表相关知识,理解SDN中L2、L3、L4层流表的概念。学习并掌握使用Postman工具下发L2、L3、L4层流表的方法。实验拓扑实验拓扑包括一个控制器、一个交换机和两台主机设备:L2层流表下发与验证L2层对应OSI模型的二层,控制器可以通过匹配源MAC地址、目的MAC地址、以太网帧类型、VLANID、VLAN优先级等字段实现流的转发。本实验基于源和目的MAC地址进行数据流的转发。L3层流表下发与验证匹配源IP地址L3层对应OSI模型的三层,三层流表主要匹配IP包的协议类型和IP地址。L3层流表下发与验证匹配nw_proto字段L4层流表下发与验证L4对应OSI模型中的四层,即流表对应的TCP/UDP源端口(TCP/UDPsrcport)、TCP/UDP目的端口号(TCP/UDPdstport)字段。本实验匹配TCP目的端口。
谢谢!
SDN基础应用开发01SDN应用开发简介02防DDoS攻击SDN应用开发03
服务器灾备SDN应用开发04
简易负载均衡SDN应用开发SDN应用开发场景SDN的应用场景非常广泛,常见的SDN应用开发场景按照功能可划分为以下3种:基于SDN的流量调度、流量可视化应用开发流量采集模块--数据分析模块--前端展示模块--控制模块基于SDN的网络安全应用开发防火墙模块--网络策略分析模块--前端展示模块基于SDN的上层业务应用开发。
上层应用模块--上层应用管理模块--策略转化模块01SDN应用开发简介02防DDoS攻击SDN应用开发03
服务器灾备SDN应用开发04
简易负载均衡SDN应用开发DDoS攻击简介DoS(DenialofService,即拒绝服务)攻击是一种很简单但又很有效的进攻方式。它的目的是拒绝服务访问,破坏组织的正常运行。DoS攻击的基本过程如右图所示首先攻击者向服务器发送众多的带有虚假地址的请求服务器发送回复信息后等待回传信息,由于地址是伪造的,所以服务器一直等不到回传的消息,分配给这次请求的资源就始终没有被释放当服务器等待一定的时间后,连接会因超时而被切断,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽DDoS攻击典型场景DDoS攻击场景现象流量型(直接)SYN\ACK\ICMP\UDP\ConnectionFLOOD等DDoS告警流量型(反射)NTP\DNS\SSDP\ICMPFLOOD等DDoS告警CC流量变化可能不明显,业务访问缓慢,超时严重,大量访问请求指向同一个或少数几个页面HTTP慢速流量变化可能不明显,业务访问缓慢,超时严重,大量不完整的HTTPGET请求,出现有规律大小(通常很小)的HTTPPOST请求的报文URL反射流量变化明显,业务访问缓慢,超时严重,大量请求的Referer字段相同,表明均来自同一跳转页面各种DoS效果漏洞利用入侵检测防御设备可能出现告警,DDoS攻击检测设备告警不明显针对典型DDoS攻击通过攻击特征进行分类,转换为攻击场景:SDN应用开发示例:防DDoS攻击核心技术——sFlowsFlow技术是一种以设备端口为基本单元的数据流随机采样的流量监控技术,不仅可以提供完整的第二层到第四层甚至全网范围内的实时流量信息,而且可以适应超大网络流量环境下的流量分析。sFlow监控工具由sFlowAgent和sFlowCollector两部分组成。Agent作为客户端,一般内嵌于网络转发设备,通过获取设备上的接口统计信息和数据信息,将信息封装成sFlow报文,当sFlow报文缓冲区满或是在sFlow报文缓存时间超时后,sFlowAgent会将sFlow报文发送到指定的Collector。Collector作为远端服务器SDN应用开发示例:防DDoS攻击本示例中,Collector作为远端服务器,部署在Op
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届高三英语高考模拟风向标卷02新高考I卷 含解析
- 社会安全防范知识试题及答案
- 职业教育的保安证考试试题及答案
- 效复习:2025年保安证考试试题及答案
- 安全文明施工措施方案
- 2025年高中化学模拟试题及答案筛选技巧
- 湖南食品药品职业学院《焙烤食品工艺学》2023-2024学年第二学期期末试卷
- 2025年保安证考试在线模拟试题及答案
- 2025届宁夏银川市第一中学高三下第三次模拟考试生物试题含解析
- 重庆工商职业学院《人居环境概论一》2023-2024学年第二学期期末试卷
- 厂房安全管理制度
- 第四单元整本书阅读《平凡的世界》(第一课时)公开课一等奖创新教案-【中职专用】(中职语文高教版2023-2024-基础模块上册)
- 专题七-苏联社会主义建设的经验与教训
- 逾期催收技巧培训课件
- 客服面试常见问题及回答技巧(3篇)
- 《观察力的培养》课件
- 借条加担保人正规的范本
- 儿童焦虑性情绪障碍筛查量表(SCARED)
- 设计变更工作流程(附设计变更申请表)
- TCI 056-2023 LED储能道路灯具
- 妇女保健知识讲座
评论
0/150
提交评论