网络系统、交换机和网络构建方法

文档序号:7791864阅读:252来源:国知局
网络系统、交换机和网络构建方法
【专利摘要】在本发明中,交换机与多个控制器同时通信以便于在用于执行通信的流表的交换机侧进行交换,从而甚至在没有用于在控制器当中同步的功能的情况下正确地执行通信。对于多个控制器,交换机将流表指派给每个控制器。多个控制器在交换机的流表中设定流条目,已经定义了将分组作为流进行统一控制的规则和动作。在从外部接收到数据分组时,交换机从所有流表当中检索与分组匹配的流表。另外,验证与多个控制器中的每一个的连接状态。另外,在与分组匹配的流条目当中,忽略已经从无效连接状态的控制器设定的流条目,并且根据已经从有效连接状态的控制器设定的流条目的动作来处理分组。
【专利说明】网络系统、交换机和网络构建方法

【技术领域】
[0001]本发明涉及网络系统,特别涉及网络设备的分组传输功能和路径控制功能被分离的网络系统。

【背景技术】
[0002]传统的网络设备是黑盒子(black box),并且无法从外部执行用于负载平衡或偏离(deviat1n)的富有灵活性的控制。因此,存在的问题在于,当网络规模越来越大时,理解并且改善系统行为变得困难,并且设计和重新配置伴随着巨大成本。
[0003]作为解决这样的问题的技术,考虑将网络设备的分组传输功能和路径控制功能分离的方法。例如,通过使网络设备处理分组传输功能并且使分离在网络设备外部的控制装置处理控制功能,控制变得容易,并且变得能够配置富有灵活性的网络。
[0004](C/U分离型网络的说明)
[0005]外部控制设备(控制平面)控制节点设备(用户平面)的C/U(控制平/用户平面)分离型网络被提出作为具有分离功能的一种网络系统。
[0006]使用开放流(OpenFlow)技术的开放流网络可以被示作C/U分离型网络的示例,在开放流技术中,通过从控制器控制交换机来执行网络路径控制。在非专利文献I中公开了开放流技术的详情。应当注意,开放流网络仅为一个示例。
[0007](开放流网络的说明)
[0008]在开放流网络中,诸如开放流控制器(OFC)的控制设备操作与诸如开放流交换机(OFS)的节点设备的路径控制相关的流表,以控制节点设备行为。
[0009]此后,为了简化说明,开放流控制器(OFC)将被表示为“控制器(OFC) ”,并且开放流交换机(OFS)将被表示为“交换机(OFS) ”。
[0010]作为专用线路或受SSL(安全套接字层)等保护的通信路径的安全信道连接在控制器(OFC)和交换机(OFS)之间。控制器(OFC)和交换机(OFS)经由安全信道来传送和接收遵循(符合)开放流协议的开放流消息。
[0011]开放流网络中的交换机(OFS)是构成开放流网络并且在控制器(OFC)的控制下的边缘交换机和核心交换机。从开放流网络的入口(进入)侧的边缘交换机处的分组的接收到出口(外出)侧的边缘交换机处的分组的传送的一系列分组流将被称为流。
[0012]分组可以被读取为帧。分组和帧之间的差异仅在于协议数据单元(PDU)的差异。分组是“tcp/ip”(传输控制协议/因特网协议)的rou。另一方面,帧是“以太网(注册商标)”的PDU。
[0013]流表是登记有流条目的表,在流条目中定义了要对与指定的匹配条件(规则)匹配的分组(通信数据)执行的指定操作(动作)。
[0014]流条目的规则是通过使用包括在分组的每个协议层的报头区域中的目的地地址、源地址、目的地端口和源端口中的一些或所有的各种组合来定义的,并且是可区分的。应当注意,以上地址包括MAC(媒体访问控制)地址和IP(因特网协议)地址。除了以上之外,入口(进入端口)的信息也可以用作流条目的规则。另外,可以通过诸如常规表达、通配符等的表达将示出流的分组的报头区域值的一部分(或全部)设定为流条目的规则。
[0015]流条目的动作示出了诸如“输出到特定端口 ”、“丢弃”、“重写报头”等的操作。例如,如果示出了出口端口的标识信息(诸如,输出端口号等),则交换机(OFS)将分组输出到对应端口,并且如果没有示出出口端口的标识信息,则交换机(OFS)丢弃该分组。替代地,如果在流条目的动作中示出报头信息,则交换机(OFS)基于相关报头信息来重写该分组的报头。
[0016]开放流网络中的交换机(OFS)对与流条目的规则匹配的f个分组的集群(一系列分组)执行流条目的动作。
[0017](现有开放流网络中的问题)
[0018]此后,将描述现有开放流网络中的问题。
[0019](I)第一个问题:在现有开放流网络中,控制器(OFC)管理所有交换机(OFS);因此,控制器的负载容易增加,并且设定流条目可能花费时间。
[0020]因此,可以采取诸如不在检测分组时设定所有流条目,而是将可以预先设定的流条目设定为不超时并且在环境变化时更新(重写)流条目的过程。
[0021]在该情况下,如果使得仅控制器(OFC)是冗余的,并且由多个控制器(OFC)共享一个流表,则控制器(OFC)需要在其之间同步所设定的流条目,并且流条目同步功能必须由控制器(OFC)侧支持。
[0022]另外,如果控制器被配置在具有冗余结构的系统(诸如,容错系统或群集系统)中,则当系统从活动系统切换为待机系统时,必须是得在旧活动系统和交换机(OFS)之间的同步的状态以及在新活动系统和交换机(OFS)之间的同步的状态是相同的,并且该处理花费时间。应当注意,旧活动系统是从活动系统切换为待机系统的控制器(OFC)。另外,新活动系统是从待机系统切换为活动系统的控制器(OFC)。
[0023](2)第二个问题:另外,在现有开放流网络中,当控制器(OFC)停止时,其影响可能蔓延到整个网络。因此,更自由地使控制器冗余的技术是重要或/和必要的。然而,当前,没有建立这样的进行冗余化的技术。
[0024](3)第三个问题:另外,在现有开放流网络中,控制器(OFC)管理整个网络。因此,控制器(OFC)的负载增加,并且执行负载分散变得重要并且是必要的。然而,当前,没有建立这样的与负载平衡有关的技术。
[0025](由于流条目设定方法的差异而导致的问题)
[0026]在开放流网络中,在交换机(OFS)中设定流条目的方法可以大致分类为两种方法,“被动型(reactive type)”和“主动型(proactive type)”。
[0027]“被动型”是在分组传入的触发时设定所有流条目的方法。应当注意,分组传入意味着将相关分组的副本传输到控制器(OFC),以向控制器(OFC)请求针对该分组的路径计算。在“主动型”中,当从交换机(OFS)接收到关于第一分组(没有相应流条目的新/第一分组)的询问时,控制器(OFC)计算相关分组集合(流)的路径,并且将流条目登记在交换机(OFS)的流表中。即,如在此使用的“被动型”示出了由控制器(OFC)响应于在实际数据通信中来自交换机(OFS)的询问而执行的“实时流条目登记”。
[0028]“主动型”基本上是设定可以预先设定的所有流条目并且根据必要性来在分组传入的触发时添加设定的最少的流条目设定的方法。在“主动型”中,控制器(OFC)“预先(在数据通信开始之前)”计算特定分组集合(流)的路径,并且将流条目登记在交换机(OFS)的流表中。即,如在此使用的“主动型”示出了由控制器(OFC)主动执行的“预先流条目登记”。
[0029]在这两种方法之间,后者在可伸缩性和稳定性方面更好。然而,实际上,在故障时的系统切换的情况下,可以认为流已经被放入(一些分组已经作为流被控制),并且从而,变为新活动设备的控制器(OFC)必须从旧活动设备继承流条目,并且被设定成使得当前流状态不冲突。因此,在控制器(OFC)之间的同步的机制是必要的,并且控制器(OFC)实现变得复杂。另外,仅可以配置由控制器(OFC)支持的冗余配置。
[0030]另外,如果控制器(OFC)如上相互同步并且共享一个连接,则当故障发生并且系统切换时,在控制器(OFC)中的同步状态和用于交换机(OFS)的流条目设定状态之间可能存在差异。
[0031]因此,同步处理在成为新活动设备的控制器(OFC)和交换机(OFS)之间变为必须的。
[0032]引用列表
[0033][非专利文献]
[0034][NPL I]
[0035]u OpenFlow Switch Specificat1n, Vers1n 1.1.0 Implemented”,[online],2011 年 2 月 28 日, 因特 网(URL:http://www.0penflowswitch.0rg/documents/openflow-spec-vl.1.0.pdf)


【发明内容】

[0036]本发明的目的在于提供对多个控制器和使流表指派给每个控制器的交换机的通信系统的网络系统。
[0037]与本发明相关的网络系统包括:交换机,根据流条目来对接收到的分组执行处理,在流条目中定义了用于将分组作为流进行统一控制的规则和动作;以及多个控制器,在交换机的流表中设定流条目。交换机将流表指派给多个控制器中的每一个,当从外部接收到分组时在所有流表中搜索与相关分组匹配的流条目,验证与多个控制器中的每一个的连接的状态,忽略由连接状态为无效的控制器所设定的流条目,并且根据连接状态为有效的控制器所设定的流条目的动作来处理相关分组。
[0038]与本发明相关的交换机包括:与设定流条目的多个控制器中的每一个进行通信的功能部,在该流条目中定义了用于将分组作为流进行统一控制的规则和动作;管理指派给每个控制器并且由每个控制器设定了流条目的流表的功能部;当从外部接收到分组时搜索与所有流表中的相关分组匹配的流条目的功能部;验证与每个控制器的连接的状态的功能部;以及忽略与相关分组匹配的流条目当中的由连接状态为无效的控制器所设定的流条目,并且根据由连接状态为有效的控制器所设定的流条目的动作来处理相关分组的功能部。
[0039]在配置与本发明有关的网络的方法中,交换机根据流条目来执行对所接收到的分组的处理,在流条目中定义了用于将分组作为流进行统一控制的规则和动作。另外,多个控制器对交换机的流表设定流条目。另外,交换机将流表指派给多个控制器中的每一个。另夕卜,当从外部接收分组时,交换机在所有流表中搜索与相关分组匹配的流条目。另外,交换机验证与多个控制器中的每一个的连接的状态。另外,交换机忽略与相关分组匹配的流条目当中的由连接状态为无效的控制器所设定的流条目,并且根据由连接状态为有效的控制器所设定的流条目的动作来处理相关分组。
[0040]与本发明有关的程序是使得交换机执行以下步骤的程序:与设定流条目的多个交换机中的每一个进行通信,对流条目定义了用于将分组作为流进行统一控制的规则和动作;管理指派给每个控制器并且由每个控制器设定了流条目的流表;当从外部接收到分组时搜索与所有流表中的相关分组匹配的流条目;验证与每个控制器的连接的状态;忽略由连接状态为无效的控制器所设定的流条目,并且根据由连接状态为有效的控制器所设定的流条目的动作来处理相关分组。应当注意,与本发明有关的程序可以被存储在记录设备或记录介质中。
[0041]交换机同时与多个控制器进行通信,切换流表以用于在交换机侧进行通信,并且变得能够在没有控制器之间的同步的功能的情况下正确地通信。

【专利附图】

【附图说明】
[0042]图1是示出与本发明有关的网络系统的配置示例的视图。
[0043]图2是示出与本发明有关的交换机(OFS)的配置示例的视图。
[0044]图3是用于解释与本发明有关的流条目的格式的视图。
[0045]图4是示出当接收分组时的操作的序列图。
[0046]图5是用于解释当检测路径时的操作的示例的视图。
[0047]图6是用于解释当传输分组时的操作的示例的视图。

【具体实施方式】
[0048]本发明的对象是C/U分离型网络。在此,将解释作为C/U分离型网络的示例的开放流网络。注意,本发明不限于开放流网络。
[0049][示例性实施例]
[0050]此后,将通过参考附图描述本发明的示例性实施例。
[0051](系统配置)
[0052]将参考图1描述与本发明有关的网络系统的配置的示例。
[0053]与本发明有关的网络系统包括控制器(OFC) 10、交换机(20)和主机30。
[0054]控制器(OFC) 10、交换机(0FS)20和主机30可以是多个。例如,多个控制器
(OFC) 20中的每一个都将被表示为交换机(OFS) 20-1、交换机(OFS) 20-2.....等。在图1
中,示出控制器(OFC) 10-1、控制器(OFC) 10-2、交换机(OFS) 20_1、交换机(20_2)、主机30_1和主机30-2作为示例。应当注意,使控制器(OFC)1是冗余的。在此,控制器(OFC)1-1是活动系统,并且控制器(OFC) 10-2是待机系统。
[0055]控制器(OFC) 10管理交换机(OFS) 20。在控制器(OFC) 10和交换机(OFS) 20之间连接有作为专用线路或受SLL(安全套接字层)等保护的通信路径的“安全信道”。控制器(OFC) 10和交换机(OFS) 20经由安全信道执行符合开放流协议的通信。另外,控制器(OFC) 10通过操作作为与每个分组相对应的路径信息的流条目来控制交换机(OFS) 20处理到达交换机(OFS) 20的分组的方式。控制器(OFC) 10将各种流条目登记到交换机(20)中。以被称为“流表”的表格式来管理流条目的集合。控制器(OFC) 10管理在控制下的每个交换机(OFS) 20的流表的内容。例如,控制器(OFC) 10保持在控制下的每个交换机(OFS) 20的流表的主表。
[0056]交换机(OFS) 20经由诸如LAN(局域网)的网络被连接到相邻的交换机(OFS)。另夕卜,如果交换机(OFS)本身对应于边缘交换机(OFS),则交换机(OFS) 20可以被连接到客户端、服务器或者还不支持开放流的网络设备等。交换机(OFS) 20保持至少一个流表。
[0057]应当注意,“保持流表”意味着管理该流表。如果该流表可经由网络等来管理,则该流表可能需要实际上在管理设备本身内部。即,存储该流表的位置不限于管理流表的设备内部,而是还可以在该设备的外部。例如,可以考虑控制器(OFC) 10和交换机(OFS) 20共享存在于网络上的同一流表。
[0058]主机30经由诸如LAN(局域网)的网络连接到交换机(OFS) 20,并且经由交换机(OFS) 20执行网络通信。例如,当主机30-1访问主机30-2时,主机30_1成为客户端,并且主机30-2成为服务器。然而,实际上,主机30不限于客户端或服务器,但是还可以是还不支持开放流的网络设备。
[0059](交换机(OFS)配置)
[0060]将参考图2描述交换机(OFS) 20的配置的示例。
[0061]交换机(0FS)20包括分组输入/输出部21、控制部22、选择器23、流表管理部24(24-1,i = I 至 η)、流表 25(25-1,i = I 至 η)和控制器通信部 26 (26_i,i = I 至 η)。应当注意,以上描述的“i = I至η”中的“η”是连接到相关交换机(OFS) 20的控制器(OFC) 10的数目。
[0062]分组输入/输出部21在相邻的交换机(OFS) 20或主机30之间传送和接收分组。
[0063]控制部22执行交换机(OFS) 20的内部控制。
[0064]选择器23执行与控制部22、流表管理部24(24_i,i = I至η)和控制器通信部26 (26-1, i = I至η)中的每一个的通信。
[0065]流表管理部24(24_i,i = I至η)中的每一个管理(添加/更新/删除)包括在流表25(25-1,i = I至η)中的流条目。流表管理部24 (24_i,i = I至η)中的每一个针对连接到相关交换机(OFS) 20的每个控制器(OFC)1而存在。即,流表管理部24(24-1,i = I至η)中的每一个都被指派给每个控制器(OFC) 10。应当注意,实际上,流表管理部24(24-1,i = I至η)中的每一个都可以是一个相同设备/电路。在该情况下,假设流表管理部24(24-1,i = I至η)能够确定流表25 (25_i,i = I至η)的每个/各自流条目对应于哪个控制器(OFC) 10。
[0066]流表25(25_i,i = I至η)中的每一个都是流条目的集合。例如,流表25 (25_i,i=I至η)中的每一个都是用于存储路径信息的数据库。流表25(25-1,i = I至η)中的每一个在交换机(OFS) 20中都具有独特的优先级。流表25(25-1,i = I至η)中的每一个都针对连接到相关交换机(OFS) 20的控制器(OFC)1中的每一个而存在。即,流表25(25-1,i = I至η)中的每一个都被指派给控制器(OFC)1中的每一个。应当注意,实际上,流表25(25-1,i = I至η)中的每一个可以是一个相同流表。在该情况下,为了使得可确定各个流条目是由哪个控制器(OFC)1设定的,可以考虑在流条目中提供子字段(区域),以用于存储用于标识控制器(OFC)1的VLAN标签(VLAN ID)等。
[0067]控制器通信部26 (26-1,i = I至η)中的每一个根据开放流协议与目的地控制器(OFC)1进行通信。另外,控制器通信部26(26-1,i = I至η)中的每一个都验证与目的地控制器(OFC)1的连接的状态。控制器通信部26(26-1,i = I至η)中的每一个针对连接到相关交换机(OFS) 20的控制器(OFC)1中的每一个而存在。即,控制器通信部26 (26-1,i = I至η)中的每一个都被指派给控制器(OFC) 10中的每一个。应当注意,实际上,控制器通信部26(26-1,i = I至η)中的每一个可以是一个相同设备/电路。在该情况下,可以考虑向控制器(OFC) 10中的每一个指派用于控制器通信部26(26-1,i = I至η)的传送和接收的队列。
[0068]当然,可以向相同的流表管理部24(24-1, i = I至η)、流表25 (25_i, i = I至η)和控制器通信部26(26-1,i = I至η)指派多个控制器(0FC)10。例如,可以考虑对多个控制器(OFC) 10进行分集群,并且对同一集群的控制器(OFC) 10指派相同的流表管理部24(24-1, i = I 至 η)、流表 25(25-1,i = I 至 η)和控制器通信部 26 (26-1, i = I 至 η)。
[0069]应当注意,“指派”的意义可以被读作“相关联”。“指派给控制器(OFC)中的每一个”意味着特定对象与各个控制器(OFC) 10关联,并且这不必限于一一对应的关系。
[0070]注意,实际上,本示例性实施例不限于以上示例。
[0071](流条目格式)
[0072]将通过参考图3描述与本发明有关的流条目的格式。
[0073]与本发明有关的流条目包括用于流条目优先级251、流表优先级252、匹配条件253和动作254中的每一个的子字段(区域)。
[0074]流条目优先级251是用于存储示出相关流条目本身的优先级的值的区域。流表优先级252是用于存储示出登记有相关流条目的流表本身的优先级的值的区域。匹配条件253是用于存储示出相关流条目的规则的值的区域。动作254是用于存储示出相关流条目的动作的值的区域。
[0075]应当注意,流表的优先级等于对应控制器(OFC)的优先级。即,流表的优先级可以被读作控制器(OFC)的优先级。
[0076]与本发明有关的流条目由控制器(OFC) 10来设定,并且从而控制器(OFC) 10可以任意地指定/修改与本发明有关的流条目的每个子字段(区域)的值。然而,实际上,其可以被配置为使得可以在交换机(OFS) 20侧实现指定/修改。例如,交换机(OFS) 20可以根据哪个控制器(OFC) 10优先连接或者哪个控制器(OFC) 10最可信任来决定流表的优先级。
[0077]当然,可以使得与本发明有关的流条目包括除了以上之外的子字段(区域)。
[0078](当接收分组时的操作)
[0079]将通过参考图4,描述当交换机(OFS) 20接收分组时的操作的示例。
[0080]在图1中所示的网络配置的示例中,这与在从主机30-1接收分组时交换机(OFS) 20-1 的操作。
[0081](I)步骤 SlOl
[0082]交换机(OFS) 20的分组输入/输出部21从主机30接收分组。
[0083](2)步骤 S102
[0084]交换机(OFS) 20的分组输入/输出部21将分组传送到控制部22。
[0085](3)步骤 S103
[0086]交换机(OFS) 20的控制部22保持相关分组,传送相关分组的副本(复制),并且向选择器23请求相关分组的匹配,以决定针对相关分组的动作。应当注意,实际上,交换机(OFS) 20的控制部22可以简单地将相关分组的副本传送到选择器23。
[0087](4)步骤 S104
[0088]交换机(0FS)20的选择器23传送相关分组的副本,并且执行对流表管理部24(24-1,i = I至η)中的每一个的匹配请求。应当注意,实际上,当接收来自控制部22的分组时,交换机(OFS) 20的选择器23可以确定执行对流表管理部24(24-1,i = I至n)中的每一个的相关分组的匹配请求。
[0089](5)步骤 S105
[0090]响应于匹配请求,交换机(OFS) 20的流表管理部24(24_i,i = I至η)中的每一个在其本身的管理下的流表25(25-1,i = I至η)中进行搜索,以验证与相关分组匹配的流条目是否存在,并且作为匹配搜索结果向选择器23返回匹配流条目存在或不存在以及其内容。
[0091](6)步骤 SlO6
[0092]当匹配搜索结果从流表管理部24(24_i,i = I至η)中的每一个返回到达时,交换机(OFS) 20的选择器23向控制器通信部26 (26_i,i = I至η)中的每一个询问与目的地控制器(OFC) 10的连接的状态。应当注意,实际上,与对流表管理部24(24-1,i = I至η)中的每一个的匹配请求同时或此前,交换机(OFS) 20的选择器23可以向控制器通信部26 (26_i,i = I至η)中的每一个询问与目的地控制器(OFC) 10的连接的状态(步骤S104)。
[0093](7)步骤 S107
[0094]响应于连接状态的询问,交换机(OFS) 20的控制器通信部26 (26_i,i = I至η)中的每一个都验证与目的地控制器(OFC)1的连接的状态,并且用与该连接状态有关的信息进行响应。例如,连接状态的信息对于处于连接状态或者正在进行操作的控制器(OFC)1为“有效”,并且对于没有处于连接状态或者停止的控制器(OFC) 10为“无效”。
[0095](8)步骤 S108
[0096]基于与连接状态有关的信息并且根据匹配搜索结果,交换机(OFS) 20的选择器23丢弃/暂时禁用与无效控制器(OFC) 10相对应的流条目,并且仅留下与有效控制器(OFC) 10相对应的流条目。
[0097](9)步骤 S109
[0098]交换机(OFS) 20的选择器23执行流条目的分类。例如,交换机(OFS) 20的选择器23按照流条目的优先级的顺序进行分类,并且另外,按照流表的优先级的顺序对相同优先级的流条目进行分类。
[0099](10)步骤 SI 10
[0100]交换机(OFS) 20的选择器23执行对分类的流条目的过滤。具体地,在剩余的流条目当中,留下其流条目的优先级与最高匹配的流条目,并且具有较低优先级的流条目被全部丢弃/暂时无效。
[0101](11)步骤 Slll
[0102]此后,交换机(OFS) 20的选择器23按照较高优先级的顺序来对过滤的流条目进行评估,并且如果在评估的流条目的动作中指定“传输到另一交换机(OFS) ”的动作,则仅执行一次对控制部22的传输的请求。即,在通过“传输到另一交换机(0FS)”指定的流条目当中,仅采用首先评估的流条目。随后估计的剩余的通过“传输到另一交换机(0FS)”指定的其他流条目将被忽略。
[0103](12)步骤 S112
[0104]响应于传输请求,交换机(OFS) 20的控制部22将保持分组传送到分组输入/输出部21。此时,交换机(OFS) 20的控制部22将保持分组传输到分组输入/输出部21所具有的输出端口当中的用于传输到另一交换机(OFS) 20的输出端口。
[0105](13)步骤 S113
[0106]交换机(OFS) 20的分组输入/输出部21将从控制部22传送的分组传输到另一交换机(OFS) 20。
[0107](14)步骤 S114
[0108]如果“传送到控制器(OFC) ” (分组传入)的动作被指定为评估的流条目的动作,则交换机(OFS) 20的选择器23将相关分组的副本传输到与相关流条目所登记到的流表25 (25-1,i = I至η)相对应的控制器通信部26 (26_i,i = I至η)。
[0109](15)步骤 S115
[0110]根据开放流协议,交换机(0FS)20的控制器通信部26(26-1,i = I至η)将相关分组的副本传输到控制器(OFC)1以执行分组传入。例如,控制器通信部26(26-1,i = I至η)可以将相关分组的副本存储到从交换机(OFS) 20到控制器(OFC) 10的开放流消息的数据区域中,将相关开放流消息传输到控制器(OFC)1以执行分组传入。
[0111]即,当按照较高优先级的顺序对过滤的流条目进行评估时,假设“传输到另一交换机(OFS) ”的动作仅被执行一次。另外,“传输到控制器(OFC) ”的动作(分组传入)可以被执行若干次。当然,类似于“传输到另一交换机(OFS) ”的动作,假设“传输到控制器(OFC) ” (分组传入)的动作仅被执行一次。
[0112]应当注意,实际上,步骤S108至Slll的操作可以通过交换机(OFS) 20的控制部22而不通过交换机(OFS) 20的选择器23来执行。在该情况下,假设交换机(OFS) 20的控制部22从选择器23接收必要信息。另外,交换机(OFS) 20的控制部22和选择器23可以被集成。
[0113](当检测路径时的操作)
[0114]将通过参考图5描述当检测路径时的操作的示例。
[0115]在本发明中,有必要使用“标记VLAN”,使得在开放流网络中的通信,诸如在交换机(OFS)之间的通信中、通过LLDP(链路层发现协议)的路径检测等中,流在多个控制器当中不会被混淆,以识别在每个通信中要使用哪个控制器(OFC)。因此,每个交换机(OFS)占用与要连接的控制器(OFS)相同数目的VLAN标签(VLAN ID)。
[0116]控制器(OFC) 10中的每一个独立地执行路径检测。
[0117]首先,控制器(OFC)1中的每一个对LLDP分组设定/添加用于自身标识的VLAN标签(VLAN ID)。在此,控制器(OFC) 10-1对LLDP分组设定/添加“ ID:1 ”作为用于自身标识的VLAN标签(VLAN ID)。另外,控制器(OFC) 10-2对LLDP分组设定/添加“ ID:2”作为用于自身标识的VLAN标签(VLAN ID)。
[0118]控制器(OFC) 10中的每一个对管理下的交换机(OFS) 20设定用于通过VLAN标签(VLAN ID)、以太(Ether)类型和“当接收到与相关VLAN标签(VLAN ID)和相关以太类型匹配的分组时,传输到(分组传入)相关控制器(OFC) ”的动作所指定的用于分组传入的流条目。即,VLAN标签(VLAN ID)和以太类型是用于分组传入的流条目的规则(匹配条件)。应当注意,用于分组传入的流条目基本上是初始状况中的流条目(默认项),并且从而,适用于设定流条目的最低优先级。在此,控制器(OFC) 10-1对交换机(OFS) 20-1和交换机(OFS) 20-2指定VLAN标签(VLAN ID) “ID:1”和以太类型“LLDP(0x88CC) ”的匹配条件,并且设定指定“传输(分组传入)到控制器(OFC) 10-1”的动作的用于分组传入的流条目。另外,控制器(OFC) 10-2对交换机(OFS) 20-1和交换机(OFS) 20_2指定VLAN标签(VLANID) “ID:2”和以太类型“LLDP(0x88CC)”的匹配条件,并且设定指定“传输(分组传入)到控制器(OFC) 10-2”的动作的用于分组传入的流条目。应当注意,实际上,控制器(OFC) 10中的每一个不需要对指令传送具有以下VLAN标签(VLAN ID)的LLDB分组的交换机(OFS) 20设定以上用于分组传入的流条目。
[0119]控制器(OFC) 10中的每一个指令管理下的交换机(OFS) 20中的每一个传送具有VLAN标签(VLAN ID)的LLDB。具体地,控制器(OFC) 10中的每一个根据开放流协议来指令管理下的交换机(OFS) 20中的每一个传输具有VLAN标签(VLAN ID)的LLDB分组,并且传送相关的LLDB分组。然而,实际上,控制器(OFC)1中的每一个都可以向交换机(OFS) 20中的每一个通知用于自身标识的VLAN标签(VLAN ID),并且指令生成并且传送具有VLAN标签(VLAN ID)的LLDB分组。在此,控制器(OFC) 10_1指令交换机(OFS) 20_1将具有VLAN标签(VLAN ID) “ID:1”的LLDB分组传输到目的地为交换机(OFS) 20-2的输出端口。另外,控制器(OFC) 10-2指令交换机(OFS) 20-2将具有VLAN标签(VLAN ID) “ID:2”的LLDB分组传输到目的地为交换机(OFS) 20-1的输出端口。
[0120]每个交换机(OFS) 20都响应于来自所连接的控制器(OFC)1的指令,发送具有VLAN标签(VLAN ID)的LLDB分组。另外,当从另一个交换机(OFS) 20接收到具有VLAN标签(VLAN ID)的LLDB分组时,每个交换机(OFS) 20都根据用于分组传入的流条目的动作,将其传送(分组传入)到对应控制器(OFC) 10。在此,响应于来自控制器(OFC)1-1的指令,交换机(OFS) 20-1将具有VLAN标签(VLAN ID) “ID:1”的LLDB分组传送到目的地为交换机(OFS) 20-2的输出端口。另外,当从交换机(OFS) 20-2接收到具有VLAN标签(VLAN ID)" ID:2”的LLDB分组时,根据用于分组传入的流条目的动作,交换机(OFS) 20-1将其传送(分组传入)到控制器(OFC) 10-2。另外,响应于来自控制器(OFC) 10-2的指令,交换机(OFS) 20_2将具有VLAN标签(VLAN ID) “ID:2”的LLDB分组传送到目的地为交换机(OFS) 20-2的输出端口。另外,当从交换机(OFS) 20-1接收到具有VLAN标签(VLAN ID) “ID:1”的LLDB分组时,交换机(OFS) 20-2根据用于分组传入的流条目的动作,将其传送(分组传入)到控制器(OFC)10-1。
[0121]因此,控制器(OFC) 10中的每一个都可以仅使由每个控制器本身处理的LLDP分组分组传入到管理下的交换机(OFS) 20。另外,基于通过管理下的交换机(OFS) 20中的每一个分组传入的信息,控制器(OFC)1中的每一个可以收集关于在何处连接哪个交换机(OFS)的哪个端口的信息(拓扑信息)。
[0122](分组传入/流学习的操作)
[0123]接下来,将描述分组传入/流获悉的操作的示例。
[0124]当从外部(主机30等)接收还没有获悉哪个流的分组(第一分组)时,交换机(OFS) 20的控制部22指令选择器23在所有表(匹配请求)中进行搜索。
[0125]交换机(OFS) 20的选择器23向流表管理部24 (24_i,i = I至η)中的每一个请求在管理下的流表25 (25-1,i = I至η)中的搜索,并且收集结果。
[0126]当进行流获悉时(当流条目还没有被登记时/当处理流条目登记时),因为不存在与任何流条目的匹配(没有匹配流条目被登记),所以在所有流表25(25-1,i = I至η)中发生未命中。因此,流表管理部24(24-1,i = I至η)中的每一个向选择器23返回由每个流表25 (25-1,i = I至η)本身所管理的流表25 (25_i,i = I至η)中的未命中的结果。
[0127]在所有流表25(25_i,i = I至η)中未命中的情况下,交换机(OFS) 20的选择器23对控制器通信部26 (26-1,i = I至n)中的每一个执行分组传入命令(指令/请求)。
[0128]控制器通信部26 (26-1,i = I至n)中的每一个都响应于分组传入命令来将分组传输(分组传入)到所连接的控制器(OFC) 10。
[0129]在分组传入之后,所连接的控制器(OFC) 10对从开放流网络的入口到出口的所有交换机(OFS) 20设定流条目。
[0130]此时,控制器(OFC) 10在入口侧交换机(OFS) 20-1中设定指定“添加指派给每个控制器(OFC)的VLAN标签”的动作的流条目。
[0131]另外,控制器(OFC) 10在出口侧交换机(OFS) 20-2中设定指定“删除(回写:writeback)由入口侧交换机(OFS)所添加的VLAN标签”的动作的流条目。
[0132](当传输分组时的操作)
[0133]将通过参考图6描述当传输分组时的操作的示例。
[0134]当接收已经从外部(主机30等)获悉的分组时,类似于流获悉的情况,交换机(OFS) 20的控制部22执行对选择器23的在所有表中进行搜索的指令(匹配请求)。
[0135]在诸如本发明的冗余配置的情况下,相同优先级的流条目可以在流表25 (25-1,i=I至η)当中的多个流表中匹配(优先级在不同流表中所登记的流条目中相同的情况);然而,交换机(OFS) 20的选择器23基于每个流表的优先级来选择一个流表(例如,最优先的流表),并且采用在相关流表中所登记的流条目。
[0136]交换机(OFS) 20的选择器23执行对控制部22的传输分组的请求。
[0137]此时,入口侧交换机(OFS) 20-1的控制部22根据流条目的动作来对从外部(主机30等)接收到的分组添加指派给控制器(OFC) 10-1的VLAN标签(VLAN ID) “ID:1”。
[0138]另外,出口侧交换机(OFS) 20-2的控制部22根据用于通过了入口侧交换机(OFS) 20-1的分组的流条目的动作,来删除(回写)由入口侧交换机(OFS) 20-1所添加的VLAN 标签(VLAN ID) “ID:1”。
[0139](当故障发生时的操作)
[0140]接下来,将描述当故障发生时的操作的示例。
[0141]故障发生时的操作可以根据故障的点被划分成以下两种模式。
[0142](I)控制器(OFC)的停机(down)
[0143]如果活动系统的控制器(OFC) 10停止,则从流表的匹配搜索结果中删除与停机的控制器(OFC) 10相对应的流表的流条目。
[0144]此时,如果通过待机系统的控制器(OFC) 10进行流获悉,则交换机(OFS) 20可以直接使用与待机系统的控制器(OFC) 10相对应的流表的流条目来传输分组。替代地,如果流获悉还未进行,则交换机(OFS) 20可以通过使用待机系统的控制器(OFC) 10来执行分组传入/流获悉,并且从待机系统的控制器(OFC) 10对其设定流条目,以恢复通信。
[0145](2)交换机(OFS)的停机
[0146]如果管理下的交换机(OFS) 20停止,则控制器(OFC) 10检测相关交换机(OFS)的停机,计算相关交换机(OFS) 20被排除的新路径,并且在新路径上的交换机(20)中设定与新路径有关的流条目。
[0147](当重新连接到故障的控制器(OFC)时的操作)
[0148]接下来,以下将描述当重新连接到故障已经发生的控制器(OFC)时的操作的示例。
[0149]当重新连接由于故障而曾经停机的控制器(OFC) 10-1时,交换机(OFS) 20可能已经进行了流获悉,并且与待机系统的控制器(OFC) 10-2连接。在该情况下,交换机(OFS) 20实际上不向重新连接的控制器(OFC) 10-1传输分组(分组传入),并且不使用重新连接的控制器(OFC) 10-1执行流的重新获悉。
[0150]因此,必须对到入口侧交换机(OFS) 20-1的流条目设定硬时间(hard time),使得每恒定间隔执行重新获悉。应当注意,因为相关流条目已经被登记,所以硬时间是有效时段。当设定为硬时间的有效时段已经度过时,硬超时发生,并且交换机20-l(0FS)自动地删除相关流条目。即,这是相关流条目还没有被登记的状态。
[0151]例如,如果硬时间被设定为“十分钟”,则当从流条目被登记开始度过了十分钟时,入口侧的交换机(OFS) 20-1删除超时的流条目。因此,与相关流条目匹配的分组将再次返回为还没有被获悉的分组(第一分组),并且从而分组可以被再次传输(分组传入)到控制器(OFC) 10-1,以执行流的重新获悉。
[0152]此时,入口侧的交换机(OFS) 20-1将分组传输(分组传入)到恢复的控制器(OFC) 10-1和待机系统的控制器(OFC) 10-2 二者,以执行流重新获悉。
[0153]从而,在从流条目被登记开始度过了十分钟时,删除相关流条目,并且执行流重新获悉。如果当执行流重新获悉时活动系统的控制器(OFC)1-1被恢复,则入口侧的交换机(OFS) 20-1重新开始与活动系统的控制器(OFC)1-1的通信。
[0154]应当注意,如果在流重新获悉的同时操作中的待机系统的控制器(OFC) 10-2已经停止,则其切换为恢复的活动系统的控制器(OFC) 10-1,并且从而虽然施加负载,但是在流重新获悉之后,通信被恢复。
[0155](负载平衡配置)
[0156]在上述系统配置中,控制器(OFC) 10-1在活动系统中,而控制器(OFC) 10_2在待机系统中,并且从而活动系统和待机系统被明确分离;然而,通过在交换机(OFS) 20中设定用于分组传入的流条目,可以产生控制器(OFC)1-1和控制器(OFC) 10-2 二者在活动系统中的负载平衡配置(ACT/ACT配置)。
[0157]例如,将描述期望通过控制器(OFC) 10-1处理其目的地IP地址是“ 192.168.1.*/24”的分组以及通过控制器(OFC) 10-2处理其目的地IP地址是“192.168.2.*.24”的分组。注意,表示通配符。
[0158]在该情况下,控制器(OFC) 10-1对与控制器(OFC) 10-1本身相对应的流表25(25-1, i = I至η)设定用于分组传入的流条目,其中对管理下的交换机(OFS) 20指定具有目的地IP地址“192.168.1.*/24”的匹配条件以及“传输(分组传入)到控制器(OFC) 10-1” 的动作。
[0159]另外,控制器(OFC) 10-2对与控制器(OFC) 10-2本身相对应的流表25(25_i,i =I至η)设定用于分组传入的流条目,其中对管理下的交换机(OFS) 20指定具有目的地IP地址“192.168.1.*/24”的匹配条件以及“传输(分组传入)到控制器(OFC) 10-2"的动作。
[0160]从而,从管理下的交换机(OFS) 20向每个控制器(OFC) 10仅发送满足由每个控制器(OFC) 10本身设定的匹配条件的分组。因此,处理可以被分散到多个控制器(OFC)。
[0161]此时,例如,即使控制器(OFC) 10-1停止,当新分组到达入口侧交换机(OFS) 20-1时,相关交换机(OFS) 20-1的选择器23评估流条目,丢弃/暂时禁用由无效控制器(OFC) 10-1所设定的流条目,通过使用控制器(OFC) 10-2来执行流重新获悉,并且重新设定流条目。因此,也可以在负载平衡配置中保持冗余。
[0162](总结)
[0163]如上所述,在与本发明有关的网络系统中,不论管控制器(OFC)的规格如何,都可以实现冗余配置和负载平衡配置。
[0164]在与本发明有关的网络系统中,通过由交换机(OFS)侧的控制器增加流表和通信部,能够自由地增加要同时连接的控制器(OFC)的数目。
[0165]在与本发明有关的网络系统中,控制器(OFS)之间的复杂的同步机制/处理不是必要的。另外,当故障发生时,将不参考停止的控制器(OFC)的流表。因此,变得不必要的流条目的清除(删除)或重写(更新)将是不必要的,并且因此,可以快速地恢复通信。
[0166](硬件例示)
[0167]以下将描述用于实现与本发明有关的网络系统的硬件的详细示例。
[0168]作为控制器(OFC)和主机的示例,可以考虑诸如PC(个人计算机)、电器、瘦客户端计算机、工作站、主机、超级计算机等的计算机。另外,作为主机的其他示例,还可以考虑IP电话、移动电话、智能电话、智能本、汽车导航系统、移动游戏设备、家用游戏设备、移动音乐播放器、掌上型终端、小配件(电子设备)、交互式电视、数字调谐器、数字记录器、信息家用电器、OA(办公自动化)设备、店面终端/高功能复印机、数字看板等。应当注意,控制器(OFC)和主机不限于终端或服务器,而还可以是中继设备或外围设备。另外,控制器(OFC)和主机还可以是安装在计算机等上的扩展卡等或者在物理机器上配置的VM(虚拟机)。
[0169]作为交换机(OFS)的示例,可以考虑网络交换机、路由、代理、网关、防火墙、负载平衡器、分组形成器、SCADA (数据采集与监视控制)、网守、基站、AP (接入点)、CS (通信卫星)或具有多个通信端口的计算机等。另外,还可以是由在物理机器上配置的虚拟机所实现的虚拟交换机。
[0170]控制器(OFC)、交换机(OFS)和主机可以被安装在诸如车辆、船或飞行器的移动主体上。
[0171]附图未不出,但是控制器(OFC)、交换机(OFS)和主机中的每一个都通过基于执行指定处理的程序驱动的处理器、存储相关程序和各种数据的存储器、以及用于与网络通信的接口来实现。
[0172]作为以上处理器的示例,可以考虑CPU(中央处理单元)、NP(网络处理器)、微处理器、微控制器或具有专用功能的LSI (大规模集成)。
[0173]作为以上存储器的示例,可以考虑:半导体存储器,诸如RAM(随机存取存储器)、ROM(只读存储器)、EEPR0M(电可擦除可编程只读存储器)、闪存等;辅助存储设备,诸如HDD (硬盘驱动器)、SSD (固态驱动器)等;可移动磁盘,诸如DVD (数字多功能磁盘)等;或诸如SD(安全数字)存储器卡的存储介质等。另外,还可以是缓冲器或寄存器。替代地,还可以是诸如DAS (直接附连存储器)、FC-SAN (光纤通道存储区域网络)、NAS (网络附连存储器)、IP-SAN(IP-存储区域网络)等的存储设备。
[0174]应当注意,以上处理器和以上存储器可以被集成。例如,近年来,微型计算机等到一个芯片的集成正在进步。因此,可以考虑安装在电子设备上的单片机由以上处理器和以上存储器提供的情况。
[0175]作为以上接口的示例,可以考虑:半导体集成电路,诸如与网络通信(母板、I/O板)或芯片兼容的基板;网络适配器或类似扩展卡,诸如NIC(网络接口卡);通信设备,诸如天线;通信端口,诸如连接器等;等。
[0176]另外,作为网络的示例,可以考虑因特网、LAN(局域网)、无线LAN(广域网)、主干网、CATV (有线电视)线路、固定电话网络、移动电话网络、WiMAX (IEEE802.16a)、3G (第三代)、专用线路、IrDA (红外数据组织)、蓝牙(注册商标)、串行通信线路、数据总线等。
[0177]应当注意,控制器(OFC)、交换机(OFS)和主机中的每一个的内部组件可以是模块、组件或专用设备、或者用于启动(呼叫)那些设备的程序。
[0178]应当注意,实际上,那些示例不是限制性的。
[0179](本发明的特征)
[0180]如上所述,本发明涉及使用与多个控制器(OFC)和使流表指派给控制器中的每一个的交换机(OFS)进行通信的机制的网络系统和配置网络的方法。
[0181]与本发明有关的交换机(OFS)包括与控制器通信的多个机制和多个流表,同时与多个控制器(OFC)通信,并且能够甚至在控制器(OFC)之间不同步的情况下,通过在交换机(OFS)侧切换要通过其执行通信的流表来执行正确通信。
[0182]为了实现用于控制器(OFC)的冗余/负载平衡的ACT/ACT配置,与本发明有关的交换机(OFS)包括选择器,选择器根据流表的搜索结果和与控制器(OFC)的连接的状态来确定/选择多个流表当中的哪个流表要被使用。
[0183]与本发明有关的交换机(OFS)检测交换机(OFS)侧的控制器(OFC)的故障,丢弃/暂时禁用与故障发生的控制器(OFC)相对应的流表的流条目,并且通过使用与另一操作控制器(OFC)相对应的流表的流条目来继续通信。
[0184]在本发明中,因为在交换机(OFS)侧分别指派与多个控制器(OFC)通信的机制和多个流表,每个控制器(OFC)可以自由地使用指派给控制器(OFC)本身的流表。另外,不需要与其他控制器(OFC)的同步的处理。因此,可以装配自由冗余配置和负载平衡配置。
[0185]即使故障在活动系统的控制器(OFC)中发生,如果待机系统的控制器(OFC)正在操作,则也可以通过丢弃/暂时禁用与故障发生的控制器(OFC)相对应的流表的流条目来继续通过操作控制器(OFC)的处理,并且从而,新活动系统的控制器(OFC)不需要执行不必要的流条目的删除等。
[0186](备注)
[0187]以上描述了本发明的示例性实施例;然而,应当注意,实际上,本发明不限于以上示例性实施例,并且在不脱离本发明的精神的范围内的改变被包括在本发明中。
[0188]本发明要求日本专利申请2012-048014的优先权。其公开通过引用的方式合并于此。
【权利要求】
1.一种网络系统,包括: 交换机,所述交换机被配置成根据流条目来执行对所接收到的分组的处理,在所述流条目中定义了用于将分组作为流进行统一控制的规则和动作;以及 多个控制器,所述多个控制器被配置成对所述交换机的流表设定所述流条目, 其中,所述交换机将流表指派给所述多个控制器中的每一个,当从外部接收分组时在所有流表中搜索与所述分组匹配的流表,验证与所述多个控制器中的每一个的连接的状态,忽略与所述分组匹配的流条目当中的由连接的状态为无效的控制器所设定的流条目,并且根据由连接的状态为有效的控制器所设定的流条目的动作来处理所述分组。
2.根据权利要求1所述的网络系统, 其中,如果存在由连接的状态为有效的控制器所设定的多个流条目,则所述交换机采用流条目本身的优先级为最高的所述流条目,并且如果存在具有相同优先级的多个流条目,则所述交换机采用设定有所述流条目的流表的优先级为最高的流表。
3.根据权利要求1或2所述的网络系统, 其中,所述多个控制器中的每一个设定用于分组传入的流条目,以执行负载平衡,在所述流条目中设定了用于匹配用于使所述交换机向每个所述控制器本身传输的分组的匹配条件以及用于将所述分组传输到每个所述控制器本身的动作。
4.一种在根据权利要求1至3中的任何一项所述的网络系统中使用的控制器。
5.一种交换机,包括: 用于与设定流条目的多个控制器中的每一个进行通信的装置,在所述流条目中定义了用于将分组作为流进行统一控制的规则和动作; 用于管理指派给每个控制器的流表的装置,由所述每个控制器在所述流表中设定流条目; 用于在从外部接收分组时在所有流表中搜索与所述分组匹配的流条目的装置; 用于验证与所述每个控制器的连接的状态的装置;以及 用于忽略与所述分组匹配的流条目当中的由连接状态为无效的控制器所设定的流条目、并且根据由连接状态为有效的控制器所设定的流条目的动作来处理所述分组的装置。
6.根据权利要求5所述的交换机,进一步包括: 用于如果存在由连接状态为有效的控制器所设定的多个流条目,则采用流条目本身的优先级为最高的所述流条目的装置;以及 用于如果存在具有相同优先级的多个流条目,则采用设定有流条目的流表的优先级为最高的所述流条目的装置。
7.一种配置网络的方法,包括: 交换机根据流条目来执行对所接收到的分组的处理,在所述流条目中定义了用于将分组作为流进行统一控制的规则和动作; 多个控制器对所述交换机的流表设定所述流条目; 所述交换机将流表指派给所述多个控制器中的每一个; 当从外部接收分组时,所述交换机在所有流表中搜索与所述分组匹配的流条目; 所述交换机验证与所述多个控制器中的每一个的连接的状态;以及 所述交换机忽略与所述分组匹配的流条目当中的由连接状态为无效的控制器所设定的流条目,并且根据由连接状态为有效的控制器所设定的流条目的动作来处理所述分组。
8.根据权利要求7所述的配置网络的方法,进一步包括: 如果存在由连接状态为有效的控制器所设定的多个流条目,则所述交换机采用所述流条目本身的优先级为最高的流条目;以及 如果存在具有相同优先级的多个流条目,则所述交换机采用设定有所述流条目的流表的优先级为最闻的流条目。
9.根据权利要求7或8所述的配置网络的方法,进一步包括: 所述多个控制器中的每一个设定用于分组传入的流条目,以执行负载平衡,在所述流条目中设定了用于匹配用于使所述交换机向每个所述控制器本身传输的分组的匹配条件以及用于将所述分组传输到每个所述控制器本身的动作。
10.一种存储程序的记录介质,所述程序使控制器执行根据权利要求7至9中的任何一项所述的配置网络的方法的操作。
11.一种存储程序的记录介质,所述程序使交换机执行下述步骤: 与设定流条目的多个控制器中的每一个进行通信,在所述流条目中定义了用于将分组作为流进行统一控制的规则和动作;管理流表,所述流表被指派给每个控制器并且由所述每个控制器设定流条目; 当从外部接收分组时,在所有流表中搜索与所述分组匹配的流条目; 验证与所述每个控制器的连接的状态;以及 与所述分组匹配的流条目当中的由连接状态为无效的控制器所设定的流条目被忽略,并且根据由连接状态为有效的控制器所设定的流条目的动作来处理所述分组。
12.根据权利要求11所述的存储程序的记录介质,所述程序进一步使所述交换机执行: 如果存在由连接状态为有效的控制器所设定的多个流条目,则采用所述流条目本身的优先级为最高的流条目;以及 如果存在具有相同优先级的多个流条目,则采用设定有所述流条目的流表的优先级为最闻的流条目。
【文档编号】H04L12/701GK104185972SQ201380012910
【公开日】2014年12月3日 申请日期:2013年3月4日 优先权日:2012年3月5日
【发明者】村上贵彦 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1