没有合适的资源?快使用搜索试试~ 我知道了~
首页openflow switch specification中文版本
资源详情
资源评论
资源推荐
OpenFlow 交换机规范(概要)
Version 1.3.0 (June 25, 2012)
1 介绍
www.sdnap.com 独家提供。本文档介绍的OpenFlow交换机的要求。规范包括交换机的组件
和基本功能,和OpenFlow的协议,通过一个远程控制器来管理一个OpenFlow的交换机。
2 交换机组成
OpenFlow 的交换机包括一个或多个流表和一组表,执行分组查找和转发,和到一个外部控
制器 OpenFlow 的信道(图 1)。该交换机与控制器进行通信,并通过 OpenFlow 的协议控制
器管理的交换机。
控制器使用 OpenFlow 的协议,它可以添加、更新和删除流流表中的表项,既主动或者被动
响应数据包。 在交换机中的每个流表中包含的一组流 表项;每个流表项包含匹配字段,计
数器和一组指令,用来匹配数据包(见 5.2)。
匹配开始于第一个流程表,并可能会继续额外的流表 (见 5.1)。 流表项匹配数据包按照
优先级的顺序,从每个表的第一个匹配表项开始(见 5.3)。如果找到匹配的项,那么具体
流表项按照指令去执行。 如果在流表中未找到 匹配项 ,结果取决于漏表的流表项配置:
(例如, 数据包可被转发到 OpenFlow 的信道控制器、丢弃、或者可以继续到下一个的流
表,见 5.4)。
指令与每个包含行动或修改流水线处理的流表项相联系(见 5.9)。 行动描述了数据包转
发,数据包的修改和组表 处理。 流水线处理的指令允许数据包被发送到后面的表进行进
一步的 处理 , 并允许信息以元数据的形式在表之间进行通信。当与一个匹配的流表项相
N.J.C.H
Only forlearning~ÿOnly for learning.
关联的指令集没有指向下一个表的时候,表流水线处理停止,这时该数据包通常被修改和
转发(见 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 操作。行动可能是与流
表项相关联的指令集或者与组表项相关联的行动存储段的一部分。我们可以将行动积累在
数据包的行动集,也可以立即将行动应用到该数据包。
行动集:与数据包相关的行动集合,在报文被每个表处理的时候这些行动可以累加,在指
令集指导报文退出处理流水线的时候这些行动会被执行。
• 组:一系列的行动存储段和一些选择一个或者多个存储段应用到数据包单元的手段。
• 行动存储段:一组行动和相关参数,定义组。
• 标记:一个头,可以插入到数据包或者通过压入和弹出行动进行移除。
• 最外层的标签:一个数据包最开始出现的标签。
• 控制器:一个实体与 OpenFlow 交换机使用 OpenFlow 协议交互的实体。
• 计量: 一个交换机元件,可以测量和控制数据包的速度。当数据包速率或通过计量的字
节速率超过预定义的阈值时,计量触发计量带。如果计量带丢弃该数据包,它则被称为一
个速率限制器。
4 OpenFlow 端口
本节介绍了 OpenFlow 的端口的抽象概念和 OpenFlow 支持的各类端口。
4.1 OpenFlow 端口
OpenFlow 的端口是 OpenFlow 处理进程和网络的其余部分之间传递数据包的网络接口。
OpenFlow 交换机之间通过 OpenFlow 端口在逻辑上相互连接。
OpenFlow 交换机使一些 OpenFlow 的端口,可用于 OpenFlow 的处理。 OpenFlow 的端口组
可能与交换机硬件中提供的网络端口不完全相同,因为有些硬件网络接口可能被 OpenFlow
禁用,OpenFlow 交换机也可以定义额外的端口。
OpenFlow 的数据包从入口端口接收,经过 OpenFlow 的流水线处理(见 5.1),可将它们转
发到一个输出端口。入端口是数据包的属性,它贯穿了整个 OpenFlow 流水线,并代表数据
包是从哪个 OpenFlow 交换机的端口上接收的。匹配报文的时候会用到入端口(见 5.3)。
OpenFlow 流水线可以决定数据包通过输出行动发送到输出端口(见 5.12), 它定义了数据
包怎样传回到网络中。
OpenFlow 交换机必须支持三种类型的 OpenFlow 的端口:物理端口,逻辑端口和保留端口。
4.2 标准端口
OpenFlow 的标准端口为物理端口,逻辑端口,本地保留端口(其他保留的端口除外)。
标准端口可以被用作入口和出端口,它们可用于在组(见 5.6),都有端口计数器(见 5.8)。
4.3 物理端口
OpenFlow 的物理端口为交换机定义的端口,对应于一个交换机的硬件接口。例如,以太网
交换机上的物理端口与以太网接口一一对应。
在某些部署中,OpenFlow 交换机可以实现交换机的硬件虚拟化。在这些情况下,一个
OpenFlow 物理端口可以代表一个与交换机硬件接口对应的虚拟切片。
4.4 逻辑端口
OpenFlow 的逻辑端口为交换机定义的端口,并不直接对应一个交换机的硬件接口。逻辑端
口是更高层次的抽象概念,可能是交换机中不使用 OpenFlow 的端口(如链路汇聚组,隧道,
环回接口)。
逻辑端口可能包括报文封装,可以映射到不同的物理端口。这些逻辑端口的处理动作相对
于 openflow 处理来说必须是透明的,而且这些端口必须通过 openflow 处理起作用,像硬
件接口一样。
物理端口和逻辑端口之间的唯一区别是:一个逻辑端口的数据包可能有一个叫做隧道 ID 的
额外的元数据字段与它相关联;而当一个逻辑端口上接收到的分组被发送到控制器时,其
逻辑端口和底层的物理端口都要报告给控制器。
4.5 保留端口
本规范所定义的 OpenFlow 的保留端口。它们指定通用的转发动作,如发送到控制器,泛洪,
或使用非 OpenFlow 的方法转发,如“正常”交换机处理。
某个交换机只支持那些标记为“Required”的保留端口,至于“Optional”的端口可以根
据需要可选。
• Required: ALL: 表示交换机转发特定数据包到所有端口,它仅可用于为输出端口。在这
种情况下,数据包被复制后发送到所有的标准端口,包括数据包的入端口,这些端口被配
置 OFPPC_NO_FWD。
• Required: CONTROLLER: 表示的 OpenFlow 控制器的控制通道,它可以用作一个入端口或
作为一个出端口。当用作一个出端口,封装数据包中为数据包消息,并使用的 OpenFlow 协
议发送(见 A.4.1)。当用作一个入口端口,确认来自控制器的数据包。
• Required: TABLE: 表示 openflow 流水线的开始。这个端口仅在输出行为的时候有效,
此时交换机提交报文给第一流表使数据包可以通过定期通过 OpenFlow 流水线处理。
• Required: IN PORT:代表数据包进入端口。用于输出端口时,只允许入端口发送的数据
包通过。
• Required: ANY: 特别值,用在未指定端口的 OpenFlow 指令(端口通配符)。不能使用的
入口端口,也不作为一个输出端口。
• Optional: LOCAL: 表示交换机的本地网络堆栈和管理堆栈。可以用作一个入口端口或作
为一个输出端口。本地端口使远程实体通过 OpenFlow 网络和交换机以及其网络服务互通,
而不是通过一个单独的控制网络进行互通。使用一组合适的默认流表项,本地端口可以用
来实现一个带内控制器的连接。
• Optional: NORMAL: 代表传统的非 OpenFlow 流水线(见 5.1)。仅可用于为一个输出端
口,使用普通的流水线处理数据包。如果交换机不能转发数据包从 OpenFlow 流水线到普通
流水线,它必须表明它不支持这一行动。
• Optional: FLOOD: 表示使用普通流水线处理进行泛洪(见 5.1)。可用于作为一个输出
端口,一般可以讲数据包发往所有标准端口,但不能发往入端口或 OFPPS_BLOCKED 状态的
端口。交换机也可以通过数据包的 VLAN ID 选择哪些端口泛洪。
只有 OpenFlow-only 交换机不支持 NORMAL 端口和 FLOOD 端口,而 OpenFlow-hybrid 交换机
均支持上述端口(见 5.1)。转发数据包到 FLOOD 端口依赖交换机上的实现和配置,而使用
一组类型进行转发可以使控制器能够更灵活地实现泛洪(见 5.6.1)。
5 OpenFlow 表
本节描述流表和组表的组件,以及与匹配和行动处理的技术。
5.1 流水线处理
OpenFlow 兼容的交换机有两种类型:OpenFlow-only 和 OpenFlow-hybrid。 OpenFlow-
only 交换机只支持 OpenFlow 操作,在这些交换机中的所有数据包都由 OpenFlow 流水线处
理,否则不能被处理。
OpenFlow-hybrid 交换机支持 OpenFlow 的操作和普通的以太网交换操作,即传统的 L2 以
太网交换,VLAN 隔离,L3 路由(IPv4 的路由,IPv6 路由),ACL 和 QoS 处理。这些交换机
提供一个交换机外的分类机制,使流量路由到 OpenFlow 流水线或普通流水线。例如,某个
交换机可以使用 VLAN 标签或数据包的输入端口,来决定是否使用一个流水线或其他流水线,
或者它可指导所有数据包都到 OpenFlow 流水线进行处理。
这种分类机制是本规范的范围之外。 一个 OpenFlow-hybrid 交换机也允许数据包通过
NORMAL 或者 FLOOD 的保留端口从 OpenFlow 流水线到普通流水线处理(见 4.5)。
剩余24页未读,继续阅读
myhearty
- 粉丝: 1
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0