《SDN涉及协议及标准分析.ppt》由会员分享,可在线阅读,更多相关《SDN涉及协议及标准分析.ppt(39页珍藏版)》请在三一办公上搜索。
1、SDN涉及协议及标准分析,SDN标准研究,SDN标准,OpenFlowOF-CONFIG,I2RSNVO3ForCES,SG13Y.FNsdnSG11Q.Supplement-SDN,ISG NFV,Contents,OpenFlow,OF-CONFIG,IETF相关协议,2,3,OpenFlow架构,OpenFlow 1.0,OpenFlow 1.1,Flow Table的组成,Match Fields,Actions/Instructions,Counters,基于Table/Flow/Port/Queue的各种报文计数器,Actions:forward/enqueue/drop/modi
2、fy-fieldInstructions:modify action-set or pipeline proc.,Flow Table的matching,PacketInStart at Table 0,Matched in Table n?,更新计数器执行Instructions:Update action setUpdate packet/match set fieldUpdate metadata,Yes,No,根据表配置:1)丢弃;2)发给Controller;3)继续下一个流表匹配;,执行Action Set,Goto Table n?,Yes,No,Pipeline的处理,每个op
3、enflow switch的pipeline包含多个flowtable,每个flowtable包含多个flowentry;每个flowentry的处理结果只能交个序号更大的表进一步处理;Output action set和报文关联,可以用instructions来修改已匹配上的报文的action set;当pipeline处理结束时,开始执行action set中的动作;Action Set执行时要按顺序:copy TTL inwards,pop,push,copy TTL outwards,decrement TTL,set,qos,group,Group Table,Group table
4、赋予了逻辑端口转发流的额外能力,引入group table的动机是为了支持L2/L3多路径转发,另外还可支持LAG(link aggregation)、ECMP、non-ECMP、快速重路由、multi-homing、BGP下一跳汇聚,Group Identifier,Counters,Group Type,组的类型,all(所有bucket执行,多播/广播转发),select(基于switch的bucket选择算法),indirect(执行定义的bucket,聚合),fast failover(直接执行第一个live bucket),报文被一个组处理的计数器,Actions Buckets,
5、32bit,唯一标识一个组,有序的action bucket 列表,Multipath Group Table示例,图1:从源S到目的D有两条路径124和134,交换机1有两个端口port0,port1;图2:用mp group id表示逻辑接口,先发送group mod消息,配置group为多路径类型,再发送flow mod配置流表,并将最后的forward-action指向group的逻辑端口;图3:或者在flow mod消息中隐含定义group;图4:定义hash表将mp group id映射到实际的硬件组。,图1,图4,图3,图2,OpenFlow消息,OpenFlow Protoco
6、l由三种类型的消息controller-to-switchAsynchronousSymmetriccontroller-to-switch该消息由controller发送,用于管理和检查switch的状态Features消息:在SSL/TCP会话建立后,controller给switch发送Features请求switch的相关信息,switch必须应答自己支持的功能,包括datapathid、数据路径接口号、接口名、接口MAC地址、接口支持的速率等等基本信息Configuration消息:controller可以设置或查询switch的状态Modify-State消息:controller
7、发送该消息给switch,来管理switch的状态,即增加/删除、更改流表,并设置switch的端口属性Read-State消息:controller用该消息收集switch上flow-tables、ports、individual flow entries的统计信息Send-Packet消息:controller发送该消息到switch的特定端口Barrier消息:Controller用Barrier request/reply消息来确保switch是否完成之前的操作得到应答后才会下发新的消息,用来解决消息依赖关系。,OpenFlow消息,Asynchronous该消息由switch发起,当
8、switch状态发生改变时,发送该消息告诉controller状态变化Packet-in消息:对数据包来说,当Flow Table中没有匹配的表项或者匹配“send to controller”,switch将给controller发送packet-in消息。Flow-Removed消息:当给switch增加一条表项时,会设定超时周期,当时间超时后,该条目就会被删除,这时switch就会给controller发送Flow-Removed消息;当流表中有条目要删除时,switch也会给controller发送该消息Port-status消息:当数据路径接口被添加、删除、修改的时候,datapat
9、h需要使用OFPT_PORT_STATUS消息来通知控制器Error消息:当交换机需要通知控制器发生问题或错误时,switch给controller 发送Error消息,OpenFlow消息,Symmetric该消息由switch或者controller发起Hello消息:当一个OpenFlow连接建立时,controller和switch都会立刻向对端发送OFPT_HELLO消息,该消息中的version域填充发送方支持的OpenFlow协议最高的版本号;接收方收到该消息后,接收方会计算协议版本号,即在发送方和接收方的版本号中选择一个较小的;如果接收方支持该版本,则继续处理连接,连接成功;否
10、则,接收者回复一个OFPT_ERROR消息,类型域中填充ofp_error_type.OFPET_HELLO_FAILEDEcho消息:switch和controller任何一方都可以发起Echo request消息,但收到的一方必须回应Echo reply消息。这个消息可以来测量latency、controller-switch之间的连接性,即心跳消息;Vendor消息:Vendor消息为OpenFlow switches提供标准的额外功能,为未来版本预留,Vendor域为厂家ID信息,由IEEE OUI标示。,OpenFlow支持的动作类型(v1.0),OpenFlow协议发展,1.011
11、元组单流表,所有试验系统的基础目标1.1多表:转发面多表、pipeline设计;标签和隧道:支持标签操作,MPLS、VLAN、虚接口;支持多路径转发:Group表支持多出口操作ECMP、groups;1.2TLV描述match filde,动态多表完善对IPv6的支持完善Controller可靠性的问题1.3Meter Table、支持PBB、table miss、控制通道多连接、多控制器协作提高了版本协商能力,OpenFlow1.0协议,2009年12月发布Slicing 支持为出端口配置多个队列,每个队列对应的带宽可配置;Flow cookies 作为透明数据携带在修改流表命令中,转发面上
12、报流表信息(例如查询流表状态、流表项超时)时,cookie会作为透明数据带回给控制器交换机描述信息(OFPST_DESC)在转发面可配置的交换机描述数据,包括制造商信息、软硬件信息等流匹配字段增强支持ARP报文中IP字段的匹配支持匹配IP Tos/DSCP域查询端口的统计数据增强了流表项超时的精度(毫秒-纳秒),OpenFlow1.1协议变化,2011年2月发布Multiple tables:controller可在一台交换机上部署多个流表,流表由v1.0扁平式的Match Fieldsactions 改为 灵活的多个流表组成pipeline处理;Group Table:引入group tab
13、le支持L2/L3多路径转发,支持组播、负载均衡以及快速倒换等业务;Tag/Tunnels:支持QinQ和MPLS;支持虚拟端口支持逻辑端口/隧道,转发面同时上报逻辑端口以及相应的物理端口Openflow连接失败 删除了emergency flow cache功能 增加了Fail secure mode 或者 Fail standalone mode,OpenFlow1.2协议变化,2011年12月发布OXM(Openflow Extensible Match)采用OXM(类似TLV格式的数据结构)来表示ofp_match,增强了灵活性。OpenFlow1.1是固定的15个匹配项,而OpenF
14、low1.2采用了TLV格式的匹配模式,可以动态调整匹配项,这样使流表的长度从固定长度变为可变长度,增加流表灵活性的同时也增加转方面处理难度。增加set_field动作采用OXM来描述对报文头部的修改全面支持experimenter:从消息交互、match、action、队列、统计、错误码等都有所增加;IPv6支持支持IPv6,匹配字段增加了IPv6源地址、目的地址、协议号、传输类型、ICMPv6;多控制器支持定义了三种控制器角色:Equal,Slave,Master,OpenFlow1.2协议变化(续),Matching变化匹配思路变化:从以自己定义的匹配项为中心,转移到以报文为中心的匹配。
15、在1.1定义了15个匹配项及整体匹配流程;在1.2只定义匹配的元规则。这个有助于experimenter对报文结构及匹配规则进行创新。增加了 OXM TLV 类型定义;对match进行重新定义,TLV化;原来是静态定义,现在是动态扩展。OXM TLV的头部还明确了ONF成员和非成员定义。用TLV表达匹配项;没有列出来的匹配项相当于1.1的 通配符效果;去掉了wildcards宏定义。消息变化Modify/Add消息,如果没有指明清除统计是,不能清除旧表项的统计信息;1.1是直接清除。Modify消息,1.1,在没有表项时相当于Add;但在1.2不做处理。修改了Packet_in消息格式,增加了
16、OXM_TLV格式,使携带的端口信息TLV化。,OpenFlow1.3协议变化,2012年4月发布增强了控制器与交换机之间的能力协商 描述流表支持的能力增加table-miss流表项没有匹配上流表的报文被称为table-miss 报文,而table-miss flow entry 专门处理这种报文;V1.3里改为增加一条table-miss flow entry:这条流表条目具有最低的优先级,并且其Match项忽略;table-miss flow entry的action可以是丢弃,送到另一个流表匹配,或者packet_in到控制器;如果没有table-miss flow entry,缺省动作
17、为丢弃。IPv6扩展头部的支持Meter Table的支持Meter表定义了per-flow meters,可完成简单的QoS操作,例如,速率限制,并且可以和端口队列一起完成复杂的QoS,例如:DifffServ。Meters作为一种可选指令,直接和流表条目相关(queues是和端口绑定的),Meter指令是在Apply-Actions指令之前执行的。,OpenFlow1.3协议变化(续),交换机上报异步事件过滤器 控制器指定其希望收到的异步事件增加控制器与交换机之间的辅助连接(慢通道)之前的版本中OF交换机和控制器之间只有一个OFChannel(TCP或TLS);V1.3中OF交换机可以有多
18、个main connection和多个auxiliary connections,auxiliary connections 可以专门处理packet-in and packet-out报文每个连接都由交换机Datapath ID和Auxiliary ID标识。主连接的Auxiliary ID=0,Datapath ID!=0。Auxiliary连接必须使用和主连接相同的源IP地址,可以使用不同的传输方式,TLS,TCP,DTLS或UDP。必须使用和主连接相同的目的IP,目的端口号。支持PBB封装 取消了报文封装标签的顺序限制 所有标签均会被添加到最外层的位置。,OpenFlow未来发展计划,
19、由于Openflow协议新版本更新速度快,ONF Board决定维护一个长期稳定的版本不会增加新的功能,目标是澄清现有协议,如有必要进行相关的修正ONF鼓励其成员通过extension扩展的方式增加新的功能,ONF每隔3个月打包发布一批协议扩展Extensibility工作组也会继续开发Openflow 1.4&1.5版本针对,没有有进一步的工作计划。,Extensibility WG活跃议题,Contents,OpenFlow,OF-CONFIG,IETF相关协议,2,3,OF-CONFIG协议,对OpenFlow数据通路进行远程配置;完成一些实时要求不高的操作,例如生成转发表、确定转发动作
20、、开启/关闭端口等。OpenFlow配置点并没有任何预置条件,它可以运行在controller上,也可以在传统网络管理框架内。YANG/XML用于数据建模。,NETCONF作为传送协议,要求支持OF-CONFIG协议的设备必须应用NETCONF作为传送协议,也可以支持Web Service-Management等其他协议。OpenFlow capable交换机必须支持OF-CONFIG定义的schema。,OF-CONFIG 1.0协议,发布于Jan.2012,基于OpenFlow 1.2Controllers到logical switches的连接配置管理,多控制器的支持Controller
21、/Logical switch的IP 地址/端口号传输协议:TLS or TCP,缺省TLS故障模式的配置fail securefail standalone,只适用于Hybrid端口及其属性配置current-speed,no-recv,no-fwd,no-packet-in,link-down,Blocked,liveRate,duplex,Medium,Negotiation,Pause(a/symmetric)队列及其属性配置min-rate,max-rate,experimenterlogical switches配置资源的查询等,OF-CONFIG 1.1协议变化,发布于Apr,2
22、012,基于OpenFlow 1.3(OF v1.2)加密(针对TLS)Certificate配置基于OF 1.2 and 1.3 的能力查询交换相关:max pkt buffers,number of tables,number of supported ports流表相关:list of matches,list of actions,table instructions,table miss behaviorgroup 类型group capabilities(select weight,liveness,chaining)action typesInstruction types流表属
23、性查询max-entries,next-tables,list of matches,list of actions,table instructions,Metadata,wildcardsTunnel配置IPinGRE,VxLAN,and NVGRE,OF-CONFIG 1.1协议变化(续),1.1新增,协议变化,发布于March,2013,参考OpenFlow 1.3,但支持OF1.0、1.1、1.2。增加了版本支持;其他的功能和描述也做了一些改善。,C&M WG活跃议题,Contents,OpenFlow,OF-CONFIG,IETF相关协议,2,3,IETF,IETF NVO3,Ne
24、twork Virtualization Overlays(nvo3)主要研究数据中心网络,通过提供DCVPN满足多租户的流量隔离、地址独立、支持VM的自由迁移等要求。Framework for DC Network Virtualization,IETF ForCES,Forwarding and Control Element Separation 主要目标是定义一个框架和机制,标准化控制平面各逻辑功能模块之间交互的信息,包括路由协议、信令、接入控制以及转发平面的包处理动作,包括包转发、队列调度、包头编辑等。RFC 3549Linux Netlink as an IP Services P
25、rotocol(Informational)RFC 3654 Requirements for Separation of IP Control and Forwarding(Informational)RFC 3746Forwarding and Control Element Separation(ForCES)Framework(Informational)RFC 5810Forwarding and Control Element Separation(ForCES)Protocol Specification(Proposed Standard)RFC 5811SCTP-Based
26、Transport Mapping Layer(TML)for the Forwarding and Control Element Separation(ForCES)Protocol(Proposed Standard)RFC 5812Forwarding and Control Element Separation(ForCES)Forwarding Element Model(Proposed Standard)RFC 5813Forwarding and Control Element Separation(ForCES)MIB(Proposed Standard)RFC 6041F
27、orwarding and Control Element Separation(ForCES)Applicability Statement(Informational)RFC 6053Implementation Report for Forwarding and Control Element Separation(ForCES)(Informational),IETF ForCES(续1),RFC 5810 ForCES Protocol Specification,IETF ForCES(续2),RFC 5812 ForCES Forwarding Element Model,应用程序,I2RS客户端,I2RS代理,策略数据库,路由与信令协议,拓扑数据库,度量、事件、QoS等配置模板,RIB管理器,FIB管理器,用户应用基于拓扑、事件、流量等手段来修改路由系统的策略与状态;兼容现有网络协议,I2RS:Interface to Routing System,物理设备,框架文档已形成draft提交ietf,opendaylight,希望用一个服务抽象层终结南向接口,完成南向接口的标准化;计划开发controller,