收藏 分享(赏)

OpenFlow协议分析.pdf

上传人:精品资料 文档编号:9776408 上传时间:2019-09-03 格式:PDF 页数:62 大小:1.84MB
下载 相关 举报
OpenFlow协议分析.pdf_第1页
第1页 / 共62页
OpenFlow协议分析.pdf_第2页
第2页 / 共62页
OpenFlow协议分析.pdf_第3页
第3页 / 共62页
OpenFlow协议分析.pdf_第4页
第4页 / 共62页
OpenFlow协议分析.pdf_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、OpenFlow协议分析2015.12.23江苏省未来网络创新研究院提纲1OpenFlow协议概述2OpenFlow1.0协议介绍3OpenFlow协议演进OpenFlow概述最早由Stanford大学的Nick McKeown教授等研究人员在2008年4月发表的论文OpenFlow:EnablingInnovationinCampusNetworks中提出提出控制和转发分离的架构,将控制逻辑从网络设备盒子中引出来,供研究者对其进行任意的编程从而实现新型的网络协议、拓扑架构而无需改动网络设备本身当前,OpenFlow Switch Specification规范由ONF(Open Networ

2、kingFoundation)主导,获得业界众多支持ONF成立于2011年,倡导“用户驱动”的网络架构和技术,致力于推动SDN的标准化,其愿景是使得基于OpenFlow的SDN成为网络新标准控制器:控制器知道所有网络信息,负责指挥设备如何工作基于OpenFlow协议的软件定义网络交换机:交换机不知道任何网络信息,只会按照控制器的指挥工作软件定义网络的网络设备之间不运行任何协议,网络设备的转发表由控制器配置生成。控制器与网络设备之间通过OpenFlow协议来互相通信控制器SDN网络分为两张网1、数据网(数据平面):Traffic2、信令网(控制平面):OpenFlowProtocol软件定义网络

3、的平面划分终端终端OpenFlow OpenFlowOpenFlow发展历史自2009年12月发布第一个版本(v1.0)以来,已经有多个版本的OpenFlow规范(OF)被发布2011年2月OF 1.1: 定义多表Pipeline,支持标签/隧2012年4月OF 1.3.0: 拓扑发现,测试流程,测2013年4月OF 1.3.2: 改进MPLS、multipart等微小改动2014年12月OF 1.5.02009年12月OF 1.0:基本协议,十二元组,动作道,多路径2011年12月OF 1.2: TLV变长表项消息,支持IPv6基本匹配试集.2012年9月OF 1.3.1: 提升了版本协商能

4、力.2013年10月OF 1.4.0: 改善控制平面功能.OpenFlow的问题一览转发性能流表规模版本兼容OpenFlow控制器容量可靠性安全性?OpenFlow的问题新协议的设计严重依赖于OF协议中的匹配字段,而现有OpenFlow仅能是基于现有协议字段,且越来越臃肿OpenFlow的问题 随着软件定义网络应用场景的扩展和网络技术的自身发展,OpenFlow需要支持越来越多的协议和报文处理方式数据中心的VXLAN、NVGRE 和STT 等网络虚拟化技术NFV网络功能虚拟化技术网络安全以及监控和诊断 即便是针对常用标准协议,如TCP协议,OpenFlow也不能对其头部的任意域进行匹配和处理防

5、火墙中,很多场景需要对TCP某些状态位进行特定的报文处理动作 上述这些,目前的OpenFlow协议是都无法支持 如何能实现SDN倡导的网络灵活可编程理念?演进:P4、POFP4: Programming Protocol-Independent Packet Processors P4项目由众多SDN缔造者创建 致力于协议无关的网络编译语言和新型SDN数据平面技术P4之一网络操作系统Protocol independent 自定义匹配字段Packet processor 定义表的能力与包处理流程Programming 一切硬件能力开放给用户新型SDN数据平面技术P4之二 P4采用两级结构 P4

6、语言:抽象封装语句,任意组合描述流信息和处理动作 TDG(Table Dependency Graphs):将P4语言翻译映射到硬件switch上 向上支持不同的APP软件,向下支持不同的硬件 使网络开发者不需要懂交换设备和芯片,就可以像使用高级编程语言一样,通过书写语句和编译来开发业务APP、配置网络、创建新协议 POF(Protocol Oblivious Forwarding)项目由华为公司创建 面向协议无关的SDN底层平台和网络处理器芯片 表项查找匹配key使用offset,length,value,而不用具体协议字段 命令/动作,也采用offset,length,value ,而不用

7、具体协议字段 灵活自由添加新协议、定义报文新动作,无需经过国际标准组织和厂商支持 固定功能的NP芯片,通过微码编写offset,length,value通配符适配驱动,成为通用芯片新型SDN数据平面技术POF之一是否是IPv4用DIP字段查找FIB表TTL减1更新checksum12B, 2B=0x0800?用字段30B, 4B做查找22B, 1B减1结果写入24B, 2B新型SDN数据平面技术POF之二13 POF从真正意义上实现了网络设备的“电脑化”控制平面和数据平面所有协议的offset,length,value统一抽象化,打通了OpenFlow控制器和交换机间厚重的协议壁垒新型SDN数

8、据平面技术POF之三微码offset,length,value通配符驱动层,使专用网络处理器芯片成为CPU式的通用芯片保持了传统网络设备的高性能实现了OVS式的灵活可编程 POF已成为OpenFlow2.0候选标准新型SDN数据平面技术P4与POF的区别与联系 P4 高级语言可以编写出协议无感知的SDN控制器平台P4需要POF这样的转发元素抽象定义中心P4O.S.ApplicationsApplicationsApplicationsSDN控制器POF定义 POF设备功能抽象和南向接口可以编写出协议无感知的SDN交换设备POF需要P4这样的控制器高级编程语言 P4团队与POF团队也的确在密切合

9、作,建立协议无感知转发生态系统中心主控板操作系统线卡板NP芯片POF系统适配POF协议POF微码适配SDN交换设备线卡板提纲1OpenFlow协议概述2OpenFlow 1.0协议介绍3OpenFlow协议演进OpenFlowv1.0之协议架构OpenFlow交换机利用基于安全连接的OpenFlow协议与远程控制器相通信流表:负责数据包的高速查询和转发安全通道:承载OpenFlow协议传输OpenFlow协议OpenFlowv1.0之流表结构流表是OpenFlow对网络设备的数据转发功能的抽象表项包括了网络中各个层次的网络配置信息包头域:用于对交换机接收到的数据包的包头内容进行匹配计数器:用于

10、统计数据流量相关信息,可以针对交换机中的每张流表、每个数据流、每个设备端口、每个转发队列进行维护动作(action):用于指示交换机在收到匹配数据包后如何对其进行处理OpenFlow1.0之流表包头域用于匹配交换机接收到的数据包的包头内容,OpenFlow 1.0包头域包含12个元组(tuple)涵盖ISO网络模型中第二至第四层的网络配置信息每一个元组中的数值可以是一个确定的值或者是“ANYOpenFlow1.1及后续版本将“包头域”更名为“匹配域”OpenFlow1.0之流表计数器针对交换机中的每张流表、每个数据流、每个设备端口、每个转发队列进行维护,用于统计数据流量的相关信息针对每张流表,

11、统计当前活动的表项数、数据包查询次数、数据包匹配次数等针对每个数据流,统计接收到的数据包数、字节数、数据流持续时间等针对每个设备端口,除统计接收到的数据包数、发送数据包数、接收字节数、发送字节数等指标之外,还可以对各种错误发生的次数进行统计针对每个队列,统计发送的数据包数和字节数,还有发送时的溢出(Overrun)错误次数等OpenFlow1.0之流表动作用于指示交换机在收到匹配的数据包后应该如何对其进行处理OpenFlow交换机缺少控制平面的能力,因此需要用动作来详细说明交换机将要对数据包所做的处理每个流表项可以对应有零至多个动作,如果没有定义转发动作,那么与流表项包头域匹配的数据包将被默认

12、丢弃同一流表项中的多个动作的执行可以具有优先级,但是在数据包的发送上并不保证其顺序如果流表项中出现有OpenFlow交换机不支持的参数值,交换机将向控制器返回相应的出错信息必备动作(Required Actions) vs.可选动作(Optional Actions)必备动作:需要所有OpenFlow交换机默认支持可选动作:需要交换机告知控制器它所能支持的动作种类OpenFlow1.0流表动作列表类型 名称 说明必备动作转发(Forward)交换机必须支持将数据包转发给设备的物理端口及如下的一个或多个虚拟端口:ALL:转发给所有出端口,但不包括入端口CONTROLLER:封装数据包并转发给控制

13、器LOCAL:转发给本地的网络栈TABLE:对packet_out消息执行流表的动作IN_PORT:从入端口发出丢弃交换机对没有明确指明处理动作的流表项,将会对与其所匹配的所有数据包进行默认的丢弃处理(Drop)可选动作转发(Forward)交换机可选支持将数据包转发给如下的虚拟端口:NORMAL:利用交换机所能支持的传统转发机制(例如二层的MAC、VLAN信息或者三层的IP信息)处理数据包FLOOD:遵照最小生成树从设备出端口洪泛发出,但不包括入端口排队(Enqueue)交换机将数据包转发到某个出端口对应的转发队列中,便于提供QOS支持修改域(Modify-Field)交换机修改数据包的包头

14、内容,具体可以包括:设置VLAN ID、VLAN优先级,剥离VLAN头修改源MAC地址、目的MAC地址修改源IPv4地址、目的IPv4地址、ToS位OpenFlow1.0OpenFlow交换机分类根据交换机的应用场景及其所能够支持的流表动作类型,OpenFlow交换机可以被分为OpenFlow专用交换机(OpenFlow-only)只支持OpenFlow协议OpenFlow使能交换机(OpenFlow-enabled)OpenFlow1.1及后续版本将其更名为“OpenFlow-hybrid”考虑了OpenFlow交换机与传统交换机混合组网时可能遇到的协议栈不兼容问题,能同时运行OpenFlo

15、w协议和传统的二层/三层协议栈支持OpenFlow可选转发动作中的NORMAL动作。OpenFlow1.0数据包处理流程OpenFlow1.0 包头解析匹配流程OpenFlow1.0协议消息类型OpenFlow协议是用来描述控制器和OpenFlow交换机之间数据交互所用信息的接口标准,其核心是OpenFlow协议信息的集合(每一类消息又可以拥有多个子消息类型)controller-to-switch:由控制器发起,用来管理或获取OpenFlow交换机的状态asynchronous(异步):由OpenFlow交换机发起,用来将网络事件或交换机状态变化更新到控制器symmetric(对称):由交换

16、机或控制器发起OpenFlow1.0controller-to-switch消息列表名称 说明 备注Features在建立TIS会话时,控制器发送features请求消息给交换机,交换机需要应答自身支持的功能由控制器发起,对OpenFlow交换机进行Configuration控制器设置或查询交换机上的配置参数,交换机仅需要应答查询消息Modify-state 控制器管理交换机流表项和端口状态等状态查询和修改配置等操作OpenFlow交换机接收并处理可能发送或不需要发送的应答消息Read-state控制器向交换机请求诸如流表、端口、各个流表项等方面的统计信息Send-packet 控制器通过交换

17、机指定端口发出数据包Barrier控制器通过barrier请求及相应报文,确认相关消息已经被满足或收到完成操作的通知OpenFlow1.0asynchronous消息列表名称 说明 备注Packet-in交换机收到一个数据包,在流表中没有匹配项,或者在流表中规定的行为是“发送到控制器”,则发送Packet-in消息给控制器;如果交换机缓存足够多,数据包被临时放在缓存中,数据包的部分内容(默认128字节)和在交换机缓存中的序号也一同发给控制器;如果交换机缓存不足以存储数据包,则将整个数据包作为消息的附带内容发由OpenFlow交换机主动发起,用来通知给控制器交换机上发生的某些异步事件,消息是单向

18、的,不需要控制器应答主要用于交换机向控制器通知收到报文、状态变化及出席错误等事件信息Flow-removedOpenFlow交换机中的流表项因为超时或收到修改/删除命令等原因被删除掉,会触发Flow-removed消息Port-statusOpenFlow交换机端口状态发生变化时,触发Port-status消息ErrorOpenFlow交换机通过Error消息通知控制器发生的问题OpenFlow1.0symmetric消息列表名称 说明 备注Hello用于在OpenFlow交换机和控制器之间发起连接建立不必通过请求建立,控制器和交换机都可以主动发起,并需要接受方应答消息为双向对称,主要用于建立

19、连接、Echo交换机和控制器均可以向对方发出Echo消息,接收者则需要回复Echo reply。该消息用来协商延检测对方是否在线等迟、带宽、是否连接保持等控制器到OpenFlow交换机之间隧道的连接参数Vendor用于OpenFlow交换机协商厂家自定义的附加功能,为未来版本预留OpenFlow1.0主要协议交互过程之连接建立连接建立控制器与OpenFlow交换机建立TLS隧道后,隧道中传送的都是控制协议消息,因此隧道中的所有流量转发都无需查询交换机中的流表当OpenFlow安全隧道建立起来后,双方必须首先发送HELLO消息给对方,该消息携带本方支持的最高协议版本号,接收方将采用双方都支持的最低协议版本进行通信一旦发现两者拥有共同支持的协议版本,则连接建立,否则发送ERROR消息,描述失败原因,并终止连接

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报