一种基于Hash-Trie的流规则冲突检测方法技术

技术编号:21853895 阅读:21 留言:0更新日期:2019-08-14 01:10
本发明专利技术公开了一种基于Hash‑Trie的流规则冲突检测方法,充分考虑了流规则的生命周期,作用于流规则的下发阶段,通过在控制器和交换机之间部署中间层,拦截控制器和交换机之间交互报文来获取流规则,在不对控制器进行任何改动的情况下完成流规则的冲突检测;对流规则进行建模,利用优先级、匹配域和动作域来表达流规则,把匹配域字段拆分为精确匹配字段和范围匹配字段,为了加快流规则的匹配过程,通过引入Hash表和Trie树重构流规则的存储结构,大大缩短流规则冲突检测的时间。

A Hash-Trie Based Conflict Detection Method for Flow Rules

【技术实现步骤摘要】
一种基于Hash-Trie的流规则冲突检测方法
本专利技术属于SDN网络中的流规则冲突检测
,具体涉及一种基于Hash-Trie的流规则冲突检测方法。
技术介绍
近年来,随着网络流量的大规模增长和数据中心的不断扩大,传统的网络架构暴露出灵活性差、架构复杂和难以维护等问题,增加了网络建设和维护的成本。业内的企业和高效开始着手研究新的网络架构来满足未来网络发展。软件定义网络(SoftwareDefinedNetworking,SDN)的概念起源于斯坦福大学的CleanSlate项目组,NikeMiKeown教授等在2008年正式提出了OpenFlow的概念,并基于此建立了以OpenFlow协议为主的SDN网络架构。SDN网络有别于传统的网络架构,它基于控制平面和数据平面分离的思想,由统一且集中的控制平面来完成对网络的管控,网络中的交换机和路由器等网络设备只负责数据的转发。同时引入软件定义的概念,为控制平面提供丰富的编程接口,为多样化的网络管理和服务提供可扩展性。正是由于SDN网络具有的开放性、灵活性,提出之后受到了业内的广泛关注。企业和高校纷纷展开对SDN网络架构的研究。但是作为一种新兴的技术,SDN在带来便捷的同时,也引发了一些不容忽视的安全问题。正是由于其集中控制特点,使得针对控制平面的拒绝服务攻击成为可能,控制平面作为SDN架构的核心部分,一旦瘫痪,会对整个网络的功能造成影响。此外,SDN开放、可编程的网络接口为攻击者提供了便利。攻击者不仅能够这些接口发现控制器可能存在的安全漏洞,也利用这些接口通过开发恶意程序实施对控制平面和整个网络的攻击。控制平面中主要功能集成于控制器中,控制器本身也是软件,其本身可能存在的安全问题也会对网络安全造成影响。因此大规模商用SDN网络之前,充分研究SDN网络特别是控制平面及控制器中存在的安全问题,具有重要的意义。在应用平面,存在多个功能不相同的应用同时工作,应用需要下发流规则来保证其制定的策略能够得到有效的执行。多个应用同时下发的流规则时,这些流规则之间因为执行的动作不同可能存在相互冲突的现象。存在冲突的流规则导致应用制定的策略得不到有效的执行,更可能对网络的安全稳定造成影响。在控制平面,因为目前主流的控制器缺乏有效北向接口认证及授权机制,造成流规则的来源不可控,恶意应用也可以下发流规则故意造成流规则冲突现象发生,使得一些应用不能正常的工作。SDN网络是流规则驱动的网络,交换机根据流表项来完成数据包的匹配和转发,控制器下发流规则完成对数据平面网元设备的控制。流规则冲突的根本原因是针对相同或者存在交集的流,不同的流规则动作域不同造成冲突问题。因此对于流规则冲突问题,基本的检测方式首先确定流规则匹配域的精确匹配字段和范围匹配字段之间的关系,然后根据匹配字段之间的关系进一步确定两条流规则匹配域之间是否存在包含关系,最后根据流规则动作域是否存在不同确定流规则是否存在冲突。为了对SDN网络中的流规则冲突问题进行检测,研究人员提出基于优先级的流规则冲突检测算法、基于转发图的流规则冲突检测算法,下面对下面相关技术进行介绍。该方法作用于流规则的生成阶段,同时需要部署在控制器内部,但是目前主流的开源控制器的开发语言和开发流程完全不相同,因此检测算法需要针对不同的控制器进行开发部署,不具备通用性。另外该方法作用于流规则的生成阶段,同时需要部署在控制器内部,但是目前主流的开源控制器的开发语言和开发流程完全不相同,因此检测算法需要针对不同的控制器进行开发部署,不具备通用性。另外一种基于转发图的流规则检测算法的基本思想是利用控制平面集中控制的特点来获取全局的网络拓扑,然后结合流规则的匹配域字段和动作域字段建立全局的转发拓扑图;当有新的流规则到达时,利用流规则的匹配域字段中的源目IP地址和动作域,结合现有的转发拓扑图,利用拥有相同源目IP的节点的连通性及报文转发状态,判断是否存在冲突。这种检测算法作用多作用于流规则的下发阶段。该方法在建立转发拓扑图的过程中,需要对流规则匹配域中的源目IP字段进行处理,不同的流规则包含的源目IP地址的范围不统一,在进行IP地址映射时开销比较大。同时当插入新的流规则时,转发拓扑图的更新和维护操作的成本比较高。且该方法需要结合真实的网络拓扑来建立转发拓扑图,在实际的网络环境网络拓扑可能随时变化,新的主机接入,旧的主机断开,当拓扑变化时就要对转发拓扑图进行更新和维护,大大增加了流规则检测的时间成本和算法复杂度。
技术实现思路
针对现有技术中的上述不足,本专利技术提供的基于Hash-Trie的流规则冲突检测方法解决了上述
技术介绍
中的问题。为了达到上述专利技术目的,本专利技术采用的技术方案为:一种基于Hash-Trie的流规则冲突检测方法,包括以下步骤:S1、在交换机中构建存储流规则的流规则存储结构;S2、根据控制器下发的Flow_Mod报文,进行流规则的解析并构建流规则;S3、判断流规则存储结构是否存在该流规则所在的流表table_id;若是,则进入步骤S4;若否,则进入步骤S6;S4、根据当前流规则存储结构,对该流规则进行匹配域匹配,进入步骤S5;S5、判断匹配后的流规则是否存在冲突;若是,则进入步骤S7;若否,则进入步骤S6;S6、将该流规则存储在流规则存储结构中对其进行更新,返回步骤S2;S7、确定该流规则的冲突类型,实现流规则的冲突检测进一步地,所述步骤S1中流规则存储结构为五级存储结构,依次包括交换机datapath_id、流表table_id、优先级、匹配域和流表项flow_id;对于交换机datapath_id,在SDN网络中,每个交换机有唯一的交换机datapath_id,且每个datapath_id使用Hash表存储流表,在对应的Hash表中以流表table_id为键,以具体的流表对象为值;对于流表table_id,在同一交换机中,每个流表有唯一的流表table_id;对于优先级,所述优先级使用Hash表进行存储,在对应的Hash表中以优先级的数值为键,以具体的优先级对象为值,且每个优先级对象包括13个匹配字段;对于匹配域,所述匹配域包括精确匹配字段和范围匹配字段;所述精确匹配字段通过Hash表存储,在对应的Hash表中以匹配字段的值为键,以流表项flow_id构成的数组为值;所述范围匹配字段通过Trie树存储,在对应的Trie树中,叶子节点为IP地址,中间节点为包含子网掩码的IP地址,节点所在的树高为其掩码范围,每个节点有一个属性为流表项flow_id;对于流表项flow_id,每个流规则有唯一的流表项flow_id。进一步地,所述步骤S2具体为:S21、对Flow_Mod报文进行解析,提取其对应的流表table_id、优先级、匹配域和动作域字段;S22、将匹配域扩充为由13个匹配字段组成;S23、利用优先级、扩充后的匹配域和动作域字段构建流规则;S24、为构建的流规则分配其唯一标识流表项flow_id,完成流规则的解析。进一步地,所述步骤S2中构建的流规则R为:R={P,M,A}式中,P,M和A分别为Flow_Mod报文解析时获取的流规则的优先级、匹配域和动作域字段信息。进一步地,所述步骤S4具体为:S41、确定需要进行匹配域匹配的优先级;其中,需要本文档来自技高网
...

【技术保护点】
1.一种基于Hash‑Trie的流规则冲突检测方法,其特征在于,包括以下步骤:S1、在交换机中构建存储流规则的流规则存储结构;S2、根据控制器下发的Flow_Mod报文,进行流规则的解析并构建流规则;S3、判断流规则存储结构是否存在该流规则所在的流表table_id;若是,则进入步骤S4;若否,则进入步骤S6;S4、根据当前流规则存储结构,对该流规则进行匹配域匹配,进入步骤S5;S5、判断匹配后的流规则是否存在冲突;若是,则进入步骤S7;若否,则进入步骤S6;S6、将该流规则存储在流规则存储结构中对其进行更新,返回步骤S2;S7、确定该流规则的冲突类型,实现流规则的冲突检测。

【技术特征摘要】
1.一种基于Hash-Trie的流规则冲突检测方法,其特征在于,包括以下步骤:S1、在交换机中构建存储流规则的流规则存储结构;S2、根据控制器下发的Flow_Mod报文,进行流规则的解析并构建流规则;S3、判断流规则存储结构是否存在该流规则所在的流表table_id;若是,则进入步骤S4;若否,则进入步骤S6;S4、根据当前流规则存储结构,对该流规则进行匹配域匹配,进入步骤S5;S5、判断匹配后的流规则是否存在冲突;若是,则进入步骤S7;若否,则进入步骤S6;S6、将该流规则存储在流规则存储结构中对其进行更新,返回步骤S2;S7、确定该流规则的冲突类型,实现流规则的冲突检测。2.根据权利要求1所述的基于Hash-Trie的流规则冲突检测方法,其特征在于,所述步骤S1中流规则存储结构为五级存储结构,依次包括交换机datapath_id、流表table_id、优先级、匹配域和流表项flow_id;对于交换机datapath_id,在SDN网络中,每个交换机有唯一的交换机datapath_id,且每个datapath_id使用Hash表存储流表,在对应的Hash表中以流表table_id为键,以具体的流表对象为值;对于流表table_id,在同一交换机中,每个流表有唯一的流表table_id;对于优先级,所述优先级使用Hash表进行存储,在对应的Hash表中以优先级的数值为键,以具体的优先级对象为值,且每个优先级对象包括13个匹配字段;对于匹配域,所述匹配域包括精确匹配字段和范围匹配字段;所述精确匹配字段通过Hash表存储,在对应的Hash表中以匹配字段的值为键,以流表项flow_id构成的数组为值;所述范围匹配字段通过Trie树存储,在对应的Trie树中,叶子节点为IP地址,中间节点为包含子网掩码的IP地址,节点所在的树高为其掩码范围,每个节点有一个属性为流表项flow_id;对于流表项flow_id,每个流规则有唯一的流表项flow_id。3.根据权利要求2所述的基于Hash-Trie的流规则冲突检测方法,其特征在于,所述步骤S2具体为:S21、对Flow_Mod报文进行解析,提取其对应的流表table_id、优先级、匹配域和动作域字段;S22、将匹配域扩充为由13个匹配字段组成;S23、利用优先级、扩充后的匹配域和动作域字段构建流规则;S24、为构建的流规则分配其唯一标识流表项flow_id,完成流规则的解析。4.根据权利要求3所述的基于Hash-Trie的流规则冲突检测方法,其特征在于,所述步骤S2中构建的流规则R为:R={P,M,A}式中,P,M和A分别为Flow_Mod报文解析时获取的流规则的优先级、匹配域和动作域字段信息。5.根据权利要求2所述的基于Hash-Trie的流规则冲突检测方法,其特征在于,所述步骤S4具体为:S41、确定需要进行匹配域匹配的优先级;其中,需要进行匹配域匹配的优先级包括与流规则R优先级相同的优先级和流规则存储结构中当前流表table_id下比流规则R优先级更高的优先级;S42、在步骤S41确定的优先级下,将流规则R与流规则存储结构中的13个匹配字段依次进行匹配;其中,13个匹配字段包括精确匹配字段和范围匹配字段;S43、判断匹配时流规则R的当前字段是精确匹配字段还是范围匹配字段,若是精确匹配字段,则进入步骤S44;若是范围匹配字段,则...

【专利技术属性】
技术研发人员:虞红芳柴林博章雨鹏孙罡
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

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

1