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)或组桶(groupbu ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。