您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > SDN涉及协议及标准分析
SDN涉及协议及标准分析2SDN标准研究SDN标准ONFETSIIETFITUOpenFlowOF-CONFIGI2RSNVO3ForCESSG13Y.FNsdnSG11Q.Supplement-SDNISGNFV3ContentsOpenFlowOF-CONFIGIETF相关协议2314OpenFlow架构OpenFlow1.0OpenFlow1.15FlowTable的组成MatchFieldsActions/InstructionsCountersEthernetVLANIPMetadatasrcdsttypeTCP/UDP/SCTPICMPidprio.srcdstProto/A.opToSsrcport/icmptypedpport/icmpcodeIngressPortMPLSlab.t.c.基于Table/Flow/Port/Queue的各种报文计数器Actions:forward/enqueue/drop/modify-fieldInstructions:modifyaction-setorpipelineproc.6FlowTable的matchingPacketInStartatTable0MatchedinTablen?更新计数器执行Instructions:UpdateactionsetUpdatepacket/matchsetfieldUpdatemetadataYesNo根据表配置:1)丢弃;2)发给Controller;3)继续下一个流表匹配;执行ActionSetGotoTablen?YesNo7Pipeline的处理每个openflowswitch的pipeline包含多个flowtable,每个flowtable包含多个flowentry;每个flowentry的处理结果只能交个序号更大的表进一步处理;Outputactionset和报文关联,可以用instructions来修改已匹配上的报文的actionset;当pipeline处理结束时,开始执行actionset中的动作;ActionSet执行时要按顺序:copyTTLinwards,pop,push,copyTTLoutwards,decrementTTL,set,qos,group8GroupTableGrouptable赋予了逻辑端口转发流的额外能力,引入grouptable的动机是为了支持L2/L3多路径转发,另外还可支持LAG(linkaggregation)、ECMP、non-ECMP、快速重路由、multi-homing、BGP下一跳汇聚GroupIdentifierCountersGroupType组的类型,all(所有bucket执行,多播/广播转发),select(基于switch的bucket选择算法),indirect(执行定义的bucket,聚合),fastfailover(直接执行第一个livebucket)报文被一个组处理的计数器ActionsBuckets32bit,唯一标识一个组有序的actionbucket列表9MultipathGroupTable示例图1:从源S到目的D有两条路径1-2-4和1-3-4,交换机1有两个端口port0,port1;图2:用mpgroupid表示逻辑接口,先发送groupmod消息,配置group为多路径类型,再发送flowmod配置流表,并将最后的forward-action指向group的逻辑端口;图3:或者在flowmod消息中隐含定义group;图4:定义hash表将mpgroupid映射到实际的硬件组。S1234DPort0Port1图1图4图3图210OpenFlow消息OpenFlowProtocol由三种类型的消息controller-to-switchAsynchronousSymmetriccontroller-to-switch该消息由controller发送,用于管理和检查switch的状态•Features消息:在SSL/TCP会话建立后,controller给switch发送Features请求switch的相关信息,switch必须应答自己支持的功能,包括datapathid、数据路径接口号、接口名、接口MAC地址、接口支持的速率等等基本信息•Configuration消息:controller可以设置或查询switch的状态•Modify-State消息:controller发送该消息给switch,来管理switch的状态,即增加/删除、更改流表,并设置switch的端口属性•Read-State消息:controller用该消息收集switch上flow-tables、ports、individualflowentries的统计信息•Send-Packet消息:controller发送该消息到switch的特定端口•Barrier消息:Controller用Barrierrequest/reply消息来确保switch是否完成之前的操作得到应答后才会下发新的消息,用来解决消息依赖关系。11OpenFlow消息Asynchronous该消息由switch发起,当switch状态发生改变时,发送该消息告诉controller状态变化•Packet-in消息:–对数据包来说,当FlowTable中没有匹配的表项或者匹配“sendtocontroller”,switch将给controller发送packet-in消息。•Flow-Removed消息:–当给switch增加一条表项时,会设定超时周期,当时间超时后,该条目就会被删除,这时switch就会给controller发送Flow-Removed消息;当流表中有条目要删除时,switch也会给controller发送该消息•Port-status消息:–当数据路径接口被添加、删除、修改的时候,datapath需要使用OFPT_PORT_STATUS消息来通知控制器•Error消息:–当交换机需要通知控制器发生问题或错误时,switch给controller发送Error消息12OpenFlow消息Symmetric该消息由switch或者controller发起•Hello消息:–当一个OpenFlow连接建立时,controller和switch都会立刻向对端发送OFPT_HELLO消息,该消息中的version域填充发送方支持的OpenFlow协议最高的版本号;–接收方收到该消息后,接收方会计算协议版本号,即在发送方和接收方的版本号中选择一个较小的;–如果接收方支持该版本,则继续处理连接,连接成功;否则,接收者回复一个OFPT_ERROR消息,类型域中填充ofp_error_type.OFPET_HELLO_FAILED•Echo消息:–switch和controller任何一方都可以发起Echorequest消息,但收到的一方必须回应Echoreply消息。这个消息可以来测量latency、controller-switch之间的连接性,即心跳消息;•Vendor消息:–Vendor消息为OpenFlowswitches提供标准的额外功能,为未来版本预留,Vendor域为厂家ID信息,由IEEEOUI标示。13OpenFlow支持的动作类型(v1.0)Openflow动作动作类型动作描述备注OFPP_FLOOD必选在除入接口外的其他所有接口上转发报文ForwardOFPP_CONTROLLER必选报文封装后转发到控制器ForwardOFPP_LOCAL必选软转发(发送本地网络栈)ForwardOFPP_TABLE必选出报文完成流表动作ForwardOFPP_IN_PORT必选在入接口上转发报文ForwardOFPP_NORMAL可选标准二三层转发ForwardOFPP_NONE必选丢弃dropOFPAT_SET_VLAN_VID可选修改报文vlanid修改报文OFPAT_SET_VLAN_PCP可选修改报文vlanpriority修改报文OFPAT_STRIP_VLAN可选剥离报文vlan头修改报文OFPAT_SET_DL_SRC可选修改源MAC修改报文OFPAT_SET_DL_DST可选修改目的MAC修改报文OFPAT_SET_NW_SRC可选修改源IP地址修改报文OFPAT_SET_NW_DST可选修改目的IP地址修改报文OFPAT_SET_NW_TOS可选修改报文Tos修改报文OFPAT_SET_TP_SRC+OFPAT_SET_NW_SRC可选修改源端口+源IP修改报文OFPAT_SET_TP_DST+OFPAT_SET_NW_DST可选修改目的端口+目的IP修改报文OFPAT_ENQUEUE可选指定进端口的那个优先级队列,即通过端口队列(QoS)发送ForwardOFPAT_VENDOR可选其他扩展14OpenFlow协议发展1.011元组单流表,所有试验系统的基础目标1.1多表:转发面多表、pipeline设计;标签和隧道:支持标签操作,MPLS、VLAN、虚接口;支持多路径转发:Group表支持多出口操作ECMP、groups;1.2TLV描述matchfilde,动态多表完善对IPv6的支持完善Controller可靠性的问题1.3MeterTable、支持PBB、tablemiss、控制通道多连接、多控制器协作1.3.1提高了版本协商能力15OpenFlow1.0协议2009年12月发布Slicing支持为出端口配置多个队列,每个队列对应的带宽可配置;Flowcookies作为透明数据携带在修改流表命令中,转发面上报流表信息(例如查询流表状态、流表项超时)时,cookie会作为透明数据带回给控制器交换机描述信息(OFPST_DESC)在转发面可配置的交换机描述数据,包括制造商信息、软硬件信息等流匹配字段增强支持ARP报文中IP字段的匹配支持匹配IPTos/DSCP域查询端口的统计数据增强了流表项超时的精度(毫秒-纳秒)16OpenFlow1.1协议变化2011年2月发布Multipletables:controller可在一台交换机上部署多个流表,流表由v1.0扁平式的MatchFields+actions改为灵活的多个流表组成pipeline处理;GroupTable:引入grouptable支持L2/L3多路径转发,支持组播、负载均衡以及快速倒换等业务;Tag/Tunnels:支持QinQ和MPLS;支持虚拟端口支持逻辑端口/隧道,转发面同时上报逻辑端口以及相应的物理端口Openflow连接失败删除了emergencyflowcache功能增加了Failsecuremode或者Failstandalonemode17OpenFlow1.2协议变化2011年12月发布OXM(OpenflowExtensibleMatch)采用OXM(类似TLV格式的数据结构)来表示ofp_match,增强了灵活性。OpenFlow1.1是固定的15个匹配项,而OpenFlow1.2采用了TLV格式的匹配模式,可以动态调整匹配项,这样使流表的长度从固定长度变为可变长度,增加流表灵活性的同时也增加转方面处理难度。增加set_field动作采用OXM来描述对报文头部的修改全面支持experimenter:从消息交互、match、action、队列、统计、错误码等都有所增加;IPv6支持支持IPv6,匹配字段增加了IPv6源地址、目的地址、协议号、传输类型、ICMPv6;多控制器支持定义了三种控制器角色:Equal,Slave,Master18OpenFlow1.2协议变化(续)Matching变化匹配思路变化:从以自己定义的匹配项为中心,转移到以报文为中心的匹配。在1.1定义了15个匹配项及整体匹配流程;在1.2只定义匹配的元规则。这个有助于experimenter对报文结构及匹配规则进行创新。增加了OXMTLV类型定义;对mat
本文标题:SDN涉及协议及标准分析
链接地址:https://www.777doc.com/doc-3519096 .html