操作包含影子表的转发元件的方法以及相关的转发元件的制作方法

文档序号:7791870阅读:160来源:国知局
操作包含影子表的转发元件的方法以及相关的转发元件的制作方法
【专利摘要】可提供方法来在包含转发平面和控制平面的网络的转发平面中操作转发元件。方法可包含通过转发元件的输入/输出端口来接收分组并且尝试匹配分组与转发元件的流表。响应于分组未命中与流表的匹配,转发元件可尝试匹配分组与转发元件的影子表。响应于分组与影子表匹配,可基于来自影子表的匹配的影子规则在流表中安装新的流规则。还讨论了有关的转发元件。
【专利说明】操作包含影子表的转发元件的方法以及相关的转发元件

【技术领域】
[0001] 本公开指向通信,并且更特别地指向网络通信方法以及相关网络元件。

【背景技术】
[0002] 大多数现代以太网转发元件(例如,交换机和路由器)包含流表(通常从TCAM或三 元内容可寻址存储器建立),流表以线路速率运行来实现防火墙、NAT (网络地址转换)和QoS (服务质量),并且收集统计。虽然不同供应商的流表可以不同,但是OpenFlow开发在许多 交换机和路由器中运行的一组公共功能。
[0003] OpenFlow提供开放协议来对不同的转发元件(例如,交换机和路由器)中的流表进 行编程。例如,网络管理者可以将业务划分成生产流和研究流,和/或研究员可以通过选择 他们的分组遵循的路线以及他们接收的处理来控制他们自己的流。以此方式,研究员可以 尝试新的路由协议、安全模型、寻址方案以及甚至IP (因特网协议)的备选。在相同的网络 上,生产业务可以是传统地隔离并且处理。
[0004] OpenFlow转发元件(例如,交换机)的数据路径可包含流表,以及与包含在流表中 的每个流规则(也被称作流条目)关联的动作。OpenFlow转发元件所支持的一组动作可以 是可扩展的。为了高性能和低成本,数据路径可具有仔细划定的灵活度,这可意味着放弃规 定每个分组的任意处理的能力并且寻求更有限的(但仍然有用的)动作范围。
[0005] OpenFlow转发元件可包含具有多个流规则(具有与每个流规则关联的动作)的流 表来告诉转发元件如何处理相应流,将交换机连接到远程OpenFlow控制器的安全信道(允 许使用OpenFlow协议(它为控制器提供与转发元件通信的开放和标准方式)在控制器与转 发元件之间发送命令和分组)。通过规定标准接口(OpenFlow协议)(可使得用外部控制器 通过标准接口来定义转发元件流表中的规则/条目),研究员可不需要个别地对OpenFlow 转发元件进行编程。
[0006] OpenFlow转发元件可包含一个或多个流表和组表(它们可执行分组查找和转发) 以及到外部OpenFlow控制器的OpenFlow信道。OpenFlow控制器经由OpenFlow协议来管 理转发元件。使用此协议,控制器可以添加、更新、并且删除流规则/条目,反应性地(响应 于在转发元件处接收的分组)和主动地(例如,对新的转发元件的流表进行编程)。
[0007] 转发元件中的每个流表可包含一组规则/条目。每个流规则/条目可包含匹配的 字段、计数器和应用于匹配分组的一组指令。
[0008] 在转发元件处的匹配可开始于第一流表(也被称作主流表)并且可继续到转发元 件的附加的流表。流规则/条目以优先级次序匹配数据分组,使用每个表中的第一匹配规 则/条目。如果为流表中的数据分组找到匹配的规则/条目,则为数据分组执行与具体流 规则/条目关联的指令。如果没有找到流表中的数据分组的匹配,则结果可取决于转发元 件配置。可在OpenFlow信道上将数据分组转发到控制器,可分出数据分组,或匹配数据分 组的尝试可继续到转发元件的下一流表。
[0009] 与每个流规则/条目关联的指令描述数据分组转发、数据分组修改、组表处理和 管线处理。管线处理指令允许数据分组被发送到后续表用于进一步处理并且允许信息(例 如,以元数据的形式)在表之间通信。当与匹配的流规则/条目关联的指令集不规定下一表 时,可停止表管线处理。在此点上,通常可修改并且转发数据分组。
[0010] 流规则/条目可将相应数据分组转发到端口。这通常是物理端口,但它还可以是 由交换机定义的虚拟端口或由OpenFlow交换机规范定义的预留虚拟端口。预留虚拟端口 可规定一般转发动作,例如,使用非OpenFlow方法来发送到控制器、泛洪或转发,例如"正 常"交换机处理,而交换机定义的虚拟端口可规定链路聚合组、隧道或回送接口。
[0011] 流规则/条目还可指向规定附加的处理的群组。群组表示用于泛洪的动作的集 合,以及更复杂的转发语义(例如,多路径、快速重新路由和链路聚合)。作为间接的一般层, 群组也使多个流能够转发到单个标识符(例如,转发到公共下一跳的IP)。此抽象可允许有 效率地改变跨流的公共输出动作。
[0012] 组表可包含组条目,其中每个组条目包含动作栏目的列表(具有依赖于组类型的 具体语义)。一个或多个动作栏目中的动作适用于发送到群组的数据分组。
[0013] 例如,在"OpenFlow交换机规范",实现版本1. 1. 0 (有线协议0x02),2011年2 月 28 日中,并且参考McKeown 等的标题为"OpenFlow :Enabling Innovation In Campus Networks",2008年3月14日,讨论OpenFlow转发元件(例如,交换机和/或路由器)、控制 器和协议。以上两个参考的文档的公开据此通过引用全部并入本文。
[0014] OpenFlow信道是在OpenFlow接口上连接OpenFlow转发元件与控制器的接口。接 口自身可以是具体的实现,并且它可使用TCP (传输控制协议)连接或SCTP (流控制传输协 议)连接来实现。此外,TLS (传输层安全)可用于发送消息(消息是由控制器加密并且由转 发元件解密)。
[0015] 尽管有以上讨论的网络,在本领域中继续存在对包含转发元件和控制器的网络中 的改进操作的需要。


【发明内容】

[0016] 因此目标是处理上述缺点中的至少一些和/或改进网络性能。
[0017] 根据一些实施例,可提供方法来在包含转发平面和控制平面的网络的转发平面中 操作转发元件。方法可包含通过转发元件的输入/输出端口来接收分组并且尝试匹配分组 与转发元件的流表。响应于分组未命中与流表的匹配,可执行匹配分组与转发元件的影子 表的尝试。响应于分组与影子表匹配,可基于来自影子表的匹配的影子规则在流表中安装 新的流规则。
[0018] 此外,安装新的流规则可包含基于来自影子表的匹配的影子规则在流表中安装新 的流规则而不将分组从转发元件传送到网络的控制平面。可根据来自影子表的匹配的影子 规则和/或根据新的流规则通过转发元件来处理分组。通过使用影子规则来安装流规则, 可减少转发元件与控制平面之间的通信业务,和/或可减少在控制平面处的处理负担。
[0019] 响应于分组未命中与流表的匹配以及响应于分组未命中与影子表的匹配,可将分 组内(packet-in)消息传送到网络的控制平面中的控制器,其中分组内消息包含分组。
[0020] 分组可以是数据分组,并且响应于数据分组未命中与流表的匹配以及响应于数据 分组未命中与影子表的匹配,转发元件的学习表可更新为关联数据分组的源与输入/输出 端口。此外,数据分组可以是第一数据分组。响应于从对应于分组内消息的控制器接收影 子修改消息,可在影子表中安装影子规则,它关联来自由第一数据分组的目的地地址识别 的源的后续数据分组与转发元件的虚拟内部端口。在安装影子规则之后,可通过转发元件 的输入/输出端口来接收第二数据分组,第二数据分组具有匹配第一数据分组的目的地地 址的源地址。可执行匹配第二数据分组与转发元件的流表的尝试。响应于第二数据分组未 命中与流表的匹配,可执行匹配第二数据分组与转发元件的影子表的尝试。响应于第二数 据分组与影子表的影子规则匹配,可基于来自影子表的匹配的影子规则在流表中安装新的 流规则。可根据来自影子表的匹配的影子规则和/或根据新的流规则通过转发元件来处理 第二数据分组。
[0021] 分组可以是在转发元件的控制端口处接收的第一控制分组,用于在客户端装置与 服务器装置之间的会话。响应于从对应于分组内消息的控制器接收影子修改消息,可在影 子表中安装影子规则,影子规则匹配在控制端口处接收的并且具有匹配第一控制分组的源 地址和/或目的地地址的源地址和/或具有匹配第一控制分组的源地址和/或目的地地 址的目的地地址的后续控制分组,其中影子规则从匹配控制分组来识别端口命令。在安装 影子规则之后,可通过转发元件的控制端口来接收第二控制分组,第二控制分组具有匹配 第一控制分组的源地址和/或目的地地址的源地址和/或匹配第一控制分组的源地址和/ 或目的地地址的目的地地址。可执行匹配第二控制分组与转发元件的流表的尝试。响应 于第二控制分组未命中与流表的匹配,可执行匹配第二控制分组与转发元件的影子表的尝 试。响应于第二控制分组匹配影子表的影子规则,可执行影子规则的表达引擎来识别第二 控制分组的命令类型。响应于识别第二控制分组的命令类型,可基于第二控制分组的命令 类型在流表中安装新的流规则。可将第二控制分组从转发元件的输入/输出端口转发到目 的地。
[0022] 第二控制分组可包含端口命令控制分组,其识别用于在客户端与服务器装置之间 传送的后续数据分组的数据端口,并且安装新的流规则可包含安装新的流规则来定义用于 在客户端与服务器装置之间传送的后续数据分组的针孔。在安装新的流规则之后,可接收 具有匹配第一控制分组的源地址和/或目的地地址的源地址和/或具有匹配第一控制分组 的源地址和/或目的地地址的目的地地址的数据分组。可执行匹配数据分组与转发元件的 流表的尝试,以及响应于数据分组与流表的新的流规则匹配,可根据由新的流规则定义的 针孔来处理数据分组。
[0023] 分组可以是第一分组,并且响应于从对应于分组内消息的控制器接收影子修改消 息,可在影子表中安装影子规则,影子规则定义地址和/或端口的范围/列表以及与第一分 组的源地址和/或目的地地址关联的新的流规则。在安装影子规则之后,可通过转发元件 的输入/输出端口来接收第二分组,第二分组具有匹配第一分组的源地址和/或目的地地 址的源地址和/或匹配第一分组的源地址和/或目的地地址的目的地地址。
[0024] 可执行匹配第二分组与转发元件的流表的尝试,并且响应于第二分组未命中与流 表的匹配,可执行匹配第二分组与转发元件的影子表的尝试。响应于第二分组匹配影子表 的影子规则,第二分组的源端口和/或目的地端口可与由影子规则定义的地址和/或端口 的范围/列表比较。响应于第二分组的源端口和/或目的地端口匹配由影子规则定义的地 址和/或端口的范围/列表,可在流表中安装新的流规则用于具有匹配第一分组的源地址 和/或目的地地址的源地址和/或具有匹配第一分组的源地址和/或目的地地址的目的地 地址并且具有来自第二分组的地址和/或端口的分组。可将第二分组从转发元件的输入/ 输出端口转发到目的地。在安装新的流规则之后,可接收具有匹配第一分组的源地址和/ 或目的地地址的源地址和/或具有匹配第一分组的源地址和/或目的地地址的目的地地址 并且具有来自第二分组的地址和/或端口的第三分组。可执行匹配第三分组与转发元件的 流表的尝试,并且响应于数据分组与流表的新的流规则匹配,可根据新的流规则来处理数 据分组。
[0025] 网络可以是OpenFlow网络,其中转发平面作为OpenFlow转发平面,其中转发元 件作为OpenFlow转发元件,其中控制平面作为OpenFlow控制平面,并且其中控制器作 为OpenFlow控制器。此外,将分组内消息传送到控制器可包含在OpenFlow转发元件与 OpenFlow控制器之间的OpenFlow信道上传送分组内消息。此外,可响应于分组与流表匹配 根据流表的匹配的流规则通过转发元件来处理分组。
[0026] 根据一些其它实施例,可在包含转发平面和控制平面的网络的转发平面中提供转 发元件。转发元件可包含多个输入/输出端口,配置为提供与转发平面的其它转发元件的 通信,以及处理器,耦合到多个输入/输出端口。处理器可配置为通过转发元件的输入/输 出端口来接收分组;尝试匹配分组与转发元件的流表;响应于分组未命中与流表的匹配, 尝试匹配分组与转发元件的影子表;以及响应于分组与影子表匹配,基于来自影子表的匹 配的影子规则在流表中安装新的流规则。

【专利附图】

【附图说明】
[0027] 包含来提供本公开的进一步理解并且并入以及构成本申请的一部分的附图图示 本发明的某些非限制性实施例。在图中: 图1是图示根据一些实施例的包含控制器和转发元件的网络的框图; 图2是图示根据一些实施例的图1的转发元件的框图; 图3是图示根据一些实施例的图1的控制器的框图; 图4-图6是图示根据一些实施例的转发元件的操作的流程图;以及 图7是图示在客户端与服务器装置之间双向传递业务的规则的图表。

【具体实施方式】
[0028] 现在将在下文中参考附图更完整地描述本发明的实施例,附图中示出本发明的实 施例的示例。然而,本发明可以用不同的形式来实现并且不应解释为限制于本文阐述的实 施例。也应注意到这些实施例不是相互排斥的。来自一个实施例的部件可默认假定为在一 个或多个其它实施例中出现/使用。
[0029] 根据在本文中讨论的一些实施例,OpenFlow转发元件103可稱合到在OpenFlow 信道上的单个OpenFlow控制器101。根据一些其它实施例,OpenFlow协议可扩展以提供 来自一个OpenFlow控制器的网络转发平面中的OpenFlow转发元件到网络控制平面中的另 一 OpenFlow控制器之间的连接的改变方向,如在美国申请号13/369, 993,于2012年2月 9 日提交的,并且标题为 "Methods of Redirecting Network Forwarding Elements and Related Forwarding Elements and Controllers" 中讨论的。
[0030] 在一些OpenFlow网络中,OpenFlow转发元件具有包含多个流规则/条目的主流 表,并且OpenFlow管线定义在OpenFlow转发元件内如何处理分组。如果在主流表中分组 不匹配,则分组可视为表未命中。
[0031] 当分组不匹配主流表的任何流规则/条目时,可发生主流表未命中,并且导致主 流表未命中的分组的处理可取决于主流表的配置。默认可以是使用分组内消息将分组发送 到控制器或分出分组。在OpenFlowl. 1中,另一选项是如果在管线中有多于一个流表时,则 将继续下一流表的分组处理。
[0032] 在OpenFlowl. 1中,可节省到达入口端口(也被称作输入端口)的每个分组并且将 其传递到下一表用于进一步处理。分组与流表中的流规则/条目匹配,转发元件对由匹配 分组的任何流规则/条目定义的分组执行动作,并且可如以上所论述的处理导致表未命中 的分组。
[0033] 可通过匹配分组的报头与主流表中的流规则/条目来处理到达OpenFlow转发元 件的入口 /输入端口的分组。可根据OpenFlow规则来应用匹配准则。如果有匹配(也被称 作命中),执行匹配的流规则/条目的对应指令。如果分组不匹配主流表的任何流规则/条 目(也被称作未命中),转发元件可形成包含分组的分组内消息并且然后将分组内消息传送 到控制器。
[0034] 如上所述,OpenFlow控制器可在OpenFlow转发元件的流表中对规则进行编程,并 且转发元件可限制可包含在其流表中的流规则/条目的数量。因此,转发元件可能无法存 储用于它可能需要促进的所有可能的通信的流规则/条目。其结果是,一些流的分组(例 如,新的流的第一分组)可在转发元件的主流表中未命中,并且未命中可触发控制器将新的 流规则/条目编程到主流表(使用流修改消息)来通过转发元件定义新的流。此外,可需要 控制器将未命中的分组从分组内消息转发到转发元件的正确输出端口。
[0035] 因此,端点装置之间的新的分组流的新的流规则/条目可用于控制端点装置之间 的数据分组的流。在时间段到期而没有接收到匹配新的流规则/条目的任何分组时,可从 主流表删除流规则/条目来为其它流规则/条目腾出空间。
[0036] 在一些OpenFlow网络中,因此可需要控制器为每个新的分组流和过期的分组流 的每个后续发生编程并且重新编程主流表,并且还可需要控制器为每个新的分组流和过期 的分组流的每个后续发生将初始分组传送到转发元件的正确输出端口。在一些部署场景和 /或业务状况中,分组内消息、流修改消息和在转发元件与控制器之间的转发的分组的此业 务会淹没转发元件与控制器之间的OpenFlow信道。
[0037] 图1是图示网络105的框图,网络105包含控制平面中的多个OpenFlow控制器 101-1到101-n (控制器)以及转发平面中的多个OpenFlow转发元件103-1到103-m (转 发元件),OpenFlow控制器101-1到101-n与OpenFlow转发元件103-1到103-m之间的通 信是根据OpenFlow协议通过其间的OpenFlow信道(信道)来提供。例如,可使用传输控制 协议(TCP)连接和/或流控制传输协议(SCTP)连接来实现OpenFlow信道,并且传输层安 全(TLS)可用于在相应控制器与转发元件之间通信加密的消息。此外,可在转发平面中的 OpenFlow转发元件103-1到103-m之间提供通信路径111 (与OpenFlow信道分开)来支 持转发元件之间的数据分组的传送。通信路径111还可通过转发元件103-1到103-m中 的一个或多个来提供两个或者更多远程通信装置/节点(例如,客户端装置和服务器装置) 之间的耦合。此外,可在控制平面中的控制器101-1到101-n之间提供通信路径115 (与 OpenFlow信道分开)来支持控制器之间的协调。
[0038] 图2是图示图1的OpenFlow转发元件103的元件的框图。如所示的,每个转发元 件103可包含耦合到一个或多个输入/输出端口 209的处理器207。存储器211可耦合到 处理器207,并且存储器211可用于存储流表201、影子表221和/或学习表223。一个或多 个流表201可耦合到处理器207,每个流表可包含多个流规则/条目,并且每个流规则/条 目可定义用于处理/转发匹配相应流规则/条目的数据分组的指令。换句话说,每个流规 则/条目可定义相应数据流的数据分组的处理。来自其它转发元件的数据分组可在相应输 入/输出端口 209处接收,根据来自流表201的相应流规则/条目由处理器207处理,并且 从相应输入/输出端口 209传送到其它转发元件。此外,处理器207可耦合到一个或多个 影子表221和/或学习表223,并且处理器207还可包含处理机208,其配置为对影子编程、 转发和/或学习表221/223和/或根据影子、转发和/或学习表221/223来处理数据分组。
[0039] 每个转发元件103还可包含组表215和OpenFlow安全信道接口 203 (信道接口)。 更特别地,OpenFlow安全信道接口 203可通过图1的OpenFlow信道来提供处理器207与相 应OpenFlow控制器101之间的通信。例如,OpenFlow安全信道接口 203可使用TLS来在 OpenFlow信道上将消息加密/发送到相应控制器和/或在OpenFlow信道上接收/解密由 相应控制器传送的消息。例如,在通过输入端口 205中的一个来接收数据分组并且处理器 207无法匹配数据分组与流表201和/或影子表221中的流规则/条目的情况下,处理器 207可在OpenFlow信道上通过OpenFlow安全信道接口 203将包含数据分组的分组内消息 传送到相应控制器。在另一方向中,处理器207可通过OpenFlow信道接口 203在OpenFlow 信道上从相应控制器接收消息来改变(例如,添加、更新和/或删除)流表201的流规则/条 目和/或影子表221的影子规则/条目。
[0040] 图3是图示图1的OpenFlow控制器101的元件的框图。如所示的,每个控制器 101可包含耦合在OpenFlow安全信道接口 303 (信道接口)与控制器接口 309之间的处理 器307。OpenFlow安全信道接口 303可通过图1的OpenFlow信道来提供处理器307与相 应OpenFlow转发元件103之间的通信。例如,OpenFlow安全信道接口 303可使用TLS在 OpenFlow信道上将消息加密/发送到相应转发元件和/或在OpenFlow信道上接收/解密 由相应转发元件传送的消息。OpenFlow控制器101还可包含耦合到处理器307的存储器 311。
[0041] 以下将相对于图4、图5和图6的流程图来更详细地讨论图1、图2和图3的 OpenFlow转发元件103 (转发元件)和OpenFlow控制器101 (控制器)的操作。此外,图1 的每个转发元件可具有如以上相对于图2所论述的结构,并且图1的每个控制器可具有如 以上相对于图3所论述的结构。
[0042] 根据以上讨论的OpenFlow协议,可默认使用分组内消息将导致主流表在转发元 件103处未命中的分组发送到对应控制器101。作为响应,控制器101可将流修改消息发 送到转发元件来在主流表中对新的流规则进行编程,并且控制器101还可将未命中的分组 转发到转发元件103的适当端口。通过根据在本文中讨论的实施例向转发元件103提供一 些附加的信息,转发元件103可作出更智能的决定来从控制器101卸载一些功能性并且减 少在OpenFlow信道上的转发元件103与控制器101之间的通信业务。因此,可减少控制器 101处理负载和/或OpenFlow信道业务。
[0043] 到达转发元件103的端口 209的分组可分类为控制分组和数据分组。因为控制分 组旨在消耗在控制平面中,所以转发元件103可必须将控制分组转发到控制器101用于进 一步处理。如以下所论述的,还可将不匹配转发元件103的流表201的数据分组转发到控 制器101。
[0044] 对于分组未命中,转发元件103可生成分组内消息(包含未命中的分组),并且将分 组内消息传送到控制器101。作为响应,控制器101生成流修改消息来在转发元件103的流 表201中安装流规则/条目,并且控制器101在OpenFlow信道上将流修改消息传送到转发 元件101。流修改消息包含整个流规则/条目连同将指向的匹配指令/动作(执行匹配指令 /动作来在转发平面中处理流的分组(包含未命中的分组))。此外,控制器101传送包含未 命中的分组的分组外(packet-out)消息来将未命中的分组转发到转发元件103的正确输 出端口 209。
[0045] 取决于到达转发元件103的新的流的速率,此序列可淹没在转发元件103与控制 器101之间的OpenFlow信道。实现特征(例如,防火墙和/或灵活的ACL (接入控制列表) 匹配)可增加在OpenFlow信道上的通信业务。以下将相对于在图4、图5和图6的流程图 中图示的三个用例来更详细地讨论根据一些实施例的控制器卸载。
[0046] 图4是图示在L2 (层2)桥接类型操作期间卸载控制器101操作的转发元件103 的操作的流程图。与此相反,如以下更详细讨论的,传统的桥接算法作为在控制器101处的 应用来运行。
[0047] 假定未知目的地来支持两个远程网络节点(本文被称作节点A和节点B)之间的媒 体接入控制(MAC)通信,由传统的OpenFlow转发元件和控制器来执行下文的桥接操作。例 如,分组可到达转发元件的端口 C,转发元件具有以太网源地址A (指示节点A是分组的源) 并且具有以太网目的地地址B (指示节点B是分组的预期目的地)。转发元件可使用目的地 地址B来尝试匹配分组与主流表,但是因为转发元件不知道目的地节点,所以在主流表处 可未命中分组(即,目的地地址B可不与主流表的任何流规则/条目匹配)。
[0048] 传统地,转发元件可在OpenFlow信道上将分组内消息发送到控制器,并且分组内 消息可包含未命中的分组以及端口 C的识别(分组是通过端口 C从节点A接收)。在接收到 分组内消息时,控制器可查找以太网源地址A,并且如果控制器没有在控制器处的学习表中 的以太网源地址A,则源地址A连同端口 C的识别(通过端口 C来接收分组)一起记录在学 习表中。
[0049] 然后控制器生成两个流修改消息,在OpenFlow信道上将流修改消息传送到转发 元件(流修改消息表示转发元件的主流表的两个新的规则)。第一流修改消息定义第一流规 则("以太网Src B :以太网Dst * ;动作:输出控制器",其中*表示任何地址)使得使用分组 内消息将具有B的源地址的任何分组(S卩,由节点B传送的分组)转发到控制器。第二流修 改消息定义第二流规则("以太网Dst A;以太网Src *;动作:输出C",其中*表示任何地 址)使得将具有目的地地址A的任何分组(S卩,传送到节点A的分组)转发到端口 C (通过端 口 C从节点A接收原始分组)。
[0050] 控制器也生成分组外消息(包含从节点A接收的原始分组),并且控制器在 OpenFlow信道上将分组外消息传送到转发元件,转发元件将传送自所有标准输入/输出端 口(包含输入/输出端口 C,通过它们从节点A接收原始分组)。响应于从控制器接收分组外 消息,转发元件将分组泛洪到所有转发元件的输入/输出端口(即,传送来自所有输入/输 出端口的原始分组)。通过将分组泛洪到所有输入/输出端口,分组可到达节点B (预期目 的地),即使转发元件和控制器都不知道节点B的位置在哪。
[0051] 在节点B处接收到原始分组时,节点B可用包含以太网源地址B(指示节点B是第 二分组的源)和以太网目的地地址A (指示节点A是分组的预期目的地)的第二分组来回应 节点A。可在转发元件的端口 D处接收第二分组,并且因此第二分组(包含源地址B)可匹配 第一流规则。根据第一流规则("以太网Src B:以太网Dst *;动作:输出控制器"),转发元 件可将分组内消息(包含第二分组)传送到控制器,分组内消息包含端口 D的识别(分组是通 过端口 D从节点B接收)。
[0052] 响应于接收包含第二分组的分组内消息,控制器可查找以太网源地址B,并且如果 控制器没有在控制器处的学习表中的以太网源地址B,则源地址B连同端口 D的识别(第二 分组是在转发元件处接收)一起记录在学习表中。然后控制器可响应于来自节点B的分组 来生成两个附加的流修改消息。
[0053] 第一流修改消息可响应于来自节点B的分组而生成并且传送到转发元件来移除 流规则("以太网Src B:以太网Dst *;动作:输出控制器"),该流规则以前是响应于来自节 点A的分组在转发元件处编程到流表。第二流修改消息可响应于来自节点B的分组而生成 并且传送到转发元件来将流规则("以太网Dst B ;以太网Src 输出端口 D")添加到转发 元件的流表。
[0054] 基于在控制器处的来自学习表的信息(关联目的地地址与输入/输出端口 C),控 制器也生成分组外消息(包含从节点B接收的第二分组),并且控制器在OpenFlow信道上将 分组外消息传送到转发元件(转发元件将从端口 C传送(节点A连接到端口 C))。响应于从 控制器接收分组外消息,转发元件从端口 C传送分组(原始是从节点B传送)。
[0055] 因此,现在流表包含用于节点A与B之间的会话的两个流规则,"以太网Dst A ;以 太网Src *;动作:输出C"和"以太网Dst B;以太网Src *;输出端口 D"。对于匹配流规 贝1J "以太网Dst A ;以太网Src 动作:输出C"的任何分组(S卩,具有节点A的目的地地址 的任何分组),转发元件将从端口 C传送分组,并且对于匹配流规则"以太网Dst B ;以太网 Src * ;输出端口 D"的任何分组(S卩,具有节点B的目的地地址的任何分组),转发元件将从 端口 D传送分组。
[0056] 在包含传统的转发元件和控制器的网络中,可为每个新的以太网源/目的地对 (通过网络为它建立通信会话)执行以上讨论的操作。在此场景中,在OpenFlow信道上将两 个分组内消息从转发元件传送到控制器,在OpenFlow信道上将四个流修改消息从控制器 传送到转发元件,并且在OpenFlow信道上将两个分组外消息从控制器传送到转发元件。
[0057] 根据在图4的流程图中图示的实施例,可减少在转发元件103与控制器101之间 的OpenFlow信道上传送的通信数量和控制器101的处理负载。更特别地,将相对于在两 个通信节点A与B之间建立通信会话来讨论图4的操作,其中通信节点A耦合到转发元件 103的输入/输出端口 209的端口 C并且通信节点B耦合到转发元件103的输入/输出端 口 209的端口 D。此外,将相对于在节点A与B之间的通信会话(转发元件以前不支持)来 讨论图4的操作。
[0058] 例如,在框401处,可在转发元件401的端口 C处接收数据分组,转发元件401具 有以太网源地址A (指示节点A是分组的源)和以太网目的地地址B (指示节点B是分组的 预期目的地)。在框405处,转发元件103的处理器207可使用源地址A和/或目的地地址 B来尝试匹配数据分组与主流表。在框407处,如果数据分组命中与(流表201的)主流表 的匹配(例如,因为数据分组的源地址和/或目的地地址匹配主流表的现存的流规则的的 准则),则在框423处,转发元件处理器207可根据匹配的流规则来处理数据分组。
[0059] 在框407处,如果数据分组未命中与(流表201的)主流表的匹配(例如,因为数据 分组的源地址和/或目的地地址不匹配主流表的现存的流规则的准则),则在框409处,转 发元件处理器207可使用源地址A和/或目的地地址B来尝试匹配数据分组与转发元件 103的影子表221。在框411处,如果数据分组未命中与影子表221的匹配,则在框425处, 转发元件处理器207可使用分组的源地址A和端口 C (通过端口 C来接收分组)来更新学习 表223 (在转发元件103处)。更特别地,转发元件处理器207可在转发元件学习表223中 记录源地址A连同端口 C的识别(通过端口 C来接收分组),因此关联数据分组的源(例如, 节点A)与转发元件103的输入/输出端口 209 (例如,端口 C),源(例如,节点A)耦合到输 入/输出端口 209。在图4的实施例中,转发元件103可提供/维持学习表使得可从控制器 101转移此处理负担。
[0060] 在框427处,可在OpenFlow信道上将分组内消息(包含从节点A接收的分组)从转 发元件103传送到控制器101。分组内消息可包含未命中的分组和端口 C的识别(在转发元 件103处通过端口 C从节点A接收分组)。响应于接收此分组内消息,控制器101可生成两 个新的影子修改消息,用于在影子表221中编程相应影子规则(影子表221是在OpenFlow 信道上传送到转发元件103)。
[0061] 第一影子修改消息定义第一流规则("以太网Dst == MAC A ;动作:输出端口 C", 其中MAC是节点A的MAC地址)使得在转发元件103处接收的具有目的地地址A的任何数 据分组(即,数据分组传送到节点A)是从端口 C (已知端口 C耦合到节点A)传送。第二影 子修改消息定义第二流规则("以太网Src = MAC B ;动作:输出端口本地",其中MAC B是节 点B的MAC地址,并且端口本地是与转发元件处理器207的处理机208关联的本地虚拟端 口,使得在转发元件103接收的具有源地址B的任何数据分组(S卩,数据分组是由节点B传 送)是经由虚拟本地端口转发到处理机208。响应于在OpenFlow信道上接收这些影子修改 消息(在框429处),转发元件103可在影子表221中安装相应影子规则(在框431处)。
[0062] 控制器101还可生成分组外消息(包含从节点A接收的原始分组),并且控制器101 可在OpenFlow信道上将分组外消息传送到转发元件103,转发元件103将传送自所有标准 输入/输出端口(包含输入/输出端口 C,通过它们从节点A接收原始分组)。响应于从控制 器101接收分组外消息(在框433处),转发元件处理器207可将分组泛洪到所有转发元件 输入/输出端口 209 (在框435处)(S卩,传送来自所有输入/输出端口的原始分组)。通过 将分组泛洪到所有输入/输出端口,分组可到达节点B (预期目的地),即使转发元件103和 控制器101都不知道节点B的位置在哪。
[0063] 在节点B处接收到原始分组时,节点B可用在转发元件103处接收的第二分组来 回应节点A (在框401处)。更特别地,第二数据分组可包含以太网源地址B (指示节点B是 第二分组的源)和以太网目的地地址A (指示节点A是分组的预期目的地)。可在转发元件 输入/输出端口 209的端口 D处接收第二分组,并且处理器207可尝试匹配第二分组与流 表201的主流表(在框405处)。因为没有流规则与第二数据分组匹配,所以第二数据分组 可未命中匹配主流表(在框407处)。
[0064] 因此,处理器207可尝试匹配第二分组与影子表221 (在框411处)。如以上所论 述的,相对于框431,影子表221已经编程有影子规则"以太网Dst == MAC A ;动作:输出端 口 C"和"以太网Src = MAC B ;动作:输出端口本地",并且第二分组(具有目的地地址A和 源地址B)匹配这两个规则(引起在框411处命中)。
[0065] 基于影子规则"以太网Src = MAC B;动作:输出端口本地",处理器207可将第二 数据分组转发到本地端口用于使用处理器207的处理机208来处理。更特别地,在框417 处,处理机208可使用分组的源地址B和端口 D (通过端口 D来接收第二数据分组)来更新 学习表223 (在转发元件103处)。更特别地,处理机208可在转发元件学习表223中记录 源地址B连同端口 D的识别(通过端口 D来接收分组),因此关联数据分组的源(例如,节点 B)与转发元件103的输入/输出端口 209 (例如,端口 D),源(例如,节点B)耦合到输入/ 输出端口 209。在图4的实施例中,转发元件103可提供/维持学习表使得可从控制器101 转移此处理负担。
[0066] 在框419处,处理机208还可在流表201的主流表中安装下文的新的流规则:"以 太网Dst A ;以太网Src * ;动作:输出C"和"以太网Dst B ;以太网Src * ;输出端口 D"(其 中*表示允许与任何地址匹配的通配符地址)。对于匹配流规则"以太网Dst A ;以太网Src * ;动作:输出C"的任何分组(S卩,具有节点A的目的地地址的任何分组),转发元件处理器 207将从端口 C传送分组,并且对于匹配流规则"以太网Dst B;以太网Src 输出端口 D" 的任何分组(即,具有节点B的目的地地址的任何分组),转发元件处理器207将从端口 D传 送分组。因此可安装这些新的流规则而不将第二数据分组传送到控制器101。
[0067] 因为这两个新的流规则是由转发元件处理器207安装而不通知控制器101,所以 控制器101可不知道这两个流规则已经安装在流表201中。因此,对于这两个新的流规则中 的每个,可在流表201中安装"无通知标志"使得在这些流规则中的任一个状态改变时,没 有通知被传送到控制器101。例如,当这些流规则中的任一个超时时(由于节点A与B之间 的活动的缺乏超过超时时段),处理器207可从流表移除这些规则而不通知控制器101。与 此相反,可安装流规则(响应于从控制器101接收的流修改消息而安装)而没有"无通知"标 志使得当从流表201移除这样的流规则时(例如,响应于超时),将通知传送到控制器101。
[0068] 在框421处,基于影子表221中的影子规则"以太网Dst == MAC A ;动作:输出端 口 C",处理机208可通过输入/输出端口 209的端口 C将第二数据分组转发到节点A。备 选地,可根据新的流规则"以太网Dst A ;以太网Src * ;动作:输出C"通过端口 C将第二数 据分组转发到节点A。在任一,清况下,第二数据分组(从节点B传送到节点A)可传送自转发 元件103而没有将第二数据分组传送到控制器101。
[0069] 转发元件处理器207可根据图4的框401、405、407和423使用两个新的流规则 ("以太网Dst A ;以太网Src 动作:输出C"和"以太网Dst B;以太网Src 输出端口 D")来处理在通信会话期间的在节点A与B之间的后续数据分组传送。更特别地,在会话期 间的由节点A传送到节点B的每个数据分组可在框401处接收,在框405和407处与流表 201的主流表的流规则"以太网Dst B;以太网Src 输出端口 D"匹配,并且在框423处根 据匹配的规则传送自端口 D。类似地,在会话期间的由节点B传送到节点A的每个数据分组 可在框401处接收,在框405和407处与流表201的主流表的流规则"以太网Dst A ;以太 网Src * ;动作:输出C"匹配,并且在框423处根据匹配的规则传送自端口 C。
[0070] 在节点A与B之间的通信中的间隔超过超时时段之后,处理器207可从流表201移 除两个流规则来为其它流规则释放存储器空间。如果节点A与B之间的通信稍后恢复(在 超时时段之后),可重复框409、411、425、427、429、431、433、435、417、419和421的操作来为 节点A与B之间的新会话重新安装流规则。在后续会话中,可减少所需操作的数量,例如, 如果在移除关于此的流规则之后在学习表223中维持关于节点A和B的信息。
[0071] 按照图4的操作,可减少在转发元件103与控制器101之间的OpenFlow信道上的 通信的负载,并且可减少在控制器101处的处理负载。例如,图4的操作可只需要一个分组 内消息、一个分组外消息和两个影子修改消息来建立节点A与B之间的会话。
[0072] 图5是图示通过网络101在客户端装置与服务器装置之间的客户端服务器通信期 间卸载控制器101操作的转发元件103的操作的流程图。更特别地,图5图示为由客户端 和服务器装置协商的转发元件端口打开数据信道针孔的转发元件103操作。
[0073] 在文件传输协议(FTP)被动模式中,客户端装置使用转发元件控制端口(例如,输 入/输出端口 209的端口 21)来为控制操作提供控制信道来从服务器装置请求数据,但 1024与65535之间的传输控制协议(TCP)端口用于接收从服务器装置请求的数据。在控制 信道上(使用控制端口)交换P0RT/PASV命令来提供用于打开客户端与服务器装置之间的指 定数据信道(使用TCP端口 1024到65535中的一个或多个)的信息。当客户端装置在控制 信道上将数据请求传送到服务器装置时,服务器装置可用PORT命令(识别用于数据信道的 转发元件端口(例如,TCP端口 1024到65535中的一个))或PASV命令(要求客户端装置识 别用于数据信道的转发元件端口(例如,TCP端口 1024到65535中的一个))来响应。如果 服务器装置用PASV命令来响应,则然后客户端装置可传送PORT命令(识别用于数据信道的 转发元件端口(例如,TCP端口 1024到65535中的一个))。
[0074] 根据一些实施例,控制器101可在影子表221中安装影子规则(例如,提供在控制 信道上检查分组内容的辅助功能)来支持客户端服务器通信,减少在控制器101处的处理负 担,和/或减少在转发元件103与控制器101之间的OpenFlow信道上的通信业务。这样的 影子规则可起到有限状态机(FSM)的作用,在控制信道上传送的分组中搜索一组模式来识 别PORT命令并且采取动作来使用来自识别的PORT命令的端口信息打开适当的数据信道而 不需要转发元件103与控制器101之间的通信。
[0075] 在FTP应用中,提供辅助功能的影子规则可在控制信道上传送的每个分组中查找 模式,其中模式独特地识别PORT命令(响应于请求而发送来开始被动模式连接(例如,PASV 方法)。如果在控制信道上的分组中找到模式,则影子规则可以实现数据信道而不需要与控 制器101的通信。
[0076] 例如,影子规则可提供常规表达(regex)引擎。响应于检测到通过客户端与服务 器装置之间的转发元件103在控制信道上传送的TCP SYN (TCP同步)和SYN ACK (同步确 认)序列,控制器101可在转发元件103中安装用于辅助功能(包含常规表达引擎)的影子 规则。此机制可卸载从控制器101处看到的通信的消息。
[0077] 可将与到达服务器装置IP地址和客户端装置IP地址关联的客户端装置IP地址、 服务器装置IP地址、客户端装置TCP端口、服务装置TCP端口和物理端口信息提供到转发 元件103。可将此信息连同用于分析PORT/PASV命令的常规表达引擎从控制器101发送到 转发元件103。用于识别来自有关的PASV/PORT命令的TCP端口的常规表达引擎(也被称作 Regex引擎)可提供如下: \b(PORT | port | PASV | pasv)\b((25[0-5] | 2[0-4][0-9] | [01]?
[0-9] [0-9]?,){3} \b (25 [0-5] I 2 [0-4] [0-9] I [01]? [0-9] [0-9]?) \b 此外,影子规则可在影子表221中(响应于来自控制器101的一个或多个影子修改消 息)编程如下: If (Src IP == Client IP and Src Port == Client TCP Port And Dest IP == Server IP And Dest Port == Server TCP Port) OR (Src IP == Server IP And Src Port == Server TCP Port And Dest IP == Client IP And Dest Port == Client Port), then Regex Engine (Regex Expression) 常规表达引擎尝试匹配PORT和PASV串连同IP地址和端口数据来识别TCP端口(识别 用于客户端与服务器装置之间的数据信道)。数据端口连接连同其它信息(例如,服务器和 客户端IP地址)可以被传到控制器使得它可以安装规则或使得转发元件103可以安装规则 而不涉及控制器101。
[0078] 控制器101可提供充分的能力来确定会话/通信的类型并且构建常规表达引擎来 分析会话/通信中的某些串。控制器101可仍然智能地决定会话/通信的类型和要查找什 么。然后,当已经建立会话时,控制器101可以使用影子修改消息在转发元件103的影子表 221中安装适当的影子规则。控制器101可扮演重要角色,但转发元件103可使用影子规 则来减少在控制器101处的处理负载。使用定义所希望的辅助功能的影子规则,转发元件 103可(从控制器101)卸载检查具体串的控制分组的操作,并且在识别到匹配时,转发元件 103可通知控制器101需要打开的端口或转发元件103可在流表201中自己安装流规则而 不涉及控制器101。
[0079] 图5是图示根据以上讨论的一些实施例的支持客户端与服务器装置之间的FTP数 据信道通信的操作的流程图。根据在图5的流程图中图示的实施例,可减少在转发元件103 与控制器101之间的OpenFlow信道上传送的通信数量和控制器101的处理负载。更特别 地,将相对于在控制信道上通信的在客户端与服务器装置之间的TCP端口上建立数据信道 来讨论图5的操作。
[0080] 例如,在框501处,可在转发元件输入/输出端口 209的控制端口(例如,控制端口 21)处接收控制分组,并且控制分组可具有源(Src) IP地址(提供源装置(客户端或服务器 装置中的一个)的IP地址)和目的地(dest) IP地址(提供目的地装置(客户端或服务器装 置中的另一个)的IP地址)。此外,控制分组可以是在转发元件的控制端口 103处接收的第 一控制分组,用于客户端与服务器装置之间的会话。
[0081] 响应于接收控制分组,转发元件处理器207可尝试匹配控制分组与流表的主流表 (在框505处),但是因为只有数据分组可与流表201匹配,控制分组将未命中(在框507处)。 当在框507处的控制分组与(流表201的)主流表不匹配时(例如,因为控制分组不匹配流 表),在框509处,转发元件处理器207可使用控制分组的IP源地址和目的地地址以及输入 /输出端口 209的控制信道端口(通过控制信道端口来接收控制分组)来尝试匹配控制分组 与转发元件103的影子表221。
[0082] 如果在框511处的控制分组与影子表221不匹配(因为控制分组是在转发元件 103处接收的用于在客户端与服务器装置之间的会话的第一控制分组(在已经提供会话的 影子规则之前),则在框527处,转发元件处理器207可在从转发元件103到控制器101的 OpenFlow信道上传送分组内消息(包含控制分组)。分组内消息可包含未命中的控制分组以 及端口的识别(通过该端口在转发元件103处接收控制分组)。响应于接收此分组内消息, 控制器101可将一个或多个影子修改消息传送到转发元件103来安装影子规则(所述影子 规则识别用于客户端与服务器装置之间的会话的端口命令并且为会话的数据信道打开针 孔)。
[0083] 响应于在框529处从控制器101接收影子修改消息,转发元件处理器207可在框 531处为客户端与服务器装置之间的会话安装影子规则。更特别地,影子规则可配置为识别 在控制信道端口(在其上接收第一控制分组)(例如,端口 21)上接收的并且具有匹配第一 控制分组的源IP地址的源IP地址或目的地IP地址中的一个并且具有匹配第一控制信道 的目的地IP地址的源IP地址或目的地IP地址中的另一个的后续控制分组,如下: If (Src IP == Client IP and Src Port == Client TCP Port And Dest IP == Server IP And Dest Port == Server TCP Port) OR (Src IP == Server IP And Src Port == Server TCP Port And Dest IP == Client IP And Dest Port == Client Port) 对于匹配这些地址准则的控制分组,影子规则还配置为执行常规表达引擎来确定控制 分组是否是识别数据信道的端口的端口命令,如下: \b(P0RT | port | PASV | pasv)\b((25[0-5] | 2[0-4][0-9] | [01]?
[0-9] [0-9]?,){3} \b (25 [0-5] I 2 [0-4] [0-9] I [01]? [0-9] [0-9]?) \b 在框501处在转发元件103处接收到关于以上讨论的客户端与服务器装置之间的会话 的第二控制分组时,转发元件处理器207可尝试匹配第二控制分组与流表201的主流表(在 框505处),并且因为控制分组可与流表不匹配,所以将在框507处发生未命中。在框509 处,处理器207可尝试匹配第二控制分组与影子表221,并且因为第二控制分组匹配源IP地 址和目的地IP地址以及控制端口准则(相对于框531的影子规则以上讨论的),所以将在框 511处发生命中。换句话说,用于客户端与服务器装置之间的会话的第二控制分组匹配用于 客户端与服务器装置之间的会话的第一控制分组的源IP地址和目的地IP地址以及控制端 □。
[0084] 响应于影子表命中,处理器207将在框515处执行来自影子表221中的影子规则 的常规表达引擎(相对于框531以上讨论的)。常规表达引擎识别第二控制分组的类型,并且 如果第二控制分组类型不匹配感兴趣的类型(例如,端口命令),则在框521处,处理器207 可将控制分组转发到预期目的地(例如,如目的地IP地址指示的)而不安装流规则或规则。 如果第二控制分组匹配感兴趣的类型(例如,端口命令),则处理器207可在流表201的主流 表中安装新的流规则(在框519处)并且将控制分组转发到预期目的地(在框521处)。
[0085] 在本文讨论的实施例中,常规表达引擎可用于将端口命令(例如,PORT和/或PASV 命令)识别为感兴趣的命令类型。当在框517处将第二控制分组识别为端口命令控制分组 时,影子表221的常规表达引擎可识别将用于客户端与服务器装置之间的数据信道的针孔 的包含在端口命令数据分组中的TCP端口,并且在框519处,处理器207可在流表201的主 流表中安装流规则来支持使用识别的TCP端口的数据信道。因此,第二控制分组可以是识 别将用于在客户端与服务器装置之间传送的后续数据分组的数据端口的端口命令控制分 组,并且在框519处安装新的流规则可包含安装新的流规则来定义将用于通过客户端与服 务器装置之间的转发元件103而传送的后续数据分组的针孔。此外,这些流规则可与无通 知标志一起安装,使得当针孔数据信道超时时(由于活动中的间隔超过超时时段),可从流 表201移除流规则而不通知控制器101。
[0086] 一旦已经安装定义数据信道针孔的流规则,则可在由流规则定义的数据信道针孔 上传送在客户端与服务器装置之间传送的后续数据分组。例如,可在客户端与服务器装置 之间传送数据分组(例如,包含对应于客户端与服务器装置之间的会话的源地址和目的地 地址的数据分组),并且在框501处接收到此数据分组时,处理器207可尝试匹配数据分组 与流表201的主流表。因为数据分组用于以上讨论的客户端与服务器装置之间的会话,所 以数据分组可具有匹配第一和/或第二控制分组的源或目的地IP地址中的一个的源IP地 址,并且数据分组可具有匹配第一和/或第二控制分组的源或目的地IP地址中的另一个的 目的地IP地址。因此,当处理器207尝试匹配数据分组与流表201的主表时,在框519处数 据分组将命中以上讨论的定义数据信道针孔的流规则。因此,将根据匹配的流规则来处理 数据分组,使得使用由匹配的流规则定义的数据信道针孔通过转发元件来传送数据分组。 可使用数据信道针孔来传送任何数量的后续数据分组,直到定义数据信道针孔的流规则超 时(由于在数据信道针孔上的活动的缺乏超过超时时段)或直到建立另一数据信道针孔。 [0087] 根据相对于图5以上讨论的实施例,转发元件处理器207可因此搜集用于客户端 与服务器装置之间的数据通信的TCP数据端口,使用影子规则来监测在客户端与服务器装 置之间传送的控制信道分组。使用此信息,转发元件处理器207可打开客户端与服务器装 置之间的数据信道针孔而不涉及控制器101。因此,控制器101可减轻监测客户端与服务器 装置之间的通信/会话的每个控制分组的负担和/或打开数据信道针孔的负担。
[0088] 图6是图示通过实现灵活的规则匹配来卸载控制器101操作的转发元件103的操 作的流程图。例如,在接入控制列表(ACL)类型实现中,输入/输出端口 209的范围可用于 流表规则匹配。如果通过在50001-50010的范围中的输入/输出端口而接收的分组应该命 中流表而没有灵活的规则匹配,例如,相同的流规则可需要被编程10次,10个流规则中的 每个包含相同的源IP地址和目的地IP地址以及指定范围中的10个端口的不同的一个。
[0089] 以示例的方式,图7图示用于在两个方向中在客户端与服务器装置之间传送业务 的一个端口的两个规则的流规则匹配准则而没有灵活的规则匹配。在第一规则中,当分组 具有服务器装置的IP源地址、客户端装置的IP目的地地址、50001的源端口和50002的目 的地端口时,发生匹配。在第二规则中,当分组具有客户端装置的IP源地址、服务器装置的 IP目的地地址、50002的源端口和50001的目的地端口时,发生匹配。如果为一系列端口实 现流规则而没有灵活的规则匹配,则可需要为范围中的每个端口重复图7的匹配规则,增 加实现的成本。在多个和非连续的一系列端口上的实现(也被称作有洞的一系列)还可增加 成本。
[0090] 例如,可使用关键词(例如,"范围"、"列表"和"排除"、"IP"(因特网协议)、"端口"、 "MAC"(媒体接入控制)地址、"源"地址和"目的地"地址)来表达灵活的规则匹配的流规则。 以示例的方式,排除的关键词可以后跟具有任何其它关键词的组合的范围或列表。利用此 记号,可覆盖多个情况来表达紧凑规则空间。可利用可以表达数据处理概念的数据结构来 实现这些关键词。这些机制可用于高效地实现规则,例如 : a source IP Destination IP Port range N1 to N2 exclude N, N1 < N < N2 source 172. 16. . 10. 100 dest 171. 16. 23. 1 dest port range 10 to 30 exclude port 20 b dest IP address Range A. B.C. 0/24 to A. B.C.D/24 exclude A. B.C.P,0〈P〈D source 172. 16. 10. 0/24 to 172. 16. 10. 20/24 exclude 172. 16. 10. 2 source port 049200 dest port 50,000 c list IP A.B.C.D,E.F.G.H,Al.BLCl.Dl port list pl,p2,p3 list ip 172.16.10.1,172.16.10.3,172. 16. 10.4 port list 22,23,24,25 地址或端口可以由源或目的地关键词来限定。如果地址或端口不是由源或目的地关键 词来限定,则地址或端口可解释为目的地地址或端口。范围指示具有高的标记和低的标记 的一系列端口。关键词"列表"识别地址或端口的列表。
[0091] "排除"关键词排除涉及关键词的每件事,并且"排除"关键词可以与要排除的范围 或列表关联。可接受由排除范围或列表限定的任何事。关键词"IP"、"MAC"和"端口"分别 指代IP地址、MAC地址和TCP/UDP/SCTP端口。此ACL类型语言可以在转发元件103处实 现,通过使控制器101在影子修改消息中发送分析的规则来在转发元件103处在影子表221 中安装影子规则(具有范围)。
[0092] 以下相对于图6更详细地讨论实现影子规则范围的转发元件103操作(关于通过 转发元件103在客户端与服务器装置之间的通信)。
[0093] 例如,在框601处,可在转发元件输入/输出端口 209的端口处接收分组(例如,控 制或数据分组),并且分组可具有源(Src)IP地址(提供源装置(客户端或服务器装置中的一 个)的IP地址)和目的地(dest) IP地址(提供目的地装置(客户端或服务器装置中的另一 个)的IP地址)。此外,分组可以是用于在客户端与服务器装置之间的会话的在转发元件 103处接收的第一分组。
[0094] 响应于接收分组,转发元件处理器207可尝试匹配分组与流表的主流表(在框605 处),但是因为还没有建立客户端与服务器装置之间的会话,分组可未命中(在框607处)。如 果在框607处控制分组与(流表201的)主流表不匹配(例如,因为分组不匹配流表201的任 何流规则),则转发元件处理器207可使用控制分组的IP源地址和目的地地址来尝试匹配 分组与转发元件103的影子表221 (在框609处)。
[0095] 如果在框611处控制分组与影子表221不匹配(因为它是用于在客户端与服务器 装置之间的会话的在转发元件103处接收的第一分组(在已经提供会话的影子规则之前)), 转发元件处理器207可在OpenFlow信道上将分组内消息(包含分组)从转发元件103传送 到控制器101 (在框627处)。分组内消息可包含未命中的分组。响应于接收此分组内消 息,控制器101可将一个或多个影子修改消息传送到转发元件103来安装影子规则,影子规 则定义流规则并且识别与影子修改消息的流规则关联的IP地址、MAC地址和/或TCP/UDP/ SCTP端口的范围/列表。
[0096] 响应于在框629处从控制器101接收影子修改消息,转发元件处理器207可在框 631处安装用于在客户端与服务器装置之间的会话的影子规则。更特别地,影子规则可配置 为使用以上讨论的地址和/或端口的范围/列表来识别在转发元件103处接收的后续控制 分组。客户端与服务器装置之间的通信会话的后续分组可因此触发流表201的新的流规则 的生成,如果它匹配地址和/或端口的范围/列表的话。
[0097] 在安装影子规则之后,可在框601处接收客户端与服务器装置之间的通信会话的 第二分组,并且处理器207可尝试匹配第二分组与流表201的主流表(在框605处)。因为 还没有安装用于客户端装置与服务器装置之间的通信会话的流规则,可在框607处发生未 命中。在框609处,处理器207可尝试匹配第二控制分组与影子表221,并且因为第二分组 的源和/或目的地匹配第一分组的源地址和/或目的地地址(在框631处触发影子规则的 安装),可在框611处发生命中。
[0098] 在框615处,响应于影子表命中,处理器207比较来自分组的地址和/或端口与影 子规则的地址/端口的范围/列表。如果在框617处分组的地址/端口包含在影子规则的 范围/列表中,处理器207可在流表的主流表中安装流规则(在框619处),其中流规则包含 用于识别客户端装置与服务器装置之间的通信会话的源地址和/或目的地地址(例如,触 发流规则的生成的以上讨论的两个分组的源地址和目的地地址)以及第二分组的地址和/ 或端口(在框615和617处与范围/列表匹配)的匹配准则。在框621处,处理器207可将 第二分组转发到其预期目的地。如果在框617处分组的地址/端口不包含在影子规则的范 围/列表中,可在框627处传送分组内消息,并且可如以上所论述的执行框629和631的操 作。
[0099] 一旦在框619处安装新的流规则,则可在通信会话的持续时间内根据框601、605、 607和623的操作来处理满足流规则的所有准则的客户端装置与服务器装置之间的通信的 后续分组。更特别地,当安装新的流规则时,新的流规则可只应用于具有匹配范围/列表的 地址/端口的通信会话的分组。因此,不具有匹配的地址/端口的通信的其它分组可与在框 609、611、615和617处的以前的影子规则比较。如果另一分组在框605和607处未命中但 在框611、615和617处匹配范围/列表,则可创建具有流表匹配所需要的不同的地址/端 口(相对于以上讨论的第一流规则的地址/端口)的另一流规则。如果另一分组在框605、 607、611和617处未命中,则可在框627处将分组内消息传送到控制器101来触发另一影子 规则的生成。
[0100] 根据相对于图6以上讨论的实施例,可安装影子规则来在地址/端口的范围/列 表上生成相同的流规则。可只为实际用于客户端装置与服务器装置之间的通信的特定地址 /端口生成流规则,而不为在范围上的所有可能的地址/端口生成相同的流规则,因此减少 流表201所消耗的存储器空间。此外,通过智能安装影子规则来在地址/端口的指定范围 /列表上生成相应流规则,可减少在转发元件103与控制器101之间的OpenFlow信道上的 通信业务和/或可减少在控制器101处的处理负载。
[0101] 以上讨论的实施例可实现为基础OpenFlow协议的修改和/或扩展。根据一些实 施例,实现可提供为OpenFlowl. 0、1. 1和/或1. 2的供应商具体扩展而不改变基础协议。
[0102] 相对于图4、图5和图6以上讨论的实施例可减少在转发元件103与控制器101之 间的OpenFlow信道上的业务,和/或减少在控制器101处的负载。此外,可减少流表201 的大小和/或可改进/优化流表规则空间的使用。通过在装置(例如,客户端装置与服务器 装置)之间的通信会话的配置时将这些流插入到影子表,可通过只允许真正的控制业务传 到控制器101来改进/优化OpenFlow信道的使用。
[0103] 根据一些实施例,在流表201处的每个未命中可导致跨OpenFlow信道的四个或更 少的消息,使得跨OpenFlow信道的消息数量可减少到1/2或更少。通过在初始化时智能填 充影子/流表,可减小OpenFlow信道上的业务。
[0104] 此外,因为打开的针孔可以是非常具体的并且可以相对晚地编程(当到达的分组 在主流表中未命中时),所以图5的实施例可提供改进的安全。
[0105] 要理解,在本发明的各实施例的以上描述中,本文所使用的术语只是为了描述特 定实施例并且不旨在作为本发明的限制。除非以其它方式定义,本文所使用的所有术语(包 含技术和科学术语)具有与本领域技术人员所公知的相同意义。还将理解,术语(例如,在常 用词典中定义的那些)应该解释为具有与本说明书的上下文和有关领域中的它们的意义一 致的意义并且将不以本文清楚定义的理想化或太过正式的意义来解释。
[0106] 当元件被称作与另一元件"连接"、"耦合"、"响应"或其变型时,它可以直接连接、 耦合或响应于另一元件或可出现中间元件。与此相反,当元件被称作与另一元件"直接连 接"、"直接耦合"、"直接响应"或其变型时,不出现中间元件。全文中相似数字指代相似元 件。此外,如本文所使用的"耦合"、"连接"、"响应"或其变型可包含无线耦合、连接或响应 的。如本文所使用的,单数形式"一"和"该"旨在也包含复数个,除非上下文以其它方式清 楚地指示。用了简洁和/或清楚,可能没有详细描述已知功能或构造。术语"和/或"包含 关联的列出的项目中的一个或多个的任何和所有组合。
[0107] 如本文所使用的,术语"包括"、"包含"、"具有"或其变型是开放性的,并且包含一 个或多个表述的特征、整体、元件、步骤、部件或功能,但不排除一个或多个其它特征、整体、 元件、步骤、部件、功能或其组群的存在或添加。此外,如本文所使用的,"例如"可用于引入 或规定以前提及项目的一般示例,并且不旨在作为这样的项目的限制。"即"可用于规定来 自一般叙述的特定项目。
[0108] 本文参考计算机实现的方法的框图和/或流程图、设备(系统和/或装置)和/或 计算机程序产品来描述示例实施例。要理解,框图和/或流程图的框以及框图和/或流程 图中的框的组合可以由计算机程序指令来实现,计算机程序指令由一个或多个计算机电路 来执行。这些计算机程序指令可提供给通用计算机电路、专用计算机电路的处理器电路和 /或其它可编程数据处理电路来产生机器,使得指令(其经由计算机的处理器和/或其它可 编程数据处理设备执行)转换并且控制晶体管、在存储器位置中存储的值以及在这样的电 路内的其它硬件部件来实现在框图和/或流程图框中规定的功能/动作,并且因此创建用 于实现在框图和/或流程图框中规定的功能/动作的装备(功能性)和/或结构。
[0109] 这些计算机程序指令还可存储在有形的计算机可读介质中,它可以指引计算机或 其它可编程数据处理设备以特定方式工作,使得存储在计算机可读介质中的指令产生包含 指令(实现在框图和/或流程图框中规定的功能/动作)的制品。
[0110] 有形的、非暂时性计算机可读介质可包含电子、磁性、光、电磁或半导体数据存储 系统、设备或装置。计算机可读介质的更具体示例会包含下文的:便携式计算机软磁盘、随 机存取存储器(RAM)电路、只读存储器(ROM)电路、可擦除可编程只读存储器(EPR0M或闪速 存储器)电路、便携式压缩盘只读存储器(CD-ROM)和便携式数字视频光盘只读存储器(DVD/ 蓝光)。
[0111] 计算机程序指令还可加载到计算机和/或其它可编程数据处理设备来在计算机 和/或其它可编程设备上执行一系列操作步骤以产生计算机实现的过程,使得在计算机或 其它可编程设备上执行的指令提供用于实现在框图和/或流程图框中规定的功能/动作的 步骤。因此,本发明的实施例可实施在硬件和/或运行在处理器上(例如,数字信号处理器) 的软件(包含固件、常驻软件、微代码等)中,它们可共同地被称作"电路"、"模块"或其变型。
[0112] 也应注意到,在一些备选实现中,在框中提到的功能/动作可不以在流程图中提 到的次序来发送。例如,示为连续的两个框实际上可基本上并行执行或有时可以相反次序 来执行框,取决于涉及的功能性/动作。此外,流程图和/或框图的给定框的功能性可分成 多个框和/或流程图和/或可至少部分地集成框图的两个或者更多框的功能性。最后,可 将其它框添加/插入在图示的框之间。此外,虽然一些图包含在通信路径上的箭头来示出 通信的主要方向,但是要理解,通信可发生在与描绘的箭头相反的方向中。
[0113] 已经在本文中结合以上描述和附图公开许多不同的实施例。将理解字面上描述并 且图示这些实施例的每个组合和子组合会是不适当的重复和混淆。因此,包含附图的本说 明书应该视为组成实施例以及制作并且使用它们的方式和过程的各种示例组合和子组合 的完整书面描述,并且会将权利要求支持到任何这样的组合或子组合。
[0114] 可以对实施例作出许多变化和修改而基本上不背离本发明的原理。所有这样的变 化和修改旨在在本发明的范围内包含于本文中。
【权利要求】
1. 一种在包含转发平面和控制平面的网络的所述转发平面中操作转发元件的方法, 所述方法包括: 通过所述转发元件的输入/输出端口来接收分组; 尝试匹配所述分组与所述转发元件的流表; 响应于所述分组未命中与所述流表的匹配,尝试匹配所述分组与所述转发元件的影子 表;以及 响应于所述分组与所述影子表匹配,基于来自所述影子表的匹配的影子规则在所述流 表中安装新的流规则。
2. 根据权利要求1所述的方法,其中安装所述新的流规则包括基于来自所述影子表 的所述匹配的影子规则在所述流表中安装所述新的流规则而不将所述分组从所述转发元 件传送到所述网络的控制平面。
3. 根据权利要求1所述的方法,还包括: 根据来自所述影子表的匹配的影子规则和/或根据所述新的流规则通过所述转发元 件来处理所述分组。
4. 根据权利要求1所述的方法,还包括: 响应于所述分组未命中与所述流表的匹配以及响应于所述分组未命中与所述影子表 的匹配,将分组内消息传送到所述网络的所述控制平面中的控制器,其中所述分组内消息 包含所述分组。
5. 根据权利要求4所述的方法,其中所述分组包括数据分组,所述方法还包括: 响应于所述数据分组未命中与所述流表的匹配以及响应于所述数据分组未命中与所 述影子表的匹配,更新所述转发元件的学习表来关联所述数据分组的源与所述输入/输出 端口。
6. 根据权利要求5所述的方法,其中所述数据分组是第一数据分组,所述方法还包 括: 响应于从对应于所述分组内消息的所述控制器接收影子修改消息,在所述影子表中安 装影子规则,所述影子规则关联来自由所述第一数据分组的目的地地址识别的源的后续数 据分组与所述转发元件的虚拟内部端口;以及 在安装所述影子规则之后,通过所述转发元件的输入/输出端口来接收第二数据分 组,其中所述第二数据分组具有匹配所述第一数据分组的所述目的地地址的源地址; 尝试匹配所述第二数据分组与所述转发元件的所述流表; 响应于所述第二数据分组未命中与所述流表的匹配,尝试匹配所述第二数据分组与所 述转发元件的所述影子表; 响应于所述第二数据分组与所述影子表的影子规则匹配,基于来自所述影子表的所述 匹配的影子规则在所述流表中安装新的流规则;以及 根据来自所述影子表的匹配的影子规则和/或根据所述新的流规则通过所述转发元 件来处理所述第二数据分组。
7. 根据权利要求4所述的方法,其中所述分组是在所述转发元件的控制端口处接收 的第一控制分组,所述第一控制分组用于在客户端装置与服务器装置之间的会话,所述方 法还包括: 响应于从对应于所述分组内消息的所述控制器接收影子修改消息,在所述影子表中安 装影子规则,所述影子规则匹配在所述控制端口处接收的并且具有匹配所述第一控制分组 的源地址和/或目的地地址的源地址和/或具有匹配所述第一控制分组的所述源地址和/ 或目的地地址的目的地地址的后续控制分组,其中所述影子规则从匹配控制分组来识别端 口命令; 在安装所述影子规则之后,通过所述转发元件的所述控制端口来接收第二控制分组, 其中所述第二控制分组具有匹配所述第一控制分组的所述源地址和/或目的地地址的源 地址和/或具有匹配所述第一控制分组的所述源地址和/或目的地地址的目的地地址; 尝试匹配所述第二控制分组与所述转发元件的所述流表; 响应于所述第二控制分组未命中与所述流表的匹配,尝试匹配所述第二控制分组与所 述转发元件的所述影子表; 响应于所述第二控制分组匹配所述影子表的所述影子规则,执行所述影子规则的表达 引擎来识别所述第二控制分组的命令类型; 响应于识别所述第二控制分组的命令类型,基于所述第二控制分组的所述命令类型在 所述流表中安装新的流规则;以及 将所述第二控制分组从所述转发元件的输入/输出端口转发到目的地。
8. 根据权利要求7所述的方法,其中所述第二控制分组包括端口命令控制分组,所述 端口命令控制分组识别用于在所述客户端与服务器装置之间传送的后续数据分组的数据 端口,其中安装所述新的流规则包括安装所述新的流规则来定义用于在所述客户端与服务 器装置之间传送的后续数据分组的针孔,所述方法还包括: 在安装所述新的流规则之后,接收具有匹配所述第一控制分组的源地址和/或目的地 地址的源地址和/或具有匹配所述第一控制分组的所述源地址和/或目的地地址的目的地 地址的数据分组; 尝试匹配所述数据分组与所述转发元件的所述流表;以及 响应于所述数据分组与所述流表的所述新的流规则匹配,根据由所述新的流规则定义 的所述针孔来处理所述数据分组。
9. 根据权利要求4所述的方法,其中所述分组是第一分组,所述方法还包括: 响应于从对应于所述分组内消息的所述控制器接收影子修改消息,在所述影子表中安 装影子规则,所述影子规则定义地址和/或端口的范围/列表以及与所述第一分组的源地 址和/或目的地地址关联的新的流规则; 在安装所述影子规则之后,通过所述转发元件的输入/输出端口来接收第二分组,其 中所述第二分组具有匹配所述第一分组的所述源地址和/或目的地地址的源地址和/或具 有匹配所述第一分组的所述源地址和/或目的地地址的目的地地址; 尝试匹配所述第二分组与所述转发元件的所述流表; 响应于所述第二分组未命中与所述流表的匹配,尝试匹配所述第二分组与所述转发元 件的所述影子表; 响应于所述第二分组匹配所述影子表的所述影子规则,比较所述第二分组的源端口和 /或目的地端口与由所述影子规则定义的所述地址和/或端口的范围/列表; 响应于所述第二分组的所述源端口和/或目的地端口匹配由所述影子规则定义的所 述地址和/或端口的范围/列表,在所述流表中安装新的流规则用于具有匹配所述第一分 组的所述源地址和/或目的地地址的源地址和/或具有匹配所述第一分组的所述源地址和 /或目的地地址的目的地地址并且具有来自所述第二分组的所述地址和/或端口的分组; 以及 将所述第二分组从所述转发元件的输入/输出端口转发到目的地。
10. 根据权利要求9所述的方法,所述方法还包括: 在安装所述新的流规则之后,接收具有匹配所述第一分组的源地址和/或目的地地址 的源地址和/或具有匹配所述第一分组的所述源地址和/或目的地地址的目的地地址并且 具有来自所述第二分组的所述地址和/或端口的第三分组; 尝试匹配所述第三分组与所述转发元件的所述流表;以及 响应于所述数据分组与所述流表的所述新的流规则匹配,根据所述新的流规则来处理 所述数据分组。
11. 一种在包含转发平面和控制平面的网络的所述转发平面中的转发元件,所述转发 元件包括: 多个输入/输出端口,配置为提供与所述转发平面的其它转发元件的通信;以及 处理器,耦合到所述多个输入/输出端口,其中所述处理器配置为通过所述转发元件 的输入/输出端口来接收分组;尝试匹配所述分组与所述转发元件的流表;响应于所述分 组未命中与所述流表的匹配,尝试匹配所述分组与所述转发元件的影子表;并且响应于所 述分组与所述影子表匹配,基于来自所述影子表的匹配的影子规则在所述流表中安装新的 流规则。
12. 根据权利要求11所述的转发元件,其中所述处理器配置为基于来自所述影子表 的所述匹配的影子规则在所述流表中安装所述新的流规则而不将所述分组从所述转发元 件传送到所述网络的控制平面。
13. 根据权利要求11所述的转发元件,其中所述处理器还配置为根据来自所述影子 表的匹配的影子规则和/或根据所述新的流规则通过所述转发元件来处理所述分组。
14. 根据权利要求11所述的转发元件,其中所述处理器还配置为:响应于所述分组未 命中与所述流表的匹配以及响应于所述分组未命中与所述影子表的匹配,将分组内消息传 送到所述网络的所述控制平面中的控制器,其中所述分组内消息包含所述分组。
15. 根据权利要求14所述的转发元件,其中所述分组包括数据分组,并且其中所述处 理器还配置为:响应于所述数据分组未命中与所述流表的匹配以及响应于所述数据分组未 命中与所述影子表的匹配,更新所述转发元件的学习表来关联所述数据分组的源与所述输 入/输出端口。
16. 根据权利要求15所述的转发元件,其中所述数据分组是第一数据分组,并且其中 所述处理器还配置为:响应于从对应于所述分组内消息的所述控制器接收影子修改消息, 在所述影子表中安装影子规则,所述影子规则关联来自由所述第一数据分组的目的地地址 识别的源的后续数据分组与所述转发元件的虚拟内部端口;在安装所述影子规则之后,通 过所述转发元件的输入/输出端口来接收第二数据分组,其中所述第二数据分组具有匹配 所述第一数据分组的所述目的地地址的源地址;尝试匹配所述第二数据分组与所述转发元 件的所述流表;响应于所述第二数据分组未命中与所述流表的匹配,尝试匹配所述第二数 据分组与所述转发元件的所述影子表;响应于所述第二数据分组与所述影子表的影子规则 匹配,基于来自所述影子表的所述匹配的影子规则在所述流表中安装新的流规则;并且根 据来自所述影子表的匹配的影子规则和/或根据所述新的流规则通过所述转发元件处理 所述第二数据分组。
17. 根据权利要求14所述的转发元件,其中所述分组是在所述转发元件的控制端口 处接收的第一控制分组,所述第一控制分组用于在客户端装置与服务器装置之间的会话, 并且其中所述处理器还配置为:响应于从对应于所述分组内消息的所述控制器接收影子修 改消息,在所述影子表中安装影子规则,所述影子规则匹配在所述控制端口处接收的并且 具有匹配所述第一控制分组的源地址和/或目的地地址的源地址和/或具有匹配所述第一 控制分组的所述源地址和/或目的地地址的目的地地址的后续控制分组,其中所述影子规 则从匹配控制分组来识别端口命令;在安装所述影子规则之后,通过所述转发元件的所述 控制端口来接收第二控制分组,其中所述第二控制分组具有匹配所述第一控制分组的所述 源地址和/或目的地地址的源地址和/或具有匹配所述第一控制分组的所述源地址和/或 目的地地址的目的地地址;尝试匹配所述第二控制分组与所述转发元件的所述流表;响应 于所述第二控制分组未命中与所述流表的匹配,尝试匹配所述第二控制分组与所述转发元 件的所述影子表;响应于所述第二控制分组匹配所述影子表的所述影子规则,执行所述影 子规则的表达引擎来识别所述第二控制分组的命令类型;响应于识别所述第二控制分组的 命令类型,基于所述第二控制分组的所述命令类型在所述流表中安装新的流规则;并且将 所述第二控制分组从所述转发元件的输入/输出端口转发到目的地。
18. 根据权利要求17所述的转发元件,其中所述第二控制分组包括端口命令控制分 组,所述端口命令控制分组识别用于在所述客户端与所述服务器装置之间传送的后续数据 分组的数据端口,其中所述处理器配置为安装所述新的流规则包括安装所述新的流规则来 定义用于在所述客户端与所述服务器装置之间传送的后续数据分组的针孔;在安装所述新 的流规则之后接收数据分组,其中所述数据分组具有匹配所述第一控制分组的源地址和/ 或目的地地址的源地址和/或具有匹配所述第一控制分组的所述源地址和/或目的地地址 的目的地地址;尝试匹配所述数据分组与所述转发元件的所述流表;并且响应于所述数据 分组与所述流表的所述新的流规则匹配,根据由所述新的流规则定义的所述针孔来处理所 述数据分组。
19. 根据权利要求14所述的转发元件,其中所述分组是第一分组,并且其中所述处理 器还配置为:响应于从对应于所述分组内消息的所述控制器接收影子修改消息,在所述影 子表中安装影子规则,所述影子规则定义地址和/或端口的范围/列表以及与所述第一分 组的源地址和/或目的地地址关联的新的流规则;在安装所述影子规则之后,通过所述转 发元件的输入/输出端口来接收第二分组,其中所述第二分组具有匹配所述第一分组的所 述源地址和/或目的地地址的源地址和/或具有匹配所述第一分组的所述源地址和/或 目的地地址的目的地地址;尝试匹配所述第二分组与所述转发元件的所述流表;响应于所 述第二分组未命中与所述流表的匹配,尝试匹配所述第二分组与所述转发元件的所述影子 表;响应于所述第二分组匹配所述影子表的所述影子规则,比较所述第二分组的源端口和 /或目的地端口与由所述影子规则定义的所述地址和/或端口的范围/列表;响应于所述 第二分组的所述源端口和/或目的地端口匹配由所述影子规则定义的所述地址和/或端口 的范围/列表,在所述流表中安装新的流规则用于具有匹配所述第一分组的所述源地址和 /或目的地地址的源地址和/或具有匹配所述第一分组的所述源地址和/或目的地地址的 目的地地址并且具有来自所述第二分组的所述地址和/或端口的分组;并且将所述第二分 组从所述转发元件的输入/输出端口转发到目的地。
20.根据权利要求19所述的转发元件,其中所述处理器还配置为:在安装所述新的流 规则之后,接收第三分组,其中所述第三分组具有匹配所述第一分组的源地址和/或目的 地地址的源地址和/或具有匹配所述第一分组的所述源地址和/或目的地地址的目的地地 址;尝试匹配所述数据分组与所述转发元件的所述流表;并且响应于所述数据分组与所述 流表的所述新的流规则匹配根据所述新的流规则来处理所述分组。
【文档编号】H04L12/717GK104145457SQ201380012982
【公开日】2014年11月12日 申请日期:2013年3月1日 优先权日:2012年3月5日
【发明者】R.苏布拉玛尼亚姆, R.曼希尔马拉尼 申请人:瑞典爱立信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1