《通信系统、节点、控制设备、通信方法以及程序.pdf》由会员分享,可在线阅读,更多相关《通信系统、节点、控制设备、通信方法以及程序.pdf(41页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102884769 A (43)申请公布日 2013.01.16 C N 1 0 2 8 8 4 7 6 9 A *CN102884769A* (21)申请号 201180022831.3 (22)申请日 2011.05.26 2010-123054 2010.05.28 JP H04L 12/771(2013.01) H04L 12/801(2013.01) H04L 29/06(2006.01) (71)申请人日本电气株式会社 地址日本东京都 (72)发明人千叶靖伸 (74)专利代理机构北京东方亿思知识产权代理 有限责任公司 11258 代理人李晓冬 (54) 发。
2、明名称 通信系统、节点、控制设备、通信方法以及程 序 (57) 摘要 本发明提供了一种防止非计划处理在数据转 发网络中布置的节点中被执行的配置,该非计划 处理可以由于设置处理规则(流条目)的延迟而造 成。一种通信系统包括:节点,其处理所接收到的 数据包;以及控制设备,其设置节点中的处理规 则,该处理规则规定比较规则和适于该比较规则 的数据包处理。该节点保存处理规则和与处理规 则相关联的标识符,并且根据所接收到的数据包 的标识符是否对应于与下述处理规则相关联的标 识符来确定是否对所接收到的数据包执行处理, 其中所述处理规则与适于所接收到的数据包的比 较规则相对应,并且所述处理根据与适于所接收 到。
3、的数据包的比较规则相对应的处理规则而被执 行。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.11.06 (86)PCT申请的申请数据 PCT/JP2011/062046 2011.05.26 (87)PCT申请的公布数据 WO2011/149003 JA 2011.12.01 (51)Int.Cl. 权利要求书3页 说明书18页 附图19页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 18 页 附图 19 页 1/3页 2 1.一种通信系统,包括: 节点,所述节点处理所接收到的数据包;以及 控制设备,该控制设备设置所述节点中的处理。
4、规则,所述处理规则定义匹配规则和对 符合所述匹配规则的数据包的处理,其中, 所述节点保存与所述处理规则相关联的标识符,并且根据所接收到的数据包的标识符 是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理, 其中所述处理规则与符合所接收到的数据包的匹配规则相对应,所述处理根据与符合所接 收到的数据包的所述匹配规则相对应的所述处理规则而被执行。 2.根据权利要求1所述的通信系统,其中 所述标识符被用来验证所接收到的数据包与所述处理规则之间的比较结果,所述比较 基于所述匹配规则。 3.根据权利要求1或2所述的通信系统,其中, 所述节点通过将所接收到的数据包与所述匹配规则相比。
5、较来搜索与符合所接收到的 数据包的匹配规则相对应的处理规则,并且在所接收到的数据包的标识符对应于与所搜索 到的处理规则相关联的标识符的情况下,根据所搜索到的处理规则来执行对所接收到的数 据包的处理。 4.根据权利要求1或2所述的通信系统,其中, 所述节点搜索与和所接收到的数据包的标识符相对应的标识符相关联的处理规则,并 且在与所述处理规则相对应的匹配规则符合所接收到的数据包的情况下,根据所搜索到的 处理规则来执行对所接收到的数据包的处理。 5.根据权利要求1至4中任一项所述的通信系统,其中, 所述标识符至少在各自与符合所接收到的数据包的多个匹配规则相对应的多个处理 规则之间是唯一的。 6.根据。
6、权利要求1至4中任一项所述的通信系统,其中, 所述标识符在统计上是唯一的。 7.根据权利要求1至6中任一项所述的通信系统,其中, 所述节点通过检查存储了所接收到的数据包的标识符的额外头部是否被添加到所接 收到的数据包,来确定所接收到的数据包是否包括所述标识符。 8.根据权利要求1至6中任一项所述的通信系统,其中, 所述节点通过检查所接收到的数据包的标识符是否被存储在所接收到的数据包的预 定字段中,来确定所接收到的数据包是否包括所述标识符。 9.根据权利要求1至6和8中任一项所述的通信系统,其中, 所述控制设备控制每个所述节点,使得位于数据包转发路径开始处的节点利用包括标 识符的信息来替换所接收。
7、到的数据包的预定字段中的信息,然后转发所述数据包;以及 位于所述转发路径末尾处的节点将所接收到的数据包的预定字段中的信息恢复为所 述替换之前的内容,然后转发所述数据包。 10.根据权利要求1至9中任一项所述的通信系统,其中, 所述控制设备在设置在数据包转发路径上的节点中的处理规则中设置不同的标识符, 并且控制每个所述节点,使得所述转发路径上的节点顺序地将所接收到的数据包的标识符 权 利 要 求 书CN 102884769 A 2/3页 3 重写为下一跳节点的标识符。 11.根据权利要求1至7和10中任一项所述的通信系统,其中, 所述控制设备控制每个所述节点,使得位于数据包转发路径开始处的节点将。
8、包括标识 符的额外头部添加到所接收到的数据包,然后转发所述数据包;以及 位于所述转发路径末尾处的节点移除所述额外头部,然后转发所述数据包。 12.根据权利要求7或11所述的通信系统,其中, 所述额外头部存储多个标识符,每个标识符用于数据包转发路径上的一个节点中的确 定。 13.一种节点,该节点 保存与标识符相关联的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则 的数据包的处理;以及 根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定 是否执行对所接收到的数据包的处理,并且由此处理所接收到的数据包,其中所述处理规 则与符合所接收到的数据包的匹配规则相对应,并且所述处。
9、理根据与符合所接收到的数据 包的所述匹配规则相对应的所述处理规则而被执行。 14.一种控制设备,该控制设备 生成处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理, 生成标识符,该标识符与所述处理规则相关联并且允许节点确定是否执行对所接收到 的数据包的处理,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处 理规则而被执行;以及 在布置在通信系统中的节点中设置所述处理规则和所述标识符以处理接收到的数据 包。 15.一种通信方法,包括以下步骤: 保存与标识符相关联的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则 的数据包的处理;以及 根据所接收到的数据包的标。
10、识符是否对应于与下述处理规则相关联的标识符来确定 是否执行对所接收到的数据包的处理,并且由此处理所接收到的数据包,其中所述处理规 则与符合所接收到的数据包的匹配规则相对应,并且所述处理根据与符合所接收到的数据 包的所述匹配规则相对应的所述处理规则而被执行。 16.一种通信方法,包括以下步骤: 生成处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理; 生成标识符,该标识符与所述处理规则相关联并且允许节点确定是否执行对所接收到 的数据包的处理,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处 理规则而被执行;以及 在布置在通信系统中的节点中设置所述处理规则和所述标识。
11、符以处理接收到的数据 包。 17.一种程序,所述程序使得设于通信系统中的处理接收到的数据包的节点以执行以 下处理: 存储与标识符相关联的处理规则,所述处理规则定义匹配规则和对符合所述匹配规则 权 利 要 求 书CN 102884769 A 3/3页 4 的数据包的处理;以及 根据所接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定 是否执行对所接收的数据包的处理,其中所述处理规则与符合所接收到的数据包的匹配规 则相对应,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处理规则 而被执行。 18.一种程序,所述程序使得设于通信系统中的控制设备控制处理接收到的数据包的 。
12、节点执行以下处理: 生成处理规则,所述处理规则定义匹配规则和对符合所述匹配规则的数据包的处理; 生成标识符,该标识符与所述处理规则相关联并且允许节点确定是否执行对所接收到 的数据包的处理,所述处理根据与符合所接收到的数据包的所述匹配规则相对应的所述处 理规则而被执行;以及 在所述节点中设置所述处理规则和所述标识符。 权 利 要 求 书CN 102884769 A 1/18页 5 通信系统、 节点、 控制设备、 通信方法以及程序 技术领域 0001 (相关申请的描述) 0002 本发明要求日本专利申请2010-123054(于2010年5月28日提交)的优先权,该 专利申请的全部内容因此被通过引。
13、用结合到本说明书中。 0003 本发明涉及通信系统、节点、控制设备、通信方法以及程序,并且更具体地涉及用 于通过经由布置于网络上的节点来转发数据包而执行通信的通信系统、节点、控制设备、通 信方法以及程序。 背景技术 0004 近来,提出了被称作OpenFlow的技术,如在非专利文献1和2中描述。OpenFlow将 通信识别为端到端流并且执行路径控制、故障恢复、负载均衡以及在每个流基础上的优化。 充当转发节点的OpenFlow交换机具有用于与OpenFlow控制器通信的安全信道,并且根据 流表来操作,其中信息被添加到该流表并且其内容根据来自OpenFlow控制器的指令按需 被重写。在流表中,对于。
14、每个流定义了以下三个的集合:匹配规则(FlowKey/匹配键),根据 匹配规则来匹配数据包头部;定义处理内容的动作(Action);以及流统计信息(Stats)(参 见图30)。 0005 图31示出了在非专利文献2中定义的动作名称和动作的内容的示例。OUTPUT为 用于将数据包输出到规定端口(接口)的动作。SET_VLAN_VID_to_SET_TP_DST为用于修改 数据包头部的字段的动作。 0006 例如,当接收到第一个数据包时,OpenFlow交换机搜索流表以得到具有匹配所 接收到的数据包的头部信息的匹配规则(FlowKey)的条目。如果匹配所接收到的数据包 的条目作为搜索结果而被找到。
15、,则OpenFlow交换机对所接收到的数据包执行在该条目的 Actions字段中描述的处理内容。另一方面,如果匹配所接收到的数据包的条目并未作为搜 索结果而被找到,则OpenFlow交换机经由安全信道将所接收到的数据包转发到OpenFlow 控制器,请求OpenFlow控制器基于所接收到的数据包的传输源/目的地来确定数据包路 径,接收用于该数据包路径的流条目,以及更新流表。 0007 引用列表 0008 专利文献 0009 非专利文献1 0010 Nick McKeown和7个其他作者,“OpenFlow:Enabling Innovation inCampus Networks”,在线,20。
16、10年2月26日搜索,因特网URL:http:/www.openflowswitch. org/documents/openflow-wp-latest.pdf 0011 非专利文献2 0012 “Openflow Switch Specification”版本1.0.0.(线路协议0x01)2010 年4月1日搜索,因特网URL:http:www.openflowswitch.org/documents/ openflow-spec-v1.0.0.pdf 说 明 书CN 102884769 A 2/18页 6 发明内容 0013 技术问题 0014 上文给出的非专利文献的公开因此被通过引用结。
17、合到本说明书中。 0015 由本发明者给出以下分析。接收用于确定所接收到的数据包(参见在图33中的 s2Packet-In)的路径的上述请求的OpenFlow控制器确定所接收到的数据包的转发路径。 为了向主机(B)转发所接收到的数据包和属于相同流的随后的数据包,必须在转发路径上 的所有OpenFlow交换机(在图33中的节点#1和节点#2)中设置流条目。此外,基于来自 网络管理员的指令,OpenFlow控制器必须有时改变已经设置的流条目的动作并且,在这种 情况下,必须改变或者删除该流条目。 0016 当经由OpenFlow协议(参见非专利文献2中的“4.6Flow TableModificat。
18、ion Messages”)来设置、改变或者删除上文所述的流条目时,有时在OpenFlow控制器与 OpenFlow交换机之间产生通信延迟。而此延迟会造成在OpenFlow交换机的某些中设置、改 变或者删除流条目的延迟。因此,在该路径上的OpenFlow交换机中,数据包匹配流表中的 非计划流条目有将执行非计划动作的问题。 0017 图32为示出示例的图,其中,当OpenFlow交换机(节点#1)接收要从主机(A)发 送到主机(B)的数据包并且请求控制器创建流条目时,在中继交换机(节点#2)中设置具有 匹配键X的流条目时造成延迟。在图32中的示例中,节点#2具有含有匹配键B的流条目, 该匹配键B。
19、与要设置的流条目的匹配键X相冲突(在OpenFlow协议中,允许与任何头部字 段的部分匹配作为匹配键,并且根据流条目搜索次序来控制在流条目之间的冲突避免)。因 此,在节点#2中,在完成流条目设置之前从主机(A)发送的数据包未被发送到该数据包应 该被发送到的端口#2,而被发送到端口#1(图32中的ST8)。以此方式,当使用OpenFlow 协议时,可能由于流条目的设置延迟的原因容易造成非计划的转发路径(动作执行)。 0018 在图33中示出了解决这个问题的一个可能的方法。即,(OpenFlow)控制器将流条 目发送到节点#1和#2(参见由图33中的s3和s6所指示的FlowMod(Add)并且同。
20、时,发 送由OpenFlow协议所定义的BarrierRequest(对于Barrier Request,参见在非专利文献 2中的“5.3.7BarrierMessage”;由图33中的s4所指示的Barrier Request/Reply)。当 接收到Barrier Request请求时,节点完成在接收到该Barrier Request之前已经接收到 的处理的执行,并且以“Barrier Reply”来响应(图33中的s5)。此响应允许(OpenFlow) 控制器确认已经正确地设置了流条目。此方法的问题在于(OpenFlow)控制器必须与其中 设置了流条目的所有节点交换BarrierRequ。
21、est/Reply,因此增加了在能够发送用户数据包 之前的时间(图33中的s1(用户数据包)-s10(用户数据包)。 0019 另一方法将使用Stats Request/Reply代替上文所述的BarrierRequest/Reply 来检查每个节点是否具有相对应的条目。与其中使用了Barrier Request/Reply的方法一 样,此方法也要求与其中设置了流条目的所有节点交换消息,以检查是否正确地设置了流 条目,因此增加了在能够发送用户数据包之前的时间(图33中的s1(用户数据包)-s10(用 户数据包)。 0020 此外,如果在设置了流条目之后由于节点故障而丢失某些流条目,则其中使用 。
22、Barrier Request/Reply的方法和其中使用Stats Request/Reply的方法两者都不能够避 说 明 书CN 102884769 A 3/18页 7 免非计划动作的执行。 0021 鉴于前文的描述,本发明的目的是提供一种通信系统、节点、控制设备、通信方法 以及程序,以用于防止诸如上文所述的那些不正确的处理规则(流条目)在节点中命中并且 执行非计划处理的问题。 0022 问题的解决方案 0023 根据本发明的第一方面,提供了一种通信系统,包括:节点,处理所接收到的数据 包;以及控制设备,设置节点中的处理规则,该处理规则定义匹配规则和对符合该匹配规则 的数据包的处理,其中,。
23、该节点保存与处理规则相关联的标识符,并且根据所接收到的数据 包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数 据包的处理,其中该处理规则与符合所接收到的数据包的匹配规则相对应,并且所述处理 根据与符合所接收到的数据包的匹配规则相对应的处理规则而被执行。 0024 根据本发明的第二方面,提供一种了节点,该节点:保存与标识符相关联的处理规 则,处理规则定义匹配规则和对符合匹配规则的数据包的处理;并且根据所接收到的数据 包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对所接收到的数 据包的处理,并且由此处理所接收到的数据包,其中处理规则与符合所接收到的数据包。
24、的 匹配规则相对应,并且所述处理根据与符合所接收到的数据包的匹配规则相对应的处理规 则而被执行。 0025 根据本发明的第三方面,提供一种控制设备,该控制设备生成定义匹配规则和对 符合该匹配规则的数据包的处理的处理规则,生成与该处理规则相关联并且允许节点确定 是否执行对所接收到的数据包的处理的标识符,所述处理根据与符合所接收到的数据包的 匹配规则相对应的处理规则而被执行;并且在布置于通信系统中的节点中设置处理规则和 标识符以处理接收到的数据包。 0026 根据本发明的第四方面,提供一种通信方法,包括以下步骤:保存与标识符相关联 的处理规则,该处理规则定义匹配规则和对符合该匹配规则的数据包的处理。
25、;并且根据所 接收到的数据包的标识符是否对应于与下述处理规则相关联的标识符来确定是否执行对 所接收到的数据包的处理,并且由此处理所接收到的数据包,其中所述处理规则与符合所 接收到的数据包的匹配规则相对应,并且所述处理根据与符合所接收到的数据包的匹配规 则相对应的处理规则而被执行。此方法被与处理所接收到的数据包的、称作节点的特定机 器结合。 0027 根据本发明的第五方面,提供一种通信方法,包括以下步骤:生成处理规则,该处 理规则定义匹配规则和对符合匹配规则的数据包的处理;生成标识符,该标识符与处理规 则相关联且允许节点确定是否执行对所接收到的数据包的处理,其中所述处理根据与符合 所接收到的数据。
26、包的匹配规则相对应的处理规则而被执行;以及在布置于通信系统中的节 点中设置处理规则和标识符以处理接收到的数据包。此方法被与在处理接收到的数据包的 节点中设置处理规则的、被称作控制设备的特定机器相结合。 0028 根据本发明的第六方面,提供了一种使得设于通信系统中的处理接收到的数据包 的节点执行以下处理的程序:存储与标识符相关联的处理规则,该处理规则定义匹配规则 和对符合匹配规则的数据包的处理;以及根据所接收到的数据包的标识符是否对应于与下 述处理规则相关联的标识符来确定是否执行对所接收到的数据包的处理,其中处理规则与 说 明 书CN 102884769 A 4/18页 8 符合所接收到的数据包。
27、的匹配规则相对应,并且处理根据与符合所接收到的数据包的匹配 规则相对应的处理规则而被执行。此程序可以被记录在计算机可读记录介质上。即,本发 明可被具体化为计算机程序产品。 0029 根据本发明的第七方面,提供一种使得设于通信系统中的控制设备控制处理接收 到的数据包的节点执行以下处理的程序:生成处理规则,该处理规则定义匹配规则和对符 合匹配规则的数据包的处理;生成标识符,该标识符与处理规则相关联且允许节点确定是 否执行对所接收到的数据包的处理,其中该处理根据与符合所接收到的数据包的匹配规则 相对应的处理规则而被执行;以及在节点中设置处理规则和标识符。此程序可以被记录在 计算机可读记录介质上。即,。
28、本发明可被具体化为计算机程序产品。 0030 本发明的有利效果 0031 根据本发明,可防止在布置在数据转发网络中的节点中执行非计划处理。 附图说明 0032 图1为示出了本发明的略图的图。 0033 图2为示出了本发明的略图的另一图。 0034 图3为示出了本发明的第一示例性实施例中的通信系统的配置的图。 0035 图4为在发明的第一示例性实施例中的控制设备(控制器)的配置的框图。 0036 图5为示出了图4中所示的控制设备(控制器)的流条目DB中保存的信息的图。 0037 图6为示出了图4中所示的控制设备(控制器)的验证信息DB中保存的信息的图。 0038 图7为示出了本发明的第一示例性实。
29、施例中的节点的配置的框图。 0039 图8为示出了在图7中所示的节点的流表中保存的信息的图。 0040 图9为示出了包括验证信息(或向其添加了验证信息)的数据包的示例的图。 0041 图10为示出了图9中所示的添加了验证信息的额外头部的配置的示例的图。 0042 图11为本发明的第一示例性实施例中的控制设备(控制器)的操作的流程图。 0043 图12为本发明的第一示例性实施例中的(一个或多个)节点的操作的流程图。 0044 图13为示出了本发明的第一示例性实施例中的通信系统中的流的系列的参考 图。 0045 图14为示出了本发明的第一示例性实施例中的通信系统中的流的序列的顺序 图。 0046 。
30、图15为示出了在本发明的第二示例性实施例中的控制设备(控制器)的流条目DB 中保存的信息的图。 0047 图16为示出了在本发明的第二示例性实施例中的控制设备(控制器)的验证信息 DB中保存的信息的框图。 0048 图17为示出了本发明的第二示例性实施例中的节点的配置的框图。 0049 图18为示出了图17中所示的节点的流表中保存的信息的图。 0050 图19为示出了其中包括(嵌入)验证信息的数据包的示例的图。 0051 图20为示出了本发明的第二示例性实施例中的控制设备(控制器)的操作的流程 图。 0052 图21为示出了本发明的第二示例性实施例中的节点的操作的流程图。 说 明 书CN 10。
31、2884769 A 5/18页 9 0053 图22为示出了在本发明的第三示例性实施例中的控制设备(控制器)的流条目DB 中保存的信息的图。 0054 图23为示出了在本发明的第三示例性实施例中的控制设备(控制器)的验证信息 DB中保存的信息的图。 0055 图24为示出了在本发明的第三示例性实施例中的节点的流表中保存的信息的 图。 0056 图25为示出了在本发明的第四示例性实施例中的控制设备(控制器)的流条目DB 中保存的信息的图。 0057 图26为示出了在本发明的第四示例性实施例中的控制设备(控制器)的验证信息 DB中保存的信息的图。 0058 图27为示出了在本发明的第四示例性实施例。
32、中的节点的流表中保存的信息的 图。 0059 图28为示出了在本发明的第五示例性实施例中使用的数据包的示例的图。 0060 图29为示出了图28中添加了验证信息的额外头部的配置的示例的图。 0061 图30为示出了在非专利文献2中描述的流条目的配置的图。 0062 图31为示出了在非专利文献2中描述的动作名称和动作内容的图。 0063 图32为在非专利文献2中描述的OpenFlow控制器(控制器)和流交换机(节点)的 操作的图。 0064 图33为示出了用于使用在非专利文献2中描述的OpenFlow协议来可靠地设置流 条目的操作序列的参考图和顺序图。 具体实施方式 0065 首先,下文描述了本。
33、发明的略图。注意,附加到本略图的附图标记仅仅是示例性的 以帮助理解,而不旨在将本发明限制于图中所示出的实施方式。如图1中所示,当接收到数 据包时,本发明的通信系统的节点10(参见图1中的节点#2)使用在设备自身中保存的处 理规则中包括的匹配规则(匹配键)来提取符合所接收到的数据包的处理规则(步骤1)。接 下来,节点10(参见图1中的节点#2)检查与所提取的处理规则相关联的标识符是否(是或 否)和在所接收到的数据包中包括的标识符完全相同(步骤2)。尽管在上文的描述中节点 10检查与处理规则相关联的标识符和在所接收到的数据包中包括的标识符完全相同,但是 本发明不限于此方法。例如,本发明包括节点10。
34、检查与处理规则相关联的标识符对应于在 所接收到的数据包中包括的标识符的情况。这也适用于随后的步骤和示例性实施例中。如 果作为该检查的结果确认了与处理规则相关联的标识符匹配所接收到的数据包的标识符, 则节点10(参见图1中的节点#2)根据处理规则来执行处理(步骤3)。 0066 上文描述的标识符为由控制设备(控制器)20与处理规则相关联地生成的信息。生 成并且和附加标识符使得能够识别可能符合所接收到的数据包的处理规则。因此,如果通 过使用匹配规则(匹配键)的搜索来提取处理规则,但是标识符并不匹配所接收到的数据包 的标识符,则不执行处理规则的动作。标识符被以各种方式包含在用户数据包中,例如,标 识。
35、符被添加到如图1和图2中所示的用户数据包中,或者被嵌入在用户数据包的特定区域 中(参见图19)。 说 明 书CN 102884769 A 6/18页 10 0067 即使当在本说明书中之前提到的条件发生时,例如,当处理规则的设置被延迟或 者当流条目的一部分由于在节点中的错误而丢失时,上文所述的配置避免非计划动作执 行。 0068 在图1中的示例中,节点使用匹配规则(匹配键)来提取符合所接收到的数据包 的处理规则,之后,检查与所提取的处理规则相关联的标识符是否匹配所接收到的数据包 的标识符。作为其替代,如图2中所示的另一方法也是可能的,其中,节点使用标识符来提 取符合所接收到的数据包的处理规则,。
36、并且之后,检查所提取的处理规则的匹配规则(匹配 键)是否匹配所接收到的数据包的内容(要与匹配规则(匹配键)相比较的头部信息)。 0069 在这种情况下,同样地,如果通过使用标识符的搜索提取了处理规则但是匹配规 则(匹配键)并不匹配所接收到的数据包的内容(头部信息),则不执行处理规则的动作。如 在图1中示出的配置中,例如,当延迟处理规则的设置时,该配置也避免非计划动作执行。 0070 (第一示例性实施例) 0071 接下来,将参照附图来详细地描述本发明的第一示例性实施例。图3为示出了本 发明的第一示例性实施例中的通信系统的配置的图。参照图3,通信系统包括三个节点10、 控制设备(控制器)20,以。
37、及经由节点10彼此通信的主机(A)和主机(B)。尽管在图3中的 示例中示出了三个节点10、控制设备(控制器)20以及两个主机(主机(A)、主机(B),但是 可以使用任意多个节点、控制设备(控制器)以及主机。 0072 图4为示出了控制设备(控制器)20的具体配置的图。参照图4,控制设备(控制器) 20包括:流条目数据库(流条目DB)21,其存储处理规则(流条目)和与处理规则相关的验证 信息;拓扑管理单元22,其基于经由节点通信单元26收集的、节点10的连接关系来构建网 络拓扑信息;路径/动作计算单元23,其基于由拓扑管理单元22构建的网络拓扑信息来计 算数据包转发路径和要由转发路径上的节点10。
38、执行的动作;流条目管理单元24,其建立由 路径/动作计算单元23与验证信息生成单元28分别计算的处理规则(流条目)与验证信息 之间的关联,将相关联的处理规则(流条目)和验证信息登记在流条目DB 21中,处理从节点 10接收到的处理规则(流条目)添加请求,更新处理规则(流条目)和验证信息;控制消息处 理单元25;与节点10通信的节点通信单元26;以及验证信息生成单元28,其响应于来自流 条目管理单元24的请求,生成要与处理规则相关联的验证信息或者从验证信息数据库(验 证信息DB)27中检索验证信息。验证信息指与用来验证所接收到的数据包与基于匹配规则 的处理规则之间的比较结果(匹配与否)的标识符相。
39、对应的信息。 0073 此外,控制消息处理单元25包括:消息分析/处理单元251,其分析从节点10接 收到的控制消息并且执行必要的处理;以及消息生成单元252,其生成要发送到节点10的 消息。 0074 图5为示意性地示出了在流条目DB 21(流条目和验证信息)中保存的信息的图。 例如,从图5的顶部起的第一至第三条目指示设置在其DPID(节点10的标识符:数据通道 标识符)为1至3的节点中的处理规则(流条目)和与处理规则相关联的验证信息(从顶部 起的第四至第六条目指示相似内容)。 0075 当接收与匹配键“A”匹配的数据包时,DPID为1的节点(例如,图3中的节点#1) 执行由自顶部起的第一条。
40、目所指示的处理。也就是说,节点将包括验证信息“CA”的头部添 加到数据包,并且根据动作字段(Actions)从第九端口输出该数据包。类似地,当从DPID 说 明 书CN 102884769 A 10 7/18页 11 为1的节点(例如,图3中的节点#1)接收到与匹配键“A”匹配的数据包时,DPID为2的节 点(例如,图3中的节点#2)从第六端口输出该数据包。当从DPID为2的节点(例如,图3 中的节点#2)接收到与匹配键“A”匹配的数据包时,DPID为3的节点(例如,图3中的节点 #3)从该数据包中移除包括验证信息“CA”的头部,并且从第一端口输出该数据包。作为上 述处理的结果,在验证信息“C。
41、A”被用于匹配期间,控制转发路径使得验证信息“CA”被添加 到与匹配键“A”匹配的数据包并且经由规定的路径来转发该数据包。在实际的流条目DB 21中,图5中示出的匹配键“A”、“B”以及“X”中的每一个由规则(FlowKey;可使用通配符) 组成,该规则被与诸如图30中所示的接收到的数据包的头部进行比较。 0076 图6为示意性地示出了在验证信息DB 27中保存的信息(验证信息)的图。如图 6中所示,验证信息DB 27存储匹配键“A”、“B”、“X”与验证信息“CA”、“CB”、 “CX”之间的对应关系。验证信息生成单元28响应于来自流条目管理单元24的请求而生成 与处理规则(流条目)相对应的。
42、验证信息,并且将所生成的验证信息登记在验证信息DB 27 中。这样的验证信息可以由使用匹配规则(在下文中称为“匹配键”)或其它信息作为参数 的预定函数(哈希函数等)来生成,由此使得验证信息至少在各个与符合所接收到的数据包 的多个匹配规则相对应的多个处理规则之中是唯一的,也就是说,由此使得相同的验证信 息至少未被分配给多个处理规则。在统计上唯一的验证信息也可以使用随机数生成(稍后 将详细地描述示例)。被提供来防止在可能彼此冲突的多个处理规则(流条目)之中的验证 信息的重复的验证信息DB 27无需总是具有图6中所示的格式。此外,通过随机地或统计 地避免验证信息的重复可以省略验证信息DB 27。 0。
43、077 注意,如果不需要保存控制设备(控制器)20命令节点10添加或者更新的处理规 则(流条目)以及与该处理规则相关联的验证信息,则可以省略流条目DB 21。类似地,如果 不需要保存与处理规则相关联地生成的验证信息,则可以省略验证信息DB 27。此外,其中 流条目DB 21和/或验证信息DB 27被单独地提供在外部服务器中的另一配置也是可能 的。 0078 上文描述的控制设备(控制器)20可通过将至少以下两个添加到在非专利文献1 和2中描述的OpenFlow控制器中来实施。一个为验证信息生成单元28,而另一个为在节点 10中设置处理规则(流条目)和与该处理规则相关联的验证信息的功能。 0079。
44、 图7为示出了节点10的具体配置的图。参照图7,节点10包括与控制设备(控制 器)20通信的控制设备通信单元11、管理流表13的流表管理单元12、数据包缓冲区14以 及转发处理单元15。注意,节点10无需总是包括数据包缓冲区14。 0080 转发处理单元15包括表搜索单元153和动作执行单元154。表搜索单元153包括 验证信息匹配单元152,其将与处理规则(流条目)相关联的验证信息与添加到所接收到数 据包的验证信息相比较以确定它们是否匹配。表搜索单元153搜索流表13以获得处理规 则(流条目),该处理规则具有符合所接收到的数据包的匹配键并且其验证信息匹配所接收 到的数据包的验证信息,并且将处。
45、理内容(动作)输出到动作执行单元154。动作执行单元 154执行从表搜索单元153输出的处理内容(动作)。 0081 上文所述的节点10可通过向OpenFlow交换机添加验证信息匹配单元152并且通 过配置流表13使得验证信息可以被与处理规则相关联地保存来实施。节点10的表(流条 目)搜索单元153(其包括验证信息匹配单元152)可以通过由配置节点10的计算机所执 说 明 书CN 102884769 A 11 8/18页 12 行的程序来配置。 0082 图8为示意性地示出了在图5中的DPID为2的节点(图3中节点#2)的流表13 中保存的信息(流条目和验证信息)的图。如图8中所示,流表13包。
46、括流条目和验证信息, 其和图5中的具有相对应DPID的流条目DB 21中的条目的那些相同。对于图5中的DPID 为1或3的节点(节点#1或#3)中的每一个,流表13以相同方式包括与每一个DPID相对 应的流条目和验证信息。 0083 图9为示出了基于由控制设备(控制器)20设置的动作(设置包括“CA”的头部;见 图5中具有DPID=1的节点的动作(Actions)由节点10所创建的添加了验证信息的数据 包的配置的图。在图9中的示例中,添加了验证信息的数据包32具有下面这样的配置,其 中包括验证信息的添加了验证信息的额外头部33被添加到用户数据包31的开始处。 0084 图10为示出了添加了验证。
47、信息的额外头部33的配置的示例的图。在图10中的 示例中,添加了验证信息的额外头部33具有下面这样的配置,其中验证信息被添加到MAC 目的地地址(MAC DA)、MAC源地址(MACSA)、更高层协议类型(Ether Type)以及总头部长度 (总长度)。在图10中的示例中,通过以匹配键和随机数作为参数的预定函数(哈希函数等) 计算的值(f(匹配键,随机数)被用作验证信息。 0085 接下来,描述上文所述的控制设备(控制器)20和节点10的操作。图11为示出了 控制设备(控制器)20的流程图。参照图11,当从节点10接收查询(处理规则创建请求;见 图12中的步骤S 111)时(步骤S001;P。
48、acket-In),控制设备(控制器)20检查查询数据包 是否包括验证信息(步骤S002)。如果查询数据包包括验证信息(在步骤S002为是),则已经 创建与数据包相对应的处理规则,并且因此控制设备(控制器)20从流条目DB21中检索与 数据包相对应的处理规则和与处理规则相关联的验证信息(步骤S012),并且将控制转到步 骤S008。 0086 另一方面,如果查询数据包不包括验证信息(在步骤S002为否),则控制设备(控 制器)20获取由拓扑管理单元22构建的网络拓扑信息并且计算数据包的转发路径(步骤 S003)。 0087 除了当从数据包转发路径计算的结果确定因为转发路径不能被创建或者因为路 。
49、径上的节点已经失效而不能够转发数据包时(在步骤S004中为否)之外,控制设备(控制器) 20计算与所计算的转发路径相对应的动作(步骤S005)。接下来,控制设备(控制器)20生成 与应用于路径上的节点10中每一个的处理规则(流条目)相关联的验证信息(步骤S006)。 此外,控制设备(控制器)20生成应用于路径上的节点10中每一个的处理规则(流条目),其 中处理规则(流条目)包括用于标识查询数据包所属于的流的匹配键和动作(步骤S007)。 0088 当完成处理规则(流条目)和验证信息的获取或生成时,控制设备(控制器)20生 成用于设置所生成的处理规则(流条目)和验证信息的设置指令(Flow Mod(Add)(步骤 S008),并且将用于设置处理规则(流条目)和验证信息的设置指令(Flow Mod(Add)发送 到由处理规则(流条目)创建的数据数据包转发路径上的节点10(步骤S009)。