交换系统、交换控制系统和存储介质的制作方法
【专利说明】交换系统、交换控制系统和存储介质
[0001]本申请是2013年3月8日提交的、申请号为201180043295.5、发明名称为“交换系统、交换控制系统和存储介质”的专利申请的分案申请。
技术领域
[0002]本发明涉及交换系统,并具体地涉及其中每个交换机具有多个表的交换系统。
【背景技术】
[0003]为了控制网络系统中的通信路径,最近已经开发出来采用开放流(OpenFlow)技术作为针对通信设备的控制协议的路径控制方法。根据开放流技术控制路径的网络称为开放流网络。
[0004]在开放流网络中,控制器(例如OFC(开放流控制器))操作交换机(例如OFS(开放流交换机))的每个开放流表,以控制交换机的行为。控制器通过安全信道(SecureChannel)与交换机相连,以通过使用符合开放流协议的控制消息来控制交换机。
[0005]开放流网络中的交换机是构成开放流网络的边缘交换机和核心交换机,并且交换机是在控制器的控制之下。从在开放流网络中的输入侧边缘交换机处接收分组到在开放流网络中的输出侧边缘交换机处发送分组的一些列类型的分组处理称为流。
[0006]开放流表是其中注册有流条目的表,其定义了对符合预定匹配条件(规则)的分组(通信数据)要执行的预定处理内容(动作)。
[0007]根据包括在分组中协议层级的每层的首部字段中的目的地址、源地址、目的端口和源端口中的一些或所有的各种组合,定义流条目的规则,并且其可以被区别。上述地址包括MAC地址(媒体访问控制地址)和IP地址(因特网协议地址)。此外,与进入端口有关的信息也可用作流条目的规则。
[0008]流条目的动作指示操作,例如“向特定的端口输出”、“丢弃”和“重写首部”。例如,当输出端口的标识信息(例如输出端口号)出现在流条目的动作中时,交换机向该端口输出分组,并且当输出端口的标识信息没有出现时,交换机丢弃该分组。备选地,当首部信息出现在流条目的动作中时,交换机基于首部信息重写分组的首部。
[0009]开放流网络中的交换机对符合流条目的规则的分组组(分组序列)执行流条目的动作。
[0010]开放流交换机的细节在非专利文献I和2中描述。
[0011]需要大容量开放流表来控制网络上大量的流。在当前情况下,用于开放流表的TCAM(三重内容可寻址存储器)不具有大容量,并且因此不能保证必须和充足的容量。此夕卜,难以增加在开放流表中使用的交换机的每个表(主要是TCAM)自身的容量。
[0012]作为解决上述问题的方法之一,可以使用外部TCAM,但这花费开销。此外,在用于高速传输(例如1G多端口)(具有多端口的网络设备,其可以与1G比特/秒的数据传递速率相对应)的设备中,不能使用外部TCAM。现在,不存在能够至少在1G交换机中操作的外部TCAM。
[0013]引用列表
[0014][非专利文献 I】 “The OpenFlow Switch Consortium”〈http://www.0penflowswitch.0rg/>
[0015][非专利文献 2] αOpenFlow Switch Specificat1n Vers1n 0.9.0 (WireProtocol 0x98)July 20,2009
[0016]当前维护者:BrandonHeller (brandonhOstanford.edu) ”〈http://www.0penflowswitch.0rg/documents/openflow-spec-v0.9.0.pdf>
【发明内容】
[0017]本发明的目的是通过使用作为现有资源的交换机中的表,实现开放流表的条目数量的扩展。
[0018]本发明的交换系统包括:开放流功能部分,通过基于在每个表中定义的条件和处理内容而在逻辑上合并多个表来配置开放流表,多个表中的每个表定义对预定接收分组的处理,并且开放流功能部分查阅开放流表以确定对接收分组的处理内容;以及动作功能部分,基于预定处理内容对接收分组执行处理。
[0019]在开放流交换机中执行的本发明的交换控制方法,该交换控制方法包括:通过基于在每个表中定义的条件和处理内容在逻辑上合并多个表来配置开放流表,多个表中的每个表定义对预定接收分组的处理;查阅开放流表以确定对接收分组的处理内容;以及基于预定处理内容执行接收分组的处理。
[0020]根据本发明的程序是使用作交换机的计算机执行上述交换控制方法中的处理的程序。应当注意,根据本发明的程序可以存储在存储单元和存储介质中。
[0021]本发明允许控制器能够使用交换机中的多个表作为一个大容量的开放流表。
【附图说明】
[0022]图1是示出了根据本发明的交换系统的配置示例的概念性示意图;
[0023]图2是示出了根据本发明的第一示例性实施例的开放流功能部分的细节的概念性不意图;
[0024]图3是示出了根据本发明的第一示例性实施例的开放流动作解析器的细节的概念性不意图;
[0025]图4是示出了开放流表控制的概述的示意图;
[0026]图5是示出了第一类型的开放流表控制的示例的细节的示意图;
[0027]图6是示出了第二类型的开放流表控制的示例的细节的示意图;
[0028]图7A是示出了分组流入情况下,交换系统的第一操作示例的示意图;
[0029]图7B是示出了分组流入情况下,交换系统的第一操作示例的示意图;
[0030]图8A是示出了分组流入情况下,交换系统的第二操作示例的示意图;
[0031]图SB是示出了分组流入情况下,交换系统的第二操作示例的示意图;
[0032]图9是示出了第一类型的开放流表控制的特定示例的示意图;
[0033]图10是示出了开放流表控制的第二方法的特定示例的示意图;
[0034]图11是示出了根据本发明的第二示例性实施例的交换系统的示例I的细节的概念性不意图;
[0035]图12是示出了根据本发明的第二示例性实施例的交换系统的示例2的细节的概念性不意图;以及
[0036]图13是示出了根据本发明的第二示例性实施例的交换系统的示例3的细节的概念性不意图。
【具体实施方式】
[0037][第一示例性实施例]
[0038]在下文中将参考附图描述本发明的第一示例性实施例。
[0039](系统结构)
[0040]如图1所示,根据本发明的交换系统包括控制器101和交换机102。
[0041]控制器101在符合开放流协议的处理中控制交换机102。
[0042](交换机结构)
[0043]交换机102包括协议控制部分103、输入端口 104、开放流功能部分105、传统功能部分108、动作功能部分111和输出端口 112。
[0044]当控制器101执行用于在符合开放流协议的处理中控制交换机102的通信时,协议控制部分103执行控制器101和交换机102之间的协议控制。协议控制部分103不需要提供在交换机102中,而可以提供在交换机102之前的级中。
[0045]输入端口 104是分组输入接口。输入端口 104具有开放流有效端口和开放流无效端口。开放流有效端口是符合开放流协议的输入端口,而开放流无效端口是不符合开放流协议的输入端口。
[0046]开放流功能部分105对从开放流有效端口输入的分组执行处理。
[0047]开放流功能部分105包括开放流表管理部分106和开放流动作解析器107。
[0048]开放流表管理部分106保留交换机102使用的开放流表。在开放流表中定义针对符合开放流协议的分组的动作(开放流处理的动作)。
[0049]开放流动作解析器107基于开放流表管理部分106的查询结果,确定开放流处理的动作。
[0050]传统功能部分108对从开放流无效端口输入的分组执行处理。
[0051]传统功能部分108包括传统表管理部分109和传统动作解析器110。
[0052]传统表管理部分109是交换机102使用的传统表。传统表管理部分109定义了针对不符合开放流协议的分组(通常分组等)的动作(传统处理的动作)。
[0053]传统动作解析器110基于传统表管理部分109的查询结果,确定传统处理的动作。在传统处理中,使用通常的交换功能。
[0054]动作功能部分111执行在开放流功能部分105或传统功能部分108中确定的动作。
[0055]输出端口 112是分组输出接口。
[0056](开放流处理和传统处理之间的区别)
[0057]在开放流处理中,通过外部控制器控制分组路径。控制器选择整个网络中的最优路径。相反,在传统处理中,如在通常的交换机和路由器中一样,通过自主分配来控制路径。通常的交换机和路由器从与它们的环境有关的信息确定网络状态,以选择最优路径。
[0058]在开放流处理中,可以基于多达12种类型的信息的组合来标识分组。另一方面,在传统处理中,用于标识分组的信息的类型个数少,例如在L2网络情况下的目的MAC地址和在L3网络情况下的目的IP地址。针对此原因,难以执行良好的流控制。例如,在传统处理中,具有相同目的IP地址但不同源TCP端口号的流被确定为不同的流,从而选择不同的路径。
[0059](交换系统的完整操作)
[0060]在下文中将描述图1中的交换系统的完整操作。
[0061](分组输入)
[0062]当新分组流入交换机102中时,交换机102在输入端口 104处接收该分组。
[0063]交换机102检查接收该分组的输入端口 104是否是开放流有效端口。例如,交换机102通过查阅交换机102自身或输入端口 104的设置信息(config),检查接收该分组的输入端口 104是否是开放流有效端口。
[0064](从分组输入到开放流处理的转换)
[0065]当输入端口是开放流有效端口时,交换机102将分组从输入端口 104向开放流功能部分105传递。
[0066](开放流处理)
[0067]开放流功能部分105在保留交换机102的多个表的开放流表管理部分106中对传递的分组执行查询处理。
[0068]然后,开放流功能部分105基于查询结果和开放流动作解析器107中每个表的优先级,确定该分组的动作。优先级可以称为优先等级。
[0069](从开放流处理到动作的执行的转换)
[0070]当所确定的动作是“分组输入”(向控制器询问