版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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交换
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 围绕2026年人工智能在制造业的应用升级方案
- 旅游党建工作实施方案
- 人力资源结构2026降本增效项目分析方案
- 生育保障工作方案范文
- 小组工作方案团结
- 供应链审查2025合规性评估与优化方案
- 新媒体内容版权保护培训课程升级方案
- 城市地铁TBM复合施工方案
- 安全生产事故频发
- 搞电商平台建设方案
- 2026年重庆市地理生物会考真题试卷+解析及答案
- 2025年甘肃省平凉市庄浪县老年大学选聘专业授课教师笔试备考试题及答案解析
- 【武汉】2025年湖北武汉市教育系统专项招聘事业单位编制教师679人笔试历年典型考题及考点剖析附带答案详解
- 家庭教育指导师题库(附答案)
- GB/T 46918.2-2025微细气泡技术水中微细气泡分散体系气体含量的测量方法第2部分:氢气含量
- 蛋糕店人员培训制度
- 农学专业中级试题及答案
- 2025年工艺工程师招聘面试参考题库及答案
- 工程项目管理关键绩效指标体系
- 挖掘机操作劳动合同范文
- 2025年电工基础知识考试题及答案
评论
0/150
提交评论