- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenFlow交换机细则
OpenFlow 交换机规范(概要)
1 介绍
本文档介绍的OpenFlow交换机的要求。规范包括交换机的组件 和基本功能,和OpenFlow的协议,通过一个远程控制器来管理一个OpenFlow的交换机。
2 交换机组成
OpenFlow 的交换机包括一个或多个流表和一组表,执行分组查找和转发,和到一个外部控 制器 OpenFlow 的信道(图 1)。该交换机与控制器进行通信,并通过 OpenFlow 的协议控制 器管理的交换机。
控制器使用 OpenFlow 的协议,它可以添加、更新和删除流流表中的表项,既主动或者被动 响应数据包。 在交换机中的每个流表中包含的一组流 表项;每个流表项包含匹配字段,计 数器和一组指令,用来匹配数据包(见 5.2)。
匹配开始于第一个流程表,并可能会继续额外的流表 (见 5.1)。 流表项匹配数据包按照 优先级的顺序,从每个表的第一个匹配表项开始(见 5.3)。如果找到匹配的项,那么具体 流表项按照指令去执行。 如果在流表中未找到 匹配项 ,结果取决于漏表的流表项配置: (例如, 数据包可被转发到 OpenFlow 的信道控制器、丢弃、或者可以继续到下一个的流 表,见 5.4)。
指令与每个包含行动或修改流水线处理的流表项相联系(见 5.9)。 行动描述了数据包转 发,数据包的修改和组表 处理。 流水线处理的指令允许数据包被发送到后面的表进行进 一步的 处理 , 并允许信息以元数据的形式在表之间进行通信。当与一个匹配的流表项相 N.J.C.H 关联的指令集没有指向下一个表的时候,表流水线处理停止,这时该数据包通常被修改和 转发(见 5.10)。
流表项可能包含数据包转发到某个端口。 这通常是一个物理端口,但它也可能是由交换机 定义的一个逻辑端口或通过本规范中定义的一个保留的端口(见 4.1)。 保留端口可以指 定通用的转发行为,如发送到控制器、泛洪、或使用非 OpenFlow 的方法转发。如 “ 普通” 交换机转发处理(见 4.5);而交换机定义的逻辑端口,可以指定链路汇聚组,隧道或环回 接口(见 4.4)。
流表项相关的行动,也可直接把数据包发送到组,进行额外的处理(见 5.6)。 组表示一 组泛洪的指令集,以及更复杂的转发(如多路径,快速重路由,链路聚合)。作为间接的通 用层,组也 使多个流表项转发到一个单一的标识符(例如一个共同的下一跳的 IP 转发 )。 这种抽象的行为使相同的输出行动非常有效。
组表包含组表项,每个组表项包含了一系列依赖于组类型的特定规范的行动存储段(见 5.6.1)。一个或多个操作的行动用来使数据包发送到该组。
假如将正确的匹配和指令规范保护起来,交换机设计者可以任意的实现内部结构。 例如, 如果需要使用一个流表项将所有的组转发到多个端口,交换机设计师可以在硬件转发表中 用一个单一的位掩码去实现。 另一个例子是匹配; 如果 OpenFlow 交换机使用用不同数量 的硬件表物理实现,那么流水线就会被暴露出来。
3 名词解释
本节介绍了关键 OpenFlow 的规范条款:
? 字节:一个 8 位字节。
? 数据包:以太网帧,包括报头和有效载荷。
? 端口:数据包进入和退出 OpenFlow 的流水线地方(见 4.1)。可以是一个物理端口,由 交换机定义一个逻辑端口,或由 OpenFlow 的协议定义一个保留端口。
? 流水线:在一个 openflow 交换机中提供匹配、转发和数据包修改功能的流表连接集合。
? 流表:流水线的一个阶段,包含若干流表项。
? 流表项:在流表中用于匹配和处理数据包的一个元素。它包含用于匹配数据包的匹配字 段、匹配次序的优先级,跟踪数据包的计数器,以及对应的的指令集 。 ? 匹配字段:用来匹配数据包的字段,包括包头,进入端口,元数据值。匹配字段可能会 进行通配符匹配(匹配任何值)或者在某些情况下通过位掩码进行匹配。
? 元数据:一个可屏蔽寄存器的值,用于携带信息从一个表到下一个。 ? 指令:指令存在于流表项中,描述报文匹配流表项时 OpenFlow 的处理方式。指令可以修 改流水线处理,如指导包匹配另一个流表,也可以包含一系列添加到行动集的行动,还可 以包含一系列立即应用到数据包的行动。
? 行动:将数据包转发到一个端口或修改数据包,如 TTL 字段减 1 操作。行动可能是与流 表项相关联的指令集或者与组表项相关联的行动存储段的一部分。我们可以将行动积累在 数据包的行动集,也可以立即将行动应用到该数据包。 行动集:与数据包相关的行动集合,在报文被每个表处理的时候这些行动可以累加,在指 令集指导报文退出处理流水线的时候这些行动会被执行。
? 组:一系列的行动存储段和一些选择一个或者多个存储段应用到数据
文档评论(0)