- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenFlow交换机规范(概要)
Version 1.3.0 (June 25, 2012
1 介绍
本文档描述了对OpenFlow交换机的要求。此规范内容包括交换机的组件和基本功能,和
一个远程控制器管理一个OpenFlow交换机的协议:OpenFlow。
2 交换机部件
OpenFlow的交换机包括一个或多个流表和一个组表,执行分组查找和转发,和到一个外
部控制器OpenFlow的信道 (图1 。该交换机与控制器进行通信,控制器通过OpenFlow协议
来管理交换机。
控制器使用OpenFlow协议,可以添加、更新和删除流流表中的表项,主动或者被动响应
数据包。 在交换机中的每个流表中包含的一组流表项;每个流表项包含匹配字段,计数器和
一组指令,用来匹配数据包(见5.2 。
匹配从第一个流表开始,并可能会继续匹配其它流表 (见5.1 。 流表项匹配数据包是
按照优先级的顺序,从每个表的第一个匹配项开始 (见5.3 。如果找到一个匹配项,那么与
流表项相关的指令就会去执行。如果在流表中未找到匹配项,结果取决于漏表的流表项配置:
(例如,数据包可能通过OpenFlow信道被转发到控制器、丢弃、或者可以继续到下一个的流
表,见5.4 。
与流表项相关联的指令包含行动或修改流水线处理(见5.9 。 行动指令描述了数据包
转发,数据包的修改和组表处理。流水线处理指令允许数据包被发送到后面的表进行进一步
的处理,并允许信息以元数据的形式在表之间进行通信。当与一个匹配的流表项相关联的指
令集没有指向下一个表的时候,表流水线停止处理,这时该数据包通常会被修改和转发(见
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)