下载  >  网络技术  >  网络基础  > OpenFlow中文文档

OpenFlow中文文档 评分:

OpenFlow中文文档
以包含一系列立即应用到数据包的行动 行动:将数据包转发到一个端口或修改数据包,如TTL字段减1操作。行动可能是与流 衣项相关联的指令集或者与组衣项相关联的行动存储段的·部分。我们可以将行动积累在 数据包的行动集,也可以立即将行动应用到该数据包。 行动集:与数据包相关的行动集合,在报文被每个表处理的时候这些行动可以累加,在指 令集指导报文退出处理沇水线的吋侯这些行动会被执行。 组:一系列的行动存储段和一些选择一个或者多个存储段应用到数据包单元的手段。 行动存储段:一组行动和相关参数,定义组。 标记:一个头,可以插入到数据包或者通过压入和弹出行动进行移除。 ·最外层的标签:一个数据包最开始出现的标签。 控制器:一个实体与0pen1ow交换机使用0pen1ow协议交互的实体。 计量:一个交换机元件,可以测量和控制数据包的速度。当数据包速率或通过计量的字 节速率超过预定义的阈值时,计量触发计量带。如果计量带丢弃该数据包,它则被称为 个速率限制器 4 Open F|ow端口 木节介绍了0 perLow的端口的抽象概念和0 perLow支持的各类端口 410 pen Flow端口 Openflow的端口是 perLow处理进程和网络的其余部分之间传递数据包的网终接旦。 perlow交换机之间通过penF1ow端口在逻辑上相互连接。 0 penFlow交换札使一些 OpenFlow的端口,可用于 OpenFlow的处理。 OpenFlow的端口组 可能与交换杋硬件中提供的网络端口不完全相同,因为有些硬件网络接口可能被Oρ onFlow 禁用, OpenFlow交换机也可以定义额外的端冂。 0o的数据包从入只端只接收过e的流水线处理以宾们 发到一个输忠端入端口是数据包的属性,它贯穿了整个0penF1oW流水线,并代表数据 包是从哪个 Openflow交换机的端凵上接收的。匹配报文的时侯会用到入端口(见5.3) Openflow流水线可以决定数据包通过揄出行动发送到输出端口(见5.12),它定义∫数据 包怎样传回到网终中。 perlow交换机必须支持三种类型的α pellow的端凵:物理端口,逻辑端口和保留端口 42标准端口 OpenFlow的标准端口为物理端口,逻辑端口,本地保留端口(其他保留的端口除外)。 标准端口可以被用作入口和出端口,它们可用于在组(见5.6),都有端口计数器(见5.8)。 4.3物理端口 Openflow的物理端冂为交换机定义的端冂,对应于个交换机的硬件接冂。例如,以太网 交换机上的物理端口与以太网接口一一对应。 在某些部署中, OpenFlow交换机可以实现交换机的硬件虚拟化。在这些情况下,一个 perLow物理端∏可以代表个与交换机硬件接冂对应的虚拟切片。 44逻辑端口 0 perLow的逻辑端口为交换机定义的端口,并不直接对应一个交换机的硬件接口。逻辑端 口是更髙层次的抽象概念,可能是交换机中不使用 OpenFlow的端口(如链路汇聚组,隧道, 环回接口) 逻辑端口可能包括报文封装,可以映射到不同的物理端口。这些逻辑端口的处理动作相对 于 openflow处理来说必须是透明的,而且这些端口必须通过 openflow处理起作用,像硬 件接口一样。 物理端口和逻辑端口之间的唯一区别是:一个逻辑端口的数据包可能有一个叫做隧道ID的 额外的元数据字段与它相关联;而当一个逻辑端口上接收到的分组被发送到控制器时,其 逻辑端口和底层的物理端口都要报告给控制器。 4.5保留端口 规范所定义的0 perLow的保留端口。它们指定通用的转发动作,如发送到控制器,泛洪 或使用非 OpenFlow的方法转发,如“正常”交换机处理。 某个交换机只支持那些标记为“ Required”的保留端口,至」“0υ tional”的端口可以根 据需要可选。 · Required:AL:表示交换机转发特定数据包到所有端口,它仅可用于为输出端山在这 种情况下,数据包被复制后发送到所有的标准端口,包括数据包的入端口,这些端口被配 置 OFPPC NO FWD。 · Required: CONTROLLER:表示的 Openflow控制器的控制通道,它可以用作一个入端口或 作为一个出端囗当用作一个出端口,封装数据包中为数据包消总,并使用的 OpenFlow协 议发送(见A.4.1)。当用作一个入口端口,确认来自控制器的数据包 Required: TABLE:表示 openflow流水线的开始。这个端口仅在输出行为的时候有效, 此时交换机提交报文给第一流表使数据包可以通过定期通过 perLow流水线处理。 · Required: IN PORT:代衣数据包进入端∏。用于输出端∏吋,只允许入端∏发送的数据 包通过。 · Required:ANY:特别值,用在未指定端口的oρ onFlow指令(端口通配符)。不能使用的 入∏端∏,也不作为个输出端冂。 0 fiona1: LOCAL:表小交换机的本地网络堆栈和管理堆栈。可以用作一个入口端口或作 为一个输出端口。本地端口使远程实体遥过 OpenFlow网络和交换机以及其网终服务互通, 而不是通过一个单独的控制网络进行互通。使用一组合适的默认流表项,本地端口可以用 来实现一个带内控制器的连接 ·0 otional: NORMAL:代表传统的非 OpenFlow流水线(见5.1)。仅可用于为一个输出端 ∏,使用普通的流水线处理数据包。如果交换机不能转发数据包从ω perLow沇水线到普通 流水线,它必须表明它不支持这一行动。 0 otional:FL0D:表示使用普通流水线处理进行泛洪(见5.1)。可用于作为一个输出 端口,一般可以讲数据包发往所有标准端凵,但不能发往入端口或 OFPPS BLOCKED状态的 端口。交换杋也可以通过数据包的ⅥANID选择哪些端口泛洪。 只有 OpenFlow-only交换机不支持 NORMAL端口和 FLOOD端口,而 Open1ow- hybrid交换机 均支持上述端口(见5.1)。转发数据包到∏L00端凵依赖交换机上的实现和配置,而使用 组类型进行转发可以使控制器能够更灵活地实现泛洪(见5.6.1)。 5 Open Flow表 本节描述流表和组表的组件,以及与匹配和行动处理的技术 51流水线处理 peow兼容的交换机有两种类型:0 perLow-ony和( perLow- hybrid。 OpenFlow only交换机只支持0penF1low操作,在这些交换机中的所有数据包都由 OpenFlow流水线处 理,否则不能被处理 perlow hybrid交换机支持 perLow的操作和通的以太网交换操作,即传统的L2以 太网交换,ⅥAN隔离,L3路由(IPv4的路由,IPv6路由),ACL和QoS处理。这些交换机 提供一个交换机外的分类机制,使流量路由到 Open1ow流水线或普通流水线。例如,某个 交换札可以使用ⅥLAN标签或数据包的输入端∏,来决定是否使用·个流水线或其他流水线, 或者它可指导所有数据包都到 OpenFlow流水线进行处理 这种分类机制是本规范的范围之外。一个 Open1ow- hybrid交换机也允许数据包通过 NORMAL或者HLω的俣留端∏从 OpenFlow流水线到普通沇水线处理(见4.5)。 每个0 penFlow交换机的流水线包含多个流表,每个流表包含多个流表项。0penF1oW的流 水线处理定义了数据包如何与那些流表进行交互(参见图2)。 OpenFlow交换机需要具有 流表中的至少一个,并可以有更多的可选择的流表。只有一个单一的流表的0 penFlow交换 机是有效的,而且在这种情况下流水线处理进程可以大大简化 Open Flow Switch Pk时t Packet Ingress ngress part+ Table metadata Table Table Packet Execute: Packet Action 0 n AGlen Acion Set a) Padres are matched against multiple tablas in the pipeline O Find highest-priority matching flow entry Metch fields Match fields ② Apply instructions: Ing sa port models i Modify packet a update match fields Fow pl hdr (apply actions instruction) Table Action set Action set ll Update action set (clear actions andor write actions instructions) lii. Update metadata 3 Send match data and action set to next table (b)Per-table packet proeeasLns Figure2:通过处理了流水线的数据包流 perlow交换杋的流表按顺序编号的,从0开始。流水线处理总是从第一流表开始:数据 包第个与流表0的沇表项匹配。其他流表根据第·个衣的匹配结果来调用。 根据某个流表进行处理时,将数据包与流表中的流表项进行匹配,从而选择流表项(见 5.3)。如果匹配到了流表项,那么包括在该流表项的指令集被执行时,这些指令可能明确 指导数据包传递到另·个流衣(使用Goto指令,见5.9),在那里同样的处理被重复执行 表项只能指导数据包到大于自己表号的流表,换句话说流水线处理,只能前进,而不能后 退。显然,流水线的最后一个表项可以不包括G0T0指令。如果匹配的流表项并没有指导数 据包到另一个流表,流水线处理将停止在该表中。当流水线处理停止,数据包被与之相关 的行动集处理并通常被转发(见5.10)。 如果数据包在流表中没有匹配到流表项,这是一个 table-miss的行为。 table-miss行为 依赖」表的配置(见5.4)。一个 table-miss的流表中的表项可以指定如何处理无法匹型 的数据包:包括丢弃,传递到另一个表中,或凭借数据包中的信息通过控制通道发送到控 制器(见6.1.2)。 52流表 个流表中包含多个流表项。 每个流表项包含: Match Fields Priority Counters Instructions Timeouts Cookie Table 1: Main components of a How entry in a How table 匹配字段:对数据包匹配。包括入口端口和数据包报头,以及由前一个表指定的可选的元 数据。 优先级:流表项的匹配次序 计数器:更新匹配数据包的计数 指令:修改行动集或流水线处理 超时:最大时间计数或流有效时间 cookie:由控訇器选择的不透明数据值。控制器用来过滤流统计数据、流改变和流删除。 但处理数据包时不能使用。 流表项通过匹配字段和优先级决定,在一个流表中匹配字段和优先级共同确定唯一的流表 项。所有字段通配(所有字段省略)和优先级等」0的流表项被称为 table-miss流表项 (见5.4)。 53匹配 Packetin UNiate counters Mac飞 EyBHie rstUEIOnS CDO TEan? t甲 dio pudkgiimch +uNdo muNdel 三BHaT Table anty ? Figure3:流程图详细描述∫数据包流通过一个0penF1ow交换机。 Openflow交换机在接收一个数据包时,执行在图3中所示的功能。交换机开始执行一个查 找表中的第1流表,并基于流水线处理,也可能在其它流表中(见5.1)执行表查找。 数据匹配字段从数据包中提取。用于衣査找的数据包匹配宇段依赖与数据包类型,这些类 型通常包括各种数据包的报头字段,如以太网源地址或IPv4日的地址(见A.2.3)。除了 通过数据包报头中进行匹配,也可以通过入口端凵和元数据字段进行匹配。元数据可以用 来在一个交换札的不同表里面传递信息。报文匹配字段表示报文的当前状态,如果在前 个表中使用Aply- Actions改变了数据包的报头,那么这些变化也会在数据包死配字段中 反映。 数据包匹配字段中的值用于查找匹配的流表项。如果流表项字段只有值的ANY(字段省略), 它就可以匹配包头中的所有可能的值。如果交换机支持任意的的位掩码对特定的匹配宁段, 这些掩码可以更精确地进行匹配。 数据包与表进行匹配,优先级最高的表项必须被选择,此时与选择流表项相关的计数器也 会被更新,选定流表项的指令集也被执行。如果有多个匹配的流表项具有相同的最高的优 宄级的,所选择的流表项被确定为未定乂表项。只有控制器记录器在传统的流信息中没有 改置 OFPFF CHECK OVERLAP位并且增加」車复的表项的时候,这种情况才能出现 如果在流水线处理前,交换机配置包含 OFPC FRAG REASM标志(见A.3.2),IP碎片必须被 重新组装。 当交换机接收到个格式不正确或损坏的数据包,此版本的规汽没有定义预期的行为。 5. 4 Table-miss 每一个流表必须支持能处理 tablc-miss的流表项。 table-miss表项指定在流表中如何处 理与其他流表项未匹配的数据包(见5.1)。比如数据包发送到控制器,丢弃数据包或直接 将包扔到后续的表。 table-miss的流表项也有它的兀配字段和优先级(见5.2),它通配所有匹配字段(所有领 域省略),并具有最低的优先级(0)。 table miss流表项的匹配可能不属于正常范围内流 表支持的匹配,例如精确匹配表可能不支持在其他流表项中使用通配符,但必须支持 table-miss的通配符流表项。 table-miss流表项可能没有与正常流表项(见A.3.5.5)相 同的能力。交换机最好支持和 OpenFlow的以前版木的处理能力相同的 table-miss流表项: 将数据包发送到控制器,丢弃数据包或直接包到后续的表。 table-miss表项的行为在许多方面像任何其他流表项:默认情况下,在流表中不存在 table- mISs表项。控制器可以在仼何吋候添加或刖除它(见6.4),而且它可能会超吋失效 (见5.5)。 tablo- Miss流表项可以匹配流表中其他表项中不能兀配的数据。当数据包与 table miss表项匹配时, table miss表项指令就会执行(见5.9)。如果该 table miss表 项直接将数据包通过C0 NTROLLER端口发送到控制器(见4.5),那么报文中的信息必须与 一个 table-miss表项匹配(见A.4.1) 如果该 table miss表项不存在,默认情况下,流表项无法的数据包将被丢弃(丢弃)。 个交换机的配置,例如使用α penFlow的配置协议,可以覆盖此默认值,指定其他行为 55流表项删除 流表项可以通过两种方式在流表中删除,控制器的请求或交换机流超时机制 交換流超时机制运行基于相关的控制器和流表项的状态和配置。每个流的表项具有一个和 它相关的 idle timeout和 hard timeout值。如果两个值中有一个不为零,交换机必须注 意的流表项的老化时间,因为交换机可能刪除该项。如果给定非零 hard timeout的值,那 么一段时间后,可以导致流表项被删除,无论有多少数据包与之匹配。如果给定非零 idle_ timeout的值,那么如果在段吋间没有报文与之匹配,可以导致流表项被删除。交 换机必须实现流表项超时和删除功能。 该控制器可积极的从流表中通过发送流表修改信息( OFPFC DELETE,或 OP℃ DELETE STRICT-见6.4)胭除流茯项。沇衣项被删除吋,无论是控制器控制或流 表项超时机制,交换杋必须检查流表项的 OFPFF SEND Fˉ OW REM标志。如果该标志被设置 该交换机必须将流删除消息发送到控制器。每个流清除消息中包含的流表项的完整的描述 清除的原因(超时或删除),在清除时的流表项的持续时间,在清除时的流的统计数据。 56组表 组表包括若干组表项。这是另外的 openflow转发方法,就是若干流表项指向一组(例如选 择部分和所有)。 [ Group Identifier Group Type Counters Action Bucket Table 2: Main components of a group entry in the group table (见表2)每个组表项由组绵号确定,只体内容包含 组编号:一个32位的无符号整数,唯一标识该组 组类型:确定组语义(参见5.6.1节) 计数器:更新数据当报文被组表项处理时 行动存储段:二系列有序的行动存储段,其中的每个动作存储段包含了一组要执行的动作 和相关参数 5. 6. 1 Group Types 某个交换机只支持那些标记为“ Required”的组类型,至于“ Optional”的组类型可以根 据需要可选。 Required:al1:执行组中的所有存储段。这个组用于多播或广播的转发。数据包为每个 存储段都有效地复制一份,然后被每个存储段处理。如果某个存储段中眀确地指导数据包 发往入端口,那么这个复制的包被丟弃。如果控制器希望数据包转发到入端口,那么这个 组需要包含一个额外的存储段,这个存储段含有到 OFPP IN PORT保留端口的输出行动。 Optional: selecτ:执行组中的一个存储段。报文基于一个计算交换机选择算法(如 些用户配置数组的哈希算法或简单的循环算法)被组中的一个存储段处理。所有的配置和 状态的选择算法都在 OpenFlow外部运行。选择算法实现可以使用等负荷分配,页可以有选 择地根据存储段的杈重进行。当存储段中指定的端口出现故障时,交换机可以选择剩余的 存储段(生存端∏的转发行为),而不是丢弃数据包。此行为可能会减少报文在链路或交换 机的中断。 · Required: indirect:执行此组中定义的一个存储段。这个组只支持单一的存储段。允 许多个流表项或者组指向个共同的组编号,这样可以使转发更快,更高效的聚集(例如 下一跳IP转发)。对于所有组的这个存储段,组类型应该是相同的。 · Optional: fast failover:执行第一个活跃的存储段。每一个动作存储段与一个特定的 端凵和/或组,这些端凵或者组控制其活跃性。存储段的顺序由组定义,并且第一个活跃的 存储段对应的端口或者组也是活跃的。这个组类型可以直接使交换机改变转发,而无需和 控佃器联系。如果没有存储段是活的,数据包将被丢弃。这组的类型必须实行活跃机制 (见6.5)。 57计量表 个计量表包含若干计量表项,确定每个流量的计数。单位流量的计量可以使 OpenFlow实 现各种简单的QoS业务,如限速,并且可以结合每个端口队列(见5.12)米实现复杂的 QoS框架,如 Diffserv。 计量可以测试数据包的速率,使这些数据包可以实现速率控制。计量直接连接到流表项 (而不是被连接到端∏的队列)。任意的流衣项可以在它的指令集中定义个计量(见 5.9),计量测量和控制和它相连的所有流的速率。在同一个表中可以使用多个计量,但必 须使用独有的方式(分离的流表项)。多个计量也可在用在连续的流表中,针对数据包集合 Meter Identifier Meter Bands Counters lable 3: Main components of a meter entry in the meter table 每计量表项(见表3)由其计量标识符标识,并且包含: ·计量的标识符:一个32位的无符号整数唯一识别仪 ·计量带:计量带的无序列表,其中每个计量带定义带的速度和处理数据包的方式 计数器:报文被计量表项处理时,更新计数 5.7.1 Meter bands 每个计量可能有一个或多个计量带。每个带指定带适用的速率和并数据被处理的方式。数 据包基于当前的计量速率被单个计量带处理,计量带适用于当前速率超过配置的速率的情 况,如果目前的速度比任何指定的计量带率较低,那么计量带就不工作。 每个计量带(见衣4)用速率识别,包括:

...展开详情
2017-01-23 上传 大小:541KB
举报 收藏
分享

评论 下载该资源后可以进行评论 共1条

zhbzhbyc1234 是“OpenFlow交换机规范(概要)”
2017-03-07
回复
OpenFlow白皮书中文版 PDF

This document describes the requirements of an OpenFlow™ Switch. We recommend that you read the latest version of the OpenFlow Whitepaper [指向ONF官网下载](国内中文翻译版本)before reading this specification. This specification covers the components and the basic functions of the switch, and the OpenFlow protocol

立即下载
openflow文档合集

包括12篇openflow相关论文: OpenFlow交换机模型及关键技术研究与实现 OpenFlow网络软件路由研究 基于OpenFlow的未来互联网试验网 基于Openflow网络的高可靠性虚拟网络映射算法 等等

立即下载
openflow协议1.3.2中文版

openflow协议1.3.2中文版.pdf

立即下载
openflow协议全面讲解(中文版)

斯坦福大学OpenFlow 团队近十年来一贯坚持的开放和创新的态度,使得基于OF 的开 源项目不断增加,一个个精彩的demo 不断呈现,最终促成了学术界和工业界的集体参与热情。

立即下载
openflow-master代码包

SDN技术中,openflow的源码安装包,有兴趣的可以学习下

立即下载
openflow文档

新兴技术,值得看看。 软件控制交换机

立即下载
html+css+js制作的一个动态的新年贺卡

该代码是http://blog.csdn.net/qq_29656961/article/details/78155792博客里面的代码,代码里面有要用到的图片资源和音乐资源。

立即下载