检测软件定义网络(SDN)中的控制平面循环的机制制造技术

技术编号:19248318 阅读:22 留言:0更新日期:2018-10-24 10:00
一种由担当软件定义网络(SDN)中的控制器的网络设备执行的方法。该方法检测SDN网络中的控制路径循环。所述方法包括从交换机接收数据包输入消息,其中所述数据包输入消息包括数据包。该方法还包括:确定与数据包相关联的包标识符;基于与数据包相关联的包标识符来确定关键字;确定与关键字相关联的条目是否存在于循环检测高速缓存中;响应于与关键字相关联的条目存在于循环检测高速缓存中的确定,更新与条目相关联的计数器值;以及响应于与条目相关联的计数器值达到阈值的确定,确定该数据包处于控制路径循环中。

Detecting the mechanism of control plane loops in software defined network (SDN)

A method of implementing a network device that acts as a controller in a software defined network (SDN). This method detects the loop of control path in SDN network. The method includes receiving a packet input message from a switch, wherein the packet input message includes a packet. The method also includes: determining the packet identifier associated with the packet; determining the keyword based on the packet identifier associated with the packet; determining whether the entry associated with the keyword exists in the cyclic detection cache; and responding to the determination that the entry associated with the keyword exists in the cyclic detection cache, Updates the counter value associated with the entry; and determines that the packet is in the control path loop in response to the determination that the counter value associated with the entry reaches a threshold.

【技术实现步骤摘要】
【国外来华专利技术】检测软件定义网络(SDN)中的控制平面循环的机制
本专利技术的实施例涉及软件定义网络(SDN)领域,并且更具体地,涉及检测SDN网络中的控制平面循环。
技术介绍
软件定义网络(SDN)是一种采用分离式架构网络的计算机联网方法,其中转发(数据)平面与控制平面相分离。分离式架构网络的使用通过将网络的智力转移到监视交换机的一个或多个控制器中来简化实现转发平面的网络设备(例如,交换机)。SDN通过提供可编程网络基础设施来促进网络层的快速开放式创新。开放流(OpenFlow)是一种协议,它使SDN网络中的控制器和交换机能够相互通信。开放流支持对网络中的流量控制策略进行动态编程。开放流交换机向控制器发送数据包输入(Packet-In)消息,以将对数据包的控制转移到控制器。开放流交换机可能出于各种原因决定将对数据包的控制转移到控制器,所述原因如无效的生存时间(TTL)或处理数据包的匹配流条目的不可用性。控制器向交换机发送数据包输出(Packet-Out)消息,以指示交换机如何处理对数据包的进一步处理。数据包输出消息可以指示交换机通过开放流管道处理数据包,将数据包发送给特定组,或者在特定端口上输出数据包。数据包输出消息包含指定交换机应如何处理数据包的动作列表。所述动作列表可以包括例如数据包修改动作、组处理动作、以及指示交换机向特定端口输出数据包的输出动作。所述动作列表可以包括对OFPP_TABLE保留端口的输出动作,该动作指示交换机从第一个流表开始通过开放流管道(pipeline)处理数据包。在一些情况下,作为匹配流条目、表错失(tablemiss)或组桶(groupbucket)动作的结果,发送到OFPP_TABLE保留端口的数据包可能被转发回控制器(例如,作为数据包输入消息)。数据包输入消息和数据包输出消息的不正确使用可以创建控制平面循环,其中数据包在被发送到网络的数据路径中之后继续返回控制器。对于SDN网络,控制平面循环可能比数据平面循环更危险。通常,数据平面循环仅影响网络的一部分。然而,控制平面循环消耗控制器的宝贵的处理资源,这可能阻塞控制器并使整个SDN网络不可用。
技术实现思路
一种由担当软件定义网络SDN中的控制器的网络设备执行的方法。所述方法检测SDN网络中的控制路径循环。所述方法包括从交换机接收数据包输入消息,其中所述数据包输入消息包括数据包。所述方法还包括:确定与数据包相关联的包标识符;基于与数据包相关联的包标识符来确定关键字;确定与关键字相关联的条目是否存在于循环检测高速缓存中;响应于确定与关键字相关联的条目存在于循环检测高速缓存中,更新与条目相关联的计数器值;以及响应于确定与条目相关联的计数器值达到阈值,确定所述数据包处于控制路径循环中。一种被配置为检测软件定义网络(SDN)中的控制路径循环的网络设备。所述网络设备担当SDN网络中的控制器。所述网络设备包括用于存储控制路径循环检测组件的非暂时性机器可读存储介质和通信耦合到非暂时性机器可读存储介质的处理器。处理器被配置为执行控制路径循环检测组件。控制路径循环检测组件被配置为从交换机接收数据包输入消息,其中数据包输入消息包括数据包。控制路径循环检测组件还被配置为:确定与数据包相关联的包标识符;基于与数据包相关联的包标识符来确定关键字;确定与关键字相关联的条目是否存在于循环检测高速缓存中;响应于与关键字相关联的条目存在于循环检测高速缓存中的确定,更新与条目相关联的计数器值;以及响应于与条目相关联的计数器值达到阈值的确定,确定数据包处于控制路径循环中。非暂时性机器可读介质具有存储在其中的计算机代码,所述计算机代码将由网络设备的一个或多个处理器的集合执行。当由网络设备执行计算机代码时,使网络设备执行用于检测软件定义网络(SDN)中的控制路径循环的操作。网络设备担当SDN网络中的控制器。操作包括:从交换机接收数据包输入消息,其中数据包输入消息包括数据包。操作还包括:确定与数据包相关联的包标识符;基于与数据包相关联的包标识符来确定关键字;确定与关键字相关联的条目是否存在于循环检测高速缓存中;响应于确定与关键字相关联的条目存在于循环检测高速缓存中,更新与所述条目相关联的计数器值;以及响应于确定与条目相关联的计数器值达到阈值,确定数据包处于控制路径循环中。附图说明通过参考用于说明本专利技术实施例的以下描述和附图,可以最好地理解本专利技术。附图中:图1是根据一些实施例的在其中可以执行控制路径循环检测的软件定义网络(SDN)的框图。图2是根据一些实施例的可能引起控制路径循环的编程有流条目的交换机的框图。图3是根据一些实施例的由控制器执行的使用基于数据包内的现有字段的值的包标识符来检测SDN网络中的控制路径循环的过程的流程图。图4是根据一些实施例的由控制器执行的使用控制器生成的包标识符来检测SDN网络中的控制路径循环的过程的流程图。图5A示出了根据一些实施例的示例性网络内的网络设备(ND)之间的连接性以及ND的三种示例性实现。图5B示出了根据一些实施例的用于实现专用网络设备的示例性方式。图5C示出了根据一些实施例的可以耦合虚拟网元(VNE)的各种示例性方式。图5D示出了根据一些实施例的在每个ND上具有单一网元(NE)的网络,且在该直观方案中,对比了(传统路由器常用的)传统分布式方案与用于维护可达性和转发信息(也被称为网络控制)的集中式方案。图5E示出了根据一些实施例的以下简单情况:每一个ND实现单一NE,但是集中式控制平面已经将不同ND中的多个NE抽象为(以表示)虚拟网络之一中的单一NE。图5F示出了根据一些实施例的以下情况:在不同ND上实现多个VNE,并且所述多个VNE彼此耦合,以及集中式控制平面已经将这多个VNE加以抽象,使得它们表现为虚拟网络之一中的单一VNE。图6示出了根据一些实施例的具有集中式控制平面(CCP)软件的通用控制平面设备。具体实施方式以下说明描述了用于检测软件定义网络(SDN)中的控制平面循环的方法和装置。在以下描述中,阐述了大量的具体细节,例如逻辑实现、操作码(opeode)、用于指定运算数的手段、资源分区/共享/复制实现、系统组件的类型和相互关系、以及逻辑分区/整合选择,以提供对本专利技术的更全面的理解。然而,本领域技术人员将意识到:本专利技术可以在没有这种具体细节的情况下实施。在其它实例中,并未详细示出控制结构、门级别电路和全软件指令序列,以不使本专利技术模糊。在使用所包括的描述的情况下,本领域普通技术人员将能够在不进行过度试验的情况下实现恰当的功能。说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示了所描述的实施例可以包括特定特征、结构、或特性,但是每个实施例可以不一定包括该特定特征、结构、或特性。此外,这种短语不一定参考同一实施例。此外,当结合实施例来描述具体特征、结构或特性时,应认为结合其他实施例(不管是否是显式描述的)来实现这种特征、结构或特性是在本领域技术人员的知识内的。在本文中,括号中的文本和具有虚线边界(例如,长划点虚线、短划线虚线、点虚线、以及点)的框可以用于示出向本专利技术实施例添加附加特征的可选操作。然而,这种标注不应当被视为意味着:在本专利技术的某些实施例中,他们是仅有的选项或可选操作,和/或具有实线边界的框不是可选的。在以下本文档来自技高网
...

【技术保护点】
1.一种由担当软件定义网络SDN中的控制器的网络设备执行的方法,所述方法检测SDN网络中的控制路径循环,所述方法包括:从交换机接收(305,405)数据包输入消息,其中所述数据包输入消息包括数据包;确定(340,440)与所述数据包相关联的包标识符;基于与所述数据包相关联的包标识符来确定(345,445)关键字;确定(350,450)与所述关键字相关联的条目是否存在于循环检测高速缓存中;响应于确定与所述关键字相关联的条目存在于所述循环检测高速缓存中,更新(355,455)与所述条目相关联的计数器值;以及响应于确定与所述条目相关联的计数器值达到阈值,确定(365,465)所述数据包处于控制路径循环中。

【技术特征摘要】
【国外来华专利技术】1.一种由担当软件定义网络SDN中的控制器的网络设备执行的方法,所述方法检测SDN网络中的控制路径循环,所述方法包括:从交换机接收(305,405)数据包输入消息,其中所述数据包输入消息包括数据包;确定(340,440)与所述数据包相关联的包标识符;基于与所述数据包相关联的包标识符来确定(345,445)关键字;确定(350,450)与所述关键字相关联的条目是否存在于循环检测高速缓存中;响应于确定与所述关键字相关联的条目存在于所述循环检测高速缓存中,更新(355,455)与所述条目相关联的计数器值;以及响应于确定与所述条目相关联的计数器值达到阈值,确定(365,465)所述数据包处于控制路径循环中。2.根据权利要求1所述的方法,其中,还基于与所述数据包输入消息相关联的上下文信息来确定所述关键字。3.根据权利要求2所述的方法,其中,所述与所述数据包输入消息相关联的上下文信息包括向所述控制器发送所述数据包输入消息的交换机的指示。4.根据权利要求3所述的方法,其中,所述与所述数据包输入消息相关联的上下文信息还包括触发所述交换机向所述控制器发送所述数据包输入消息的表或组的指示。5.根据权利要求4所述的方法,还包括:从所述数据包输入消息中提取所述组的指示。6.根据权利要求4所述的方法,还包括:从推压到所述数据包上的虚拟局域网VLAN标签中提取所述组的指示。7.根据权利要求4所述的方法,其中,所述与所述数据包输入消息相关联的上下文信息还包括所述交换机向所述控制器发送所述数据包输入消息的原因的指示。8.根据权利要求1所述的方法,还包括:响应于在所述循环检测高速缓存中不存在与所述关键字相关联的条目,在所述循环检测高速缓存中创建(325,425)与所述关键字相关联的条目,其中,与所述条目相关联的计数器值被设置为初始值。9.根据权利要求1所述的方法,还包括:确定所述关键字是否被编码在布隆过滤器中;响应于确定所述关键字被编码在布隆过滤器中,针对所述数据包执行控制路径循环检测;以及响应于确定所述关键字未被编码在布隆过滤器中,将所述关键字编码在布隆过滤器中。10.根据权利要求1所述的方法,还包括:响应于确定所述条目的已用寿命达到超时长度,从所述循环检测高速缓存中移除与所述关键字相关联的条目。11.根据权利要求1所述的方法,其中,基于源互联网协议IP地址、源端口号、目的IP地址、目的端口号、协议类型和与所述数据包相关联的校验和来确定与所述数据包相关联的包标识符。12.根据权利要求11所述的方法,其中,确定与所述数据包相关联的包标识符包括:从所述数据包的互联网控制消息协议ICMP报头或传输控制协议TCP报头中提取与所述数据包相关联的校验和。13.根据权利要求11所述的方法,其中,确定与所述数据包相关联的包标识符包括:计算与所述数据包相关联的校验和。14.根据权利要求1所述的方法,其中,确定与所述数据包相关联的包标识符包括:从所述数据包的网络服务报头NSH中提取与所述数据包相关联的包标识符。15.根据权利要求1所述的方法,还包括:...

【专利技术属性】
技术研发人员:维纳亚克·乔什法斯拉·K迪普斯·VV
申请(专利权)人:瑞典爱立信有限公司
类型:发明
国别省市:瑞典,SE

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

1