检测软件定义网络(SDN)中的路由环路的系统和方法技术方案

技术编号:19547970 阅读:96 留言:0更新日期:2018-11-24 21:19
本申请描述了新的数据包规则引入到计算机网络中时用于检测计算机网络中的异常路由环路的系统和方法。

System and Method for Detecting Routing Loops in Software Definition Network (SDN)

This application describes a system and method for detecting abnormal routing loops in computer networks when new packet rules are introduced into computer networks.

【技术实现步骤摘要】
检测软件定义网络(SDN)中的路由环路的系统和方法
本申请涉及一种用于检测计算机网络中,或更具体地,软件定义网络(SDN)中的异常路由环路的系统和方法。
技术介绍
通常网络控制器使用的用于确定通过交换机网络的网络数据包的路径的通信协议是OpenFlow通信协议。该通信协议使网络管理员能够在诸如路由器、集线器、无线接入点和/或常规交换机等的网络交换机中执行各种类型的协议。OpenFlow是由开放网路基金会(ONF)发布的OpenFlow交换机规范中定义的,其中ONF是软件提供商、内容交付网络和网络设备供应商的联盟,其目的是促进软件定义网络。OpenFlow通信协议的关键特性是其允许驻留在一个平面上的网络交换机由驻留在不同平面上的控制器管理。正是这一特性使得这种通信协议非常适用于软件定义网络(SDN)。需注意,SDN通常包括两个独立的平面,即控制平面和数据平面。这使得网络的路由机制与传统网络大不相同。虽然SDN为用户提供了更灵活的网络控制,但是SDN有其固有的缺点。此类网络面临的共同挑战在于,当交换机接收到来自控制器的不一致路由信息时,SDN的控制平面与其数据平面中的交换机之间可能存在信息安全问题。OpenFlow协议在数据平面定义了三种类型的表。第一类表包括“流表”,它将输入的数据包与特定流相匹配,并指定要对数据包执行的功能。应注意,可以有多个可配置为以流水线方式操作的流表。流表可以将流导向第二类表,该第二类型表为“组表”。组表包含多个条目,其中每个条目可以触发影响一个或多个流的各种动作。第三类表是“计量表”,这类表可以在流上触发与性能相关的各种动作。通常将流定义为穿过网络的一系列数据包,它们共享数据包报头字段值集。例如,流可以包括具有相同源和目的IP地址的所有数据包,或者具有相同VLAN标识符的所有数据包。值得注意的是,SDN中控制器的功能是根据接收到的转发策略计算流条目,一旦计算出来,控制器就会将流条目传送到位于数据平面的交换机。交换机接收到流条目后,为流表创建转发条目,并根据创建的流表执行数据包的转发。应注意,不同的应用会生成不同的转发策略。例如,数据包过滤应用会生成不同于网络隔离应用生成的转发策略。这些应用生成的策略创建循环后,会发生路由冲突,因为数据包无法正确转发到其预期的目的地。SDN中通常发生的路由冲突包括环回、黑洞以及引起不可达问题的其它相似类型的各种冲突。在现有的SDN网络中,已有人提出在网络策略到达数据转发层之前,应对网络策略进行检测和评估,以确定是否有漏洞与每个网络策略相关联。本领域技术人员提出的一种解决方案是,在实施新的网络软件或配置之前,对这些条目进行彻底检查并对错误或故障进行测试。通过运行新引入的策略条目的所有可能的代码路径,可以检测条目中的错误和故障,但是这种方法可能不适用于较大的策略条目。除此之外,负责在网络上执行检查的系统管理员必须能够访问SDN控制器的软件和配置。这是不切实际的,因为大多数设置中,第三方通常不被授予访问SDN控制器的管理员权限,而且期望SDN的管理员彻底检查并分别核查所有新条目是一项重大任务。此外,这些方法是离线运行的,只有错误或故障发生之后才能检测到。提出的另一种解决方案是在SDN的控制平面与其数据平面之间增加中间层。在控制平面和数据平面之间增加该中间层的解决方案是指增加配置为拦截控制器和交换机之间的交互信息(例如,packet-in或flow-mod指令),并提取网络状态信息的中间层。将规则传送到数据转发层之前,在该中间层对新引入的规则进行检测、拦截和验证。通过这种方式,确保最终传送到数据转发层的规则与SDN网络的现有规则不相冲突。然而,目前为止提出的解决方案都无法做出快速反应。因此,所提出的解决方案不能实时检测和验证新引入的策略或转发规则。即便能够检测和验证这些新策略,现有的解决方案也无法提出适当的解决方案来解决检测到的冲突。此外,目前为止提出的解决方案也不能检测涉及数据包报头修改的策略违规。具体地,现有解决方案无法检测被重写或被封装操作封装的数据包报头。鉴于以上原因,本领域技术人员不断努力,提出了一种实时检测和防止软件定义网络中涉及报头修改的路由环路的设备和方法。
技术实现思路
提出了当向计算机网络引入新的数据包转发规则修改时检测计算机网络中的异常路由环路的系统和方法,下面根据本申请实施例对这些系统和方法进行了说明。根据本申请的系统和方法的实施例提出的第一改进是,即使新的数据包转发规则修改包括数据包报头修改指令,或者新的数据包转发规则修改影响包含数据包报头修改指令的现有数据包转发规则时,也可以检测到由于向计算机系统引入新的数据包转发规则修改而出现的转发环路。根据本申请的系统和方法的实施例提出的第二改进是,通过使用多维前缀树(Trie树)可以快速有效地定位受影响的等价类及其相关联的连接等价类,从而可以实时检测异常路由环路。上述改进是根据以以下方式操作的本申请的实施例提供的。根据本申请的第一方面,公开了一种用于检测计算机网络中的异常路由环路的验证系统,该系统包括:位于所述计算机网络的网络设备与所述计算机网络的控制器之间的环路检测模块,所述环路检测模块配置为:在所述网络设备接收到数据包规则修改之前,拦截由所述控制器发起的所述数据包规则修改;识别受所述拦截的数据包规则修改影响的等价类;确定与每个受影响的等价类相关联的连接等价类;以及利用所述受影响的等价类以及与每个受影响的等价类相关联的所述连接等价类,来验证受所述拦截的数据包规则修改影响的数据包的路由。根据本申请的第一方面的一实施例,用于识别受所述拦截的数据包规则修改影响的所述等价类的所述步骤包括所述环路检测模块配置为:将通过所述计算机网络发送的数据包分为多个等价类,其中每个等价类包括数据包集,所述数据包集受公共数据包规则集的影响;以及确定受所述拦截的数据包规则修改影响的等价类。根据本申请的第一方面的一实施例,用于识别受所述拦截的数据包规则修改影响的所述等价类的所述步骤包括:所述环路检测模块配置为:将所述拦截的数据包规则修改应用于利用现有数据包规则生成的多维前缀树(Trie树),其中所述Trie树包括多个子树,其中每个子树表示数据包报头域,所述Trie树的每个叶存储相关联的数据包规则集;通过遍历所述Trie树,识别受所述拦截的数据包规则修改影响的现有数据包规则,以确定具有与所述拦截的数据包规则修改重叠的现有数据包规则的叶;以及基于所述重叠的现有数据包规则生成所述受影响的等价类。可选地,用于确定与每个受影响的等价类相关联的所述连接等价类的所述步骤包括:所述环路检测模块配置为:识别具有数据包规则或具有包含报头修改指令的数据包的受影响的等价类;以及为每个所述识别的等价类生成连接等价类。可选地,为每个所述识别的等价类生成所述连接等价类的所述步骤包括:所述环路检测模块配置为:利用所述多维前缀树(Trie树)在所述识别的等价类的数据包的报头修改之前或之后,确定与所述识别的等价类的数据包重叠的现有数据包规则;根据重叠规则构建连接等价类。可选地,根据重叠规则为每个所述识别的等价类构建连接等价类的所述步骤包括:所述环路检测模块配置为:针对每个所述识别的等价类,生成前向过滤器,其中所述前向过滤器包括所述报头修改之本文档来自技高网
...

【技术保护点】
1.一种环路检测模块,设置在验证系统内,用于检测计算机网络中的异常路由环路,所述环路检测模块位于所述计算机网络的网络设备与所述计算机网络的控制器之间,所述环路检测模块包括:处理器;以及所述处理器可读的非暂时性介质,所述非暂时性介质存储指令,所述指令由所述处理器执行时使得所述处理器:在所述网络设备接收到数据包规则修改之前,拦截由所述控制器发起的所述数据包规则修改;识别受所述拦截的数据包规则修改影响的等价类;确定与每个受影响的等价类相关联的连接等价类;以及利用所述受影响的等价类以及与每个受影响的等价类相关联的所述连接等价类,来验证受所述拦截的数据包规则修改影响的数据包的路由。

【技术特征摘要】
2017.05.15 SG 10201703959R1.一种环路检测模块,设置在验证系统内,用于检测计算机网络中的异常路由环路,所述环路检测模块位于所述计算机网络的网络设备与所述计算机网络的控制器之间,所述环路检测模块包括:处理器;以及所述处理器可读的非暂时性介质,所述非暂时性介质存储指令,所述指令由所述处理器执行时使得所述处理器:在所述网络设备接收到数据包规则修改之前,拦截由所述控制器发起的所述数据包规则修改;识别受所述拦截的数据包规则修改影响的等价类;确定与每个受影响的等价类相关联的连接等价类;以及利用所述受影响的等价类以及与每个受影响的等价类相关联的所述连接等价类,来验证受所述拦截的数据包规则修改影响的数据包的路由。2.根据权利要求1所述的环路检测模块,其中用于指示所述处理器识别受所述拦截的数据包规则修改影响的所述等价类的所述指令包括:指令,用于指示所述处理器:将通过所述计算机网络发送的数据包分为多个等价类,其中每个等价类包括数据包集,所述数据包集受公共数据包规则集的影响;以及确定受所述拦截的数据包规则修改影响的等价类。3.根据权利要求1所述的环路检测模块,其中用于指示所述处理器识别受所述拦截的数据包规则修改影响的所述等价类的所述指令包括:指令,用于指示所述处理器:将所述拦截的数据包规则修改应用于利用现有数据包规则生成的多维前缀树(Trie树),其中所述Trie树包括多个子树,其中每个子树表示数据包报头域,所述Trie树的每个叶存储相关联的数据包规则集;通过遍历所述Trie树,识别受所述拦截的数据包规则修改影响的现有数据包规则,以确定具有与所述拦截的数据包规则修改重叠的现有数据包规则的叶;以及基于所述重叠的现有数据包规则生成所述受影响的等价类。4.根据权利要求1至3中任一项所述的环路检测模块,其中用于指示所述处理器确定与每个受影响的等价类相关联的所述连接等价类的所述指令包括:指令,用于指示所述处理器:识别具有数据包规则或具有包含报头修改指令的数据包的受影响的等价类;以及为每个所述识别的等价类生成连接等价类。5.根据权利要求4所述的环路检测模块,其中用于指示所述处理器为每个所述识别的等价类生成所述连接等价类的所述指令包括:指令,用于指示所述处理器:利用所述多维前缀树(Trie树)在所述识别的等价类的数据包的报头修改之前或之后,确定与所述识别的等价类的数据包重叠的现有数据包规则;根据重叠规则构建连接等价类。6.根据权利要求5所述的环路检测模块,其中用于指示所述处理器根据重叠规则构建连接等价类的所述指令包括:指令,用于指示所述处理器:针对每个所述识别的等价类,生成前向过滤器,其中所述前向过滤器包括所述报头修改之后的数据包;通过将所述前向过滤器应用于所述多维前缀树(Trie树),识别与所述前向过滤器重叠的现有数据包规则,来确定与所述前向过滤器重叠的所述现有数据包规则;以及将受到与所述前向过滤器重叠的所述现有数据包规则影响的数据包进行分组,以形成连接等价类。7.根据权利要求5所述的环路检测模块,其中用于指示所述处理器根据重叠规则构建连接等价类的所述指令包括:指令,用于指示所述处理器:针对每个所述识别的等价类,生成第一后向过滤器,其中,所述第一后向过滤器包括通过所述报头修改指令将第一原始数据包集修改为所述识别的等价类的数据包之前的所述第一原始数据包集;通过将所述第一后向过滤器应用于所述多维前缀树(Trie树)识别与所述第一后向过滤器重叠的现有数据包规则,来确定与所述第一后向过滤器重叠的所述现有数据包规则;以及将受到与所述第一后向过滤器重叠的所述现有数据包规则影响的数据包进行分组以形成连接等价类。8.根据权利要求5所述的环路检测模块,其中用于指示所述处理器根据重叠规则构建连接等价类的所述指令包括:指令,用于指示所述处理器:针对每个所述识别的等价类,生成第一后向过滤器和第二后向过滤器,其中,所述第一后向过滤器包括通过所述报头修改指令将第一原始数据包集修改为所述识别的等价类的数据包之前的所述第一原始数据包集,所述第二后向过滤器包括通过所述报头修改指令将第二原始数据包集修改为所述识别的等价类的数据包之前的所述第二原始数据包集;通过将所述第一后向过滤器和所述第二后向过滤器应用于所述多维前缀树(Trie树),识别与所述第一后向过滤器和所述第二后向过滤器重叠的现有数据包规则,来确定与所述第一后向过滤器和所述第二后向过滤器重叠的所述现有数据包规则;以及将受到与所述第一后向过滤器重叠的所述现有数据包规则影响的数据包进行分组,以形成与所述第一后向过滤器相关联的连接等价类,并将受到与所述第二后向过滤器重叠的所述现有数据包规则影响的数据包进行分组,以形成与所述第二后向过滤器相关联的连接等价类。9.根据权利要求1至8中任一项所述的环路检测模块,其中用于指示所述处理器验证受所述拦截的数据包规则修改影响的数据包的所述路由的所述指令包括:指令,用于指示所述处理器:利用与每个所述受影响的等价类相关联的连接等价类,为每个所述受影响的等价类构建转发图,其中每个所述转发图表明...

【专利技术属性】
技术研发人员:李琦朱洁陈艳毓李漓春
申请(专利权)人:华为国际有限公司清华大学深圳研究生院
类型:发明
国别省市:新加坡,SG

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1