软件定义网络(SDN)基础教程(第2版)(微课版) 课件 第5章 SDN协议接口v1.1_第1页
软件定义网络(SDN)基础教程(第2版)(微课版) 课件 第5章 SDN协议接口v1.1_第2页
软件定义网络(SDN)基础教程(第2版)(微课版) 课件 第5章 SDN协议接口v1.1_第3页
软件定义网络(SDN)基础教程(第2版)(微课版) 课件 第5章 SDN协议接口v1.1_第4页
软件定义网络(SDN)基础教程(第2版)(微课版) 课件 第5章 SDN协议接口v1.1_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

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消

温馨提示

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

评论

0/150

提交评论