首页 / 专利库 / 电脑编程 / 别名 / 一种基于别名规约树的流规则冲突检测方法及系统

一种基于别名规约树的流规则冲突检测方法及系统

阅读:397发布:2020-05-08

专利汇可以提供一种基于别名规约树的流规则冲突检测方法及系统专利检索,专利查询,专利分析的服务。并且一种基于 别名 规约树的流规则冲突检测方法及系统,包括:检查插入流表项,流表项对应数据包发送的数据流;构造别名规约树,根据别名规约树识别插入流表项引发的冲突;根据别名规约树,以预设逻辑匹配流表项中的数据流匹配信息;分析流表项的流规则,判断流规则是否适于组合;若是,则解析组合的冲突并完成流规则的组合;若否,则更新应用程序所读取的网络状态。,下面是一种基于别名规约树的流规则冲突检测方法及系统专利的具体信息内容。

1.一种基于别名规约树的流规则冲突检测方法,其特征在于,包括:
检查插入流表项,所述流表项对应数据包发送的数据流,过滤无效流表项;预设在交换机端口的所述流规则的安装权限;
构造别名规约树,根据所述别名规约树识别所述插入流表项引发的冲突,将原始流规则的数据流匹配信息中的源IP地址作为所述别名规约树的根节点;按照构造规约树的预设逻辑构造所述别名规约树;根据所述别名规约树得出衍生流规则;对比所述衍生流规则与原始流规则,得出规则对比结果;根据所述规则对比结果,判断要添加的所述流规则的动作种类与所述别名规约树的当前节点中的动作种类是否存在冲突;
根据所述别名规约树,以预设逻辑匹配所述流表项中的数据流匹配信息;
分析所述流表项的流规则,判断所述流规则是否适于组合;
若是,则解析组合的冲突并完成所述流规则的组合;
若否,则更新应用程序所读取的网络状态。
2.根据权利要求1所述的方法,其特征在于,所述根据所述别名规约树,以预设逻辑匹配所述流表项中的数据流匹配信息,包括:
遍历所有所述流规则;
获取流规则中动作种类为修改源IP地址的流规则,生成源地址修改集合;
遍历源地址修改集合中的所有源地址修改流规则;
为每一所述源地址修改流规则匹配动作种类为修改目的IP地址的规则。
3.根据权利要求2所述的方法,其特征在于,所述若是,则解析组合的冲突并完成新的流规则与原有流规则的组合,包括:
将所述源地址修改流规则与动作种类为修改目的IP地址的规则组合,得到组合流规则;
根据预设逻辑对所述组合流规则的每一数据流匹配信息取其中匹配范围最小的取值作为当前数据流匹配信息的取值,得到当前最小范围数据流匹配信息;
修改所述最小范围数据流匹配信息,生成网络更新规则;
以网络更新规则匹配被更新流规则;
将被更新流规则包含的源IP地址修改为规约树父节点中的IP地址。
4.一种基于别名规约树的流规则冲突检测系统,其特征在于,包括:流表项检查模、冲突识别模块、数据流信息匹配模块、组合判断模块、和冲突解析组合模块;
所述流表项检查模块,用于检查插入流表项,所述流表项对应数据包发送的数据流;
所述冲突识别模块,用于构造别名规约树,根据所述别名规约树识别所述插入流表项引发的冲突;
所述数据流信息匹配模块,用于根据所述别名规约树,以预设逻辑匹配所述流表项中的数据流匹配信息;
所述组合判断模块,用于分析所述流表项的流规则,判断所述流规则是否适于组合;
所述冲突解析组合模块,用于在所述流规则适于组合时,解析组合的冲突并完成所述流规则的组合;
网络状态更新模块,用于在所述流规则不适于组合时,更新应用程序所读取的网络状态。
5.根据权利要求4所述的系统,其特征在于,所述流表项检查模块,包括:流表过滤模块和端口权限模块;
所述流表过滤模块,用于过滤无效流表项;
所述端口权限模块,用于预设在交换机端口的所述流规则的安装权限。
6.根据权利要求4所述的系统,其特征在于,所述冲突识别模块,包括:规约树初始模块、规约树构造模块、衍生规则获取模块、规则对比模块和冲突判断模块;
所述规约树初始模块,用于将原始流规则的数据流匹配信息中的源IP地址作为所述别名规约树的根节点;
所述规约树构造模块,用于按照构造规约树的预设逻辑构造所述别名规约树;
所述衍生规则获取模块,用于根据所述别名规约树得出衍生流规则;
所述规则对比模块,用于对比所述衍生流规则与原始流规则,得出规则对比结果;
所述冲突判断模块,用于根据所述规则对比结果,判断要添加的所述流规则的动作种类与所述别名规约树的当前节点中的动作种类是否存在冲突。
7.根据权利要求4所述的系统,其特征在于,所述数据流信息匹配模块,包括:流规则遍历模块、源地址修改聚集模块、集合遍历模块和规则匹配模块;
所述流规则遍历模块,遍历所有所述流规则;
所述源地址修改聚集模块,用于获取所述流规则中动作种类为修改源IP地址的流规则,生成源地址修改集合;
所述集合遍历模块,用于遍历所述源地址修改集合中的所有源地址修改流规则;
所述规则匹配模块,用于为每一所述源地址修改流规则匹配动作种类为修改目的IP地址的规则。
8.根据权利要求7所述的系统,其特征在于,所述冲突解析组合模块,包括:组合规则模块、最小范围匹配模块、更新规则生成模块、更新匹配模块和源地址修改模块;
所述组合规则模块,用于将所述源地址修改流规则与动作种类为修改目的IP地址的规则组合,得到组合流规则;
所述最小范围匹配模块,用于根据预设逻辑对所述组合流规则的每一数据流匹配信息取其中匹配范围最小的取值作为当前数据流匹配信息的取值,得到当前最小范围数据流匹配信息;
所述更新规则生成模块,用于修改所述最小范围数据流匹配信息,生成网络更新规则;
所述更新匹配模块,用于以所述网络更新规则匹配被更新流规则;
所述源地址修改模块,用于将所述被更新流规则包含的源IP地址修改为规约树父节点中的IP地址。

说明书全文

一种基于别名规约树的流规则冲突检测方法及系统

技术领域

[0001] 本发明涉及一种流规则冲突检测方法,特别是涉及一种基于别名规约树的流规则冲突检测方法及系统。

背景技术

[0002] 随着互联网规模与流量的爆发式增长,以IP为核心的传统网络体系架构在网络新协议的创新发展及网络技术的演进出现了瓶颈软件定义网络(software defined networking,简称SDN),将传统封闭的网络体系解耦为数据平面、控制平面和应用平面,实现了网络的在逻辑上集中控制与管理。SDN的突出特点是开放性和可编程性,可加快网络创新协议的部署和实施,目前已在网络虚拟化、数据中心网络、无线局域网和计算等领域得到应用。
[0003] 控制程序指定的流规则被安装的OpenFlow交换机流表中,流规则包括用于匹配数据分组的匹配域和和对应的动作集合。但是,一个数据包可能会被多个流表项匹配,因为流表项的匹配域可能是通配符(匹配任意值)或者是位掩码。Natarajan等人提出了两种冲突检测的方法,即使用混合哈希树结构来代表流表并采用分治策略确定冲突流,以及使用基于本体的逻辑推理系统来表示并推断冲突的流表项。不同于这两种冲突检测方法,Bruno等人提出使用一阶逻辑来表示流冲突规则,并将这些规则放到运行Prolog引擎的逻辑代理中。这种方式可以在控制器中实时的进行流规则冲突检测,节省交换机的资源以及减少OpenFlow网络中的配置错误。Son等人提出了一种控制器扩展软件FortNox,能够监测并协调潜在的流规则冲突,提供基于色认证和安全约束执行策略,允许Nox控制器采取一种稳定的冲突分析策略实时监测流规则冲突,杜绝有恶意应用、想要插入恶意流规则“陷害”正常应用的安全流规则等类现象。现有技术中的冲突检测的方法使用混合哈希树结构来代表流表并采用分治策略确定冲突流,以及使用基于本体的逻辑推理系统来表示并推断冲突的流表项,以及使用一阶逻辑来表示流冲突规则。传统方法中一个数据包可能会被多个流表项匹配,可能误报没有发生冲突的规则。
[0004] 现有技术中的冲突检测的方法使用混合哈希树结构来代表流表并采用分治策略确定冲突流,以及使用基于本体的逻辑推理系统来表示并推断冲突的流表项,或使用一阶逻辑来表示流冲突规则。传统方法中匹配过程里,一个数据包可能会被多个流表项匹配,并且可能误报没有发生冲突的规则,存在匹配错误及误报流规则动作冲突的技术问题。

发明内容

[0005] 鉴于以上现有技术存在匹配错误及误报流规则动作冲突的技术问题,本发明的目的在于提供一种基于别名规约树的流规则冲突检测方法,包括:
[0006] 检查插入流表项,流表项对应数据包发送的数据流;
[0007] 构造别名规约树,根据别名规约树识别插入流表项引发的冲突;
[0008] 根据别名规约树,以预设逻辑匹配流表项中的数据流匹配信息;
[0009] 分析流表项的流规则,判断流规则是否适于组合;
[0010] 若是,则解析组合的冲突并完成流规则的组合;
[0011] 若否,则更新应用程序所读取的网络状态。
[0012] 于本发明的一实施方式中,检查插入流表项,流表项对应数据包发送的数据流,包括:过滤无效流表项;预设在交换机端口的流规则的安装权限。
[0013] 于本发明的一实施方式中,构造别名规约树,根据别名规约树识别插入流表项的流规则是否存在冲突,包括:
[0014] 将原始流规则的数据流匹配信息中的源IP地址作为别名规约树的根节点
[0015] 按照构造规约树的预设逻辑构造别名规约树;
[0016] 根据别名规约树得出衍生流规则;
[0017] 对比衍生流规则与原始流规则,得出规则对比结果;
[0018] 根据规则对比结果,判断要添加的流规则的动作种类与别名规约树的当前节点中的动作种类是否存在冲突。
[0019] 于本发明的一实施方式中,根据别名规约树,以预设逻辑匹配流表项中的数据流匹配信息,包括:
[0020] 遍历所有流规则;
[0021] 取流规则中动作种类为修改源IP地址的流规则,生成源地址修改集合;
[0022] 遍历原地址修改集合中的所有源地址修改流规则;
[0023] 为每一源地址修改流规则匹配动作种类为修改目的IP地址的规则。
[0024] 于本发明的一实施方式中,若是,则解析组合的冲突并完成新的流规则与原有流规则的组合,包括:
[0025] 将源地址修改流规则与动作种类为修改目的IP地址的规则组合,得到组合流规则;
[0026] 根据预设逻辑对组合流规则的每一数据流匹配信息取其中匹配范围最小的取值作为当前数据流匹配信息的取值,得到当前最小范围数据流匹配信息;
[0027] 修改最小范围数据流匹配信息,生成网络更新规则;
[0028] 以网络更新规则匹配被更新流规则;
[0029] 将被更新流规则包含的源IP地址修改为规约树父节点中的IP地址。
[0030] 于本发明的一实施方式中,一种基于别名规约树的流规则冲突检测系统,包括:流表项检查模、冲突识别模块、数据流信息匹配模块、组合判断模块、冲突解析组合模块和网络状态更新模块;流表项检查模块,用于检查插入流表项,流表项对应数据包发送的数据流;冲突识别模块,用于构造别名规约树,根据别名规约树识别插入流表项引发的冲突,冲突识别模块与流表项检查模块连接;数据流信息匹配模块,用于根据别名规约树,以预设逻辑匹配流表项中的数据流匹配信息,数据流信息匹配模块与冲突识别模块连接;组合判断模块,用于分析流表项的流规则,判断流规则是否适于组合,组合判断模块与冲突识别模块连接;冲突解析组合模块,用于在流规则适于组合时,解析组合的冲突并完成流规则的组合,冲突解析组合模块与冲突识别模块连接,冲突解析组合模块与组合判断模块连接;网络状态更新模块,用于在流规则不适于组合时,更新应用程序所读取的网络状态,网络状态更新模块与组合判断模块连接。
[0031] 于本发明的一实施方式中,流表项检查模块,包括:流表过滤模块和端口权限模块;流表过滤模块,用于过滤无效流表项;端口权限模块,用于预设在交换机端口的流规则的安装权限,端口权限模块与流表过滤模块连接。
[0032] 于本发明的一实施方式中,冲突识别模块,包括:规约树初始模块、规约树构造模块、衍生规则获取模块、规则对比模块和冲突判断模块;规约树初始模块,用于将原始流规则的数据流匹配信息中的源IP地址作为别名规约树的根节点;规约树构造模块,用于按照构造规约树的预设逻辑构造别名规约树,规约树构造模块与规约树初始模块连接;衍生规则获取模块,用于根据别名规约树得出衍生流规则,衍生规则获取模块与规约树构造模块连接;规则对比模块,用于对比衍生流规则与原始流规则,得出规则对比结果,规则对比模块与衍生规则获取模块连接;冲突判断模块,用于根据规则对比结果,判断要添加的流规则的动作种类与别名规约树的当前节点中的动作种类是否存在冲突,冲突判断模块与规则对比模块连接。
[0033] 于本发明的一实施方式中,数据流信息匹配模块,包括:流规则遍历模块、源地址修改聚集模块、集合遍历模块和规则匹配模块;流规则遍历模块,遍历所有流规则;源地址修改聚集模块,用于获取流规则中动作种类为修改源IP地址的流规则,生成源地址修改集合,源地址修改聚集模块与流规则遍历模块连接;集合遍历模块,用于遍历原地址修改集合中的所有源地址修改流规则,集合遍历模块与源地址修改聚集模块连接;规则匹配模块,用于为每一源地址修改流规则匹配动作种类为修改目的IP地址的规则,规则匹配模块与集合遍历模块连接。
[0034] 于本发明的一实施方式中,冲突解析组合模块,包括:组合规则模块、最小范围匹配模块、更新规则生成模块、更新匹配模块和源地址修改模块;组合规则模块,用于将源地址修改流规则与动作种类为修改目的IP地址的规则组合,得到组合流规则;最小范围匹配模块,用于根据预设逻辑对组合流规则的每一数据流匹配信息取其中匹配范围最小的取值作为当前数据流匹配信息的取值,得到当前最小范围数据流匹配信息,最小范围匹配模块与组合规则模块连接;更新规则生成模块,用于修改最小范围数据流匹配信息,生成网络更新规则,更新规则生成模块与最小范围匹配模块连接;更新匹配模块,用于以网络更新规则匹配被更新流规则,更新匹配模块与更新规则生成模块连接;源地址修改模块,用于将被更新流规则包含的源IP地址修改为规约树父节点中的IP地址,源地址修改模块与更新匹配模块连接。
[0035] 如上所述,本发明提供的一种基于别名规约树的流规则冲突检测方法及系统,具有以下有益效果:。
[0036] 综上所述,本发明提供一种基于别名规约树的流规则冲突检测方法及系统,首先对要插入的流表项进行必要的检查,一些没用的流表项应该被过滤掉,确保应用程序在物理交换机对应的端口上有足够的权限安装流规则;然后,使用基于规约树和字典树的分治算法对流表项中的所有匹配域进行快速匹配;最后,分析这些流规则冲突的动作,确认它们是否可以被组合。如果可以被组合,就使用已有的组合操作符解析这类冲突;否则,对应用程序所读取的网络状态进行更新,解决了传统技术中的匹配错误及误报流规则动作冲突的技术问题。附图说明
[0037] 图1显示为本发明的一种基于别名规约树的流规则冲突检测方法步骤示意图。
[0038] 图2显示为本发明的流表项过滤步骤示意图。
[0039] 图3显示为本发明的规约树构造判断冲突示意图。
[0040] 图4显示为本发明的流规则匹配示意图。
[0041] 图5显示为本发明的流规则组合步骤示意图。
[0042] 图6显示为本发明的一种基于别名规约树的流规则冲突检测系统模块示意图。
[0043] 图7显示为本发明的流表项检查模块示意图。
[0044] 图8显示为本发明的冲突识别模块示意图。
[0045] 图9显示为本发明的数据流信息匹配模块示意图。
[0046] 图10显示为本发明的冲突解析组合模块示意图。
[0047] 元件标号说明
[0048] 1   基于别名规约树的流规则冲突检测系统
[0049] 11  流表项检查模块
[0050] 12  冲突识别模块
[0051] 13  数据流信息匹配模块
[0052] 14  组合判断模块
[0053] 15  冲突解析组合模块
[0054] 16  网络状态更新模块
[0055] 111 流表过滤模块
[0056] 112 端口权限模块
[0057] 121 规约树初始模块
[0058] 122 规约树构造模块
[0059] 123 衍生规则获取模块
[0060] 124 规则对比模块
[0061] 125 冲突判断模块
[0062] 131 流规则遍历模块
[0063] 132 源地址修改聚集模块
[0064] 133 集合遍历模块
[0065] 134 规则匹配模块
[0066] 151 组合规则模块
[0067] 152 最小范围匹配模块
[0068] 153 更新规则生成模块
[0069] 154 更新匹配模块
[0070] 155 源地址修改模块
[0071] 步骤标号说明
[0072] 图1  S1~S6
[0073] 图2  S11~S12
[0074] 图3  S21~S25
[0075] 图4  S31~S34
[0076] 图5  S51~S55

具体实施方式

[0077] 以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效。
[0078] 请参阅图1至图10,须知,本说明书所附图式所绘示的结构,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本实用新型所能产生的功效及所能达成的目的下,均应仍落在本实用新型所揭示的技术内容所能涵盖的范围内。同时,本说明书中所引用的如”上”、”下”、”左”、”右”、”中间”及”一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
[0079] 请参阅图1,显示为本发明的一种基于别名规约树的流规则冲突检测方法步骤示意图,如图1所示,包括:
[0080] S1、检查插入流表项,流表项对应数据包发送的数据流,在SDN(Software Define Network,软件定义网络)中,流表是OpenFlow对网络设备的数据转发功能的抽象。OpenFlow交换机中的数据转发需要依赖设备中保存的二层MAC地址转发表或者三层IP地址路由表,在OpenFlow交换机的表项中整合了网络中各个层次的网络配置信息;
[0081] S2、构造别名规约树,根据别名规约树识别插入流表项引发的冲突,根据流规则匹配域及流规则动作种类构造别名规约树;
[0082] S3、根据别名规约树,以预设逻辑匹配流表项中的数据流匹配信息,根据基于规约树的分治算法对流表项中的所有匹配域进行快速匹配;
[0083] S4、分析流表项的流规则,判断流规则是否适于组合,根据流表项中的匹配域以及流规则中的替换源IP地址或替换目的IP地址等修改动作,判断流规则是否适合组合;
[0084] S5、若是,则解析组合的冲突并完成流规则的组合,根据构建的别名规约树衍生出的流规则与原始流规则进行比对,识别和分析流规则间的动作冲突;
[0085] S6、若否,则更新应用程序所读取的网络状态,在流规则不适于组合时更新SDN中的交换机等网络设备的状态信息。
[0086] 请参阅图2,显示为本发明的流表项过滤步骤示意图,如图2所示,S1、检查插入流表项,流表项对应数据包发送的数据流,包括:
[0087] S11、过滤无效流表项,在基于别名规约树的流规则冲突检测方法中,首先应对要掺入的流表项进行检查,流表项中无效的流表项的存在会降低交换机端口流规则的安装权限,需进行必要的过滤;
[0088] S12、预设在交换机端口的流规则的安装权限,在过滤掉无效的流表项后,在交换机端口安装流表项权限提供,适于确保应用程序在物理交换机对应的端口上有足够的权限安装流规则。
[0089] 请参阅图3,显示为本发明的规约树构造判断冲突示意图,如图3所示,S2、构造别名规约树,根据别名规约树识别插入流表项的流规则是否存在冲突,包括:
[0090] S21、将原始流规则的数据流匹配信息中的源IP地址作为别名规约树的根节点,初始状态下,当别名规约树被创建时,第一条流规则匹配域中的源IP地址作为别名规约树的根节点,包含当前的规则ID,目的IP地址集合,以及对应的动作,假设已有规则:a->c丢弃(丢弃源地址为a,目的地址为c的数据包),则其对应的别名规约树;
[0091] S22、按照构造规约树的预设逻辑构造别名规约树,如果流规则的动作中包含有替换源IP地址的set-field操作,则更新别名规约树,将被替换的源IP地址作为父节点,替换者的源IP地址作为子节点;如果流规则的动作中包含有替换目的IP地址的set-field操作,则更新别名规约树,添加替换的目的IP地址到当前流规则在别名规约树的节点以及祖先节点中的目的IP地址集合;如果流规则的动作中包含有转发或者丢弃的操作,则更新别名规约树,将此动作添加到别名规约树对应的节点及其祖先节点中,例如要插入的规则集合为:1.a->d set(a=>b);2.b->d set(d=>c);3.b->c转发;
[0092] S23、根据别名规约树得出衍生流规则,按照上述逻辑构造别名二叉树,得出衍生流规则,其对应的别名规约树的构造过程分别为:插入规则1,插入规则2,插入规则3,其衍生的规则为a->c转发(转发源地址为a,目的地址为c的数据包),与已有规则冲突;
[0093] S24、对比衍生流规则与原始流规则,得出规则对比结果;
[0094] S25、根据规则对比结果,判断要添加的流规则的动作种类与别名规约树的当前节点中的动作种类是否存在冲突,在构建别名规约树的过程中,如果发现要添加的流规则的动作与别名规约树的当前节点中的动作冲突,则认为当前要插入的规则与流表中已有的规则发生冲突。
[0095] 请参阅图4,显示为本发明的流规则匹配示意图,如图4所示,S3、根据别名规约树,以预设逻辑匹配流表项中的数据流匹配信息,包括:
[0096] S31、遍历所有流规则,算法的输入为流表中已有的规则集合rs、动作为设置源IP地址的规则集合srcIpRs、动作为设置目的IP地址的规则集合dstIpRs、动作为为转发或丢弃的规则集合otherRs,输出为新增加的流规则的集合addRules;
[0097] S32、取流规则中动作种类为修改源IP地址的流规则,生成源地址修改集合,遍历动作为设置源IP地址的规则集合srcIpRs;
[0098] S33、遍历原地址修改集合中的所有源地址修改流规则,循环遍历集合srcIpRs;
[0099] S34、为每一源地址修改流规则匹配动作种类为修改目的IP地址的规则,将集合dstIpRs与集合rs[srcid]中的流规则进行匹配,将动作为转发或丢弃的流规则集otherRs与rs[srcid]进行匹配得到集合other setDstIps,该集合中为匹配后的流规则。
[0100] 请参阅图5,显示为本发明的流规则组合步骤示意图,如图5所示,S5、若是,则解析组合的冲突并完成流规则的组合,包括:
[0101] S51、将源地址修改流规则与动作种类为修改目的IP地址的规则组合,得到组合流规则,组合地址修改流规则集合rs[id]与动作种类为修改目的IP地址的规则rs[DstIps]组合;
[0102] S52、根据预设逻辑对组合流规则的每一数据流匹配信息取其中匹配范围最小的取值作为当前数据流匹配信息的取值,得到当前最小范围数据流匹配信息;
[0103] S53、修改最小范围数据流匹配信息,生成网络更新规则,将这两种规则的匹配域组合起来,对规则中的每一个匹配域,取其中匹配范围最小的取值作为当前匹配域的取值;
[0104] S54、以网络更新规则匹配被更新流规则,将匹配域的目的ip修改为第二条规则匹配域的目的ip,生成新的规则;
[0105] S55、将被更新流规则包含的源IP地址修改为规约树父节点中的IP地址,去匹配其他的规则,将匹配到规则源ip地址修改为规约树父节点中的ip地址,这些规则即为新增加的规则集合。
[0106] 请参阅图6,显示为本发明的一种基于别名规约树的流规则冲突检测系统模块示意图,如图6所示,一种基于别名规约树的流规则冲突检测系统,包括:流表项检查模块11、冲突识别模块12、数据流信息匹配模块13、组合判断模块14、冲突解析组合模块15和网络状态更新模块16;流表项检查模块11,用于检查插入流表项,流表项对应数据包发送的数据流,在SDN(Software Define Network,软件定义网络)中,流表是OpenFlow对网络设备的数据转发功能的抽象。OpenFlow交换机中的数据转发需要依赖设备中保存的二层MAC地址转发表或者三层IP地址路由表,在OpenFlow交换机的表项中整合了网络中各个层次的网络配置信息;冲突识别模块12,用于构造别名规约树,根据别名规约树识别插入流表项引发的冲突,冲突识别模块12与流表项检查模块连接11,根据流规则匹配域及流规则动作种类构造别名规约树;数据流信息匹配模块13,用于根据别名规约树,以预设逻辑匹配流表项中的数据流匹配信息,数据流信息匹配模块13与冲突识别模块12连接,根据基于规约树的分治算法对流表项中的所有匹配域进行快速匹配;组合判断模块14,用于分析流表项的流规则,判断流规则是否适于组合,组合判断模块14与冲突识别模块连接12,根据流表项中的匹配域以及流规则中的替换源IP地址或替换目的IP地址等修改动作,判断流规则是否适合组合;冲突解析组合模块15,用于在流规则适于组合时,解析组合的冲突并完成流规则的组合,冲突解析组合模块15与冲突识别模块12连接,冲突解析组合模块15与组合判断模块14连接,根据构建的别名规约树衍生出的流规则与原始流规则进行比对,识别和分析流规则间的动作冲突;网络状态更新模块16,用于在流规则不适于组合时,更新应用程序所读取的网络状态,网络状态更新模块16与组合判断模块14连接。
[0107] 请参阅图7,显示为本发明的流表项检查模块示意图,如图7所示,流表项检查模块11,包括:流表过滤模块111和端口权限模块112;流表过滤模块111,用于过滤无效流表项,首先应对要掺入的流表项进行检查,流表项中无效的流表项的存在会降低交换机端口流规则的安装权限,需进行必要的过滤;端口权限模块112,用于预设在交换机端口的流规则的安装权限,在过滤掉无效的流表项后,在交换机端口安装流表项权限提供,适于确保应用程序在物理交换机对应的端口上有足够的权限安装流规则,端口权限模块112与流表过滤模块111连接。
[0108] 请参阅图8,显示为本发明的冲突识别模块示意图,如图8所示,冲突识别模块12,包括:规约树初始模块121、规约树构造模块122、衍生规则获取模块123、规则对比模块124和冲突判断模块125;规约树初始模块121,用于将原始流规则的数据流匹配信息中的源IP地址作为别名规约树的根节点,初始状态下,当别名规约树被创建时,第一条流规则匹配域中的源IP地址作为别名规约树的根节点;规约树构造模块122,用于按照构造规约树的预设逻辑构造别名规约树,规约树构造模块122与规约树初始模块121连接,如果流规则的动作中包含有替换源IP地址的set-field操作,则更新别名规约树,将被替换的源IP地址作为父节点,替换者的源IP地址作为子节点;如果流规则的动作中包含有替换目的IP地址的set-field操作,则更新别名规约树,添加替换的目的IP地址到当前流规则在别名规约树的节点以及祖先节点中的目的IP地址集合;如果流规则的动作中包含有转发或者丢弃的操作,则更新别名规约树,将此动作添加到别名规约树对应的节点及其祖先节点中;衍生规则获取模块123,用于根据别名规约树得出衍生流规则,衍生规则获取模块123与规约树构造模块122连接;规则对比模块124,用于对比衍生流规则与原始流规则,得出规则对比结果,规则对比模块124与衍生规则获取模块123连接;冲突判断模块125,用于根据规则对比结果,判断要添加的流规则的动作种类与别名规约树的当前节点中的动作种类是否存在冲突,判断要添加的流规则的动作种类与别名规约树的当前节点中的动作种类是否存在冲突,在构建别名规约树的过程中,如果发现要添加的流规则的动作与别名规约树的当前节点中的动作冲突,则认为当前要插入的规则与流表中已有的规则发生冲突,冲突判断模块125与规则对比模块124连接。
[0109] 请参阅图9,显示为本发明的数据流信息匹配模块示意图,如图9所示,数据流信息匹配模块13,包括:流规则遍历模块131、源地址修改聚集模块132、集合遍历模块133和规则匹配模块134;流规则遍历模块131,遍历所有流规则;源地址修改聚集模块132,用于获取流规则中动作种类为修改源IP地址的流规则,生成源地址修改集合,源地址修改聚集模块132与流规则遍历模块131连接,遍历动作为设置源IP地址的规则集合srcIpRs;集合遍历模块133,用于遍历原地址修改集合中的所有源地址修改流规则,循环遍历集合srcIpRs,集合遍历模块133与源地址修改聚集模块132连接;规则匹配模块134,用于为每一源地址修改流规则匹配动作种类为修改目的IP地址的规则,将集合dstIpRs与集合rs[srcid]中的流规则进行匹配,将动作为转发或丢弃的流规则集otherRs与rs[srcid]进行匹配得到集合other setDstIps,该集合中为匹配后的流规则,规则匹配模块134与集合遍历模块133连接。
[0110] 请参阅图10,显示为本发明的冲突解析组合模块示意图,如图10所示,冲突解析组合模块15,包括:组合规则模块151、最小范围匹配模块152、更新规则生成模块153、更新匹配模块154和源地址修改模块155;组合规则模块151,用于将源地址修改流规则与动作种类为修改目的IP地址的规则组合,得到组合流规则,组合地址修改流规则集合rs[id]与动作种类为修改目的IP地址的规则rs[DstIps]组合;最小范围匹配模块152,用于根据预设逻辑对组合流规则的每一数据流匹配信息取其中匹配范围最小的取值作为当前数据流匹配信息的取值,得到当前最小范围数据流匹配信息,最小范围匹配模块152与组合规则模块151连接;更新规则生成模块153,用于修改最小范围数据流匹配信息,生成网络更新规则,将这两种规则的匹配域组合起来,对规则中的每一个匹配域,取其中匹配范围最小的取值作为当前匹配域的取值,更新规则生成模块153与最小范围匹配模块152连接;更新匹配模块154,用于以网络更新规则匹配被更新流规则,然后将匹配域的目的ip修改为第二条规则匹配域的目的ip,生成新的规则,更新匹配模块154与更新规则生成模块153连接;源地址修改模块155,用于将被更新流规则包含的源IP地址修改为规约树父节点中的IP地址,去匹配其他的规则,将匹配到规则源ip地址修改为规约树父节点中的ip地址,这些规则即为新增加的规则集合,源地址修改模块155与更新匹配模块154连接。
[0111] 综上所述,本发明提供的一种基于别名规约树的流规则冲突检测方法及系统,具有以下有益效果:本发明克服已有技术的不足,提出了一种规则冲突检测的分治算法,能够准确地检测防火墙等应用程序下发的策略是否被其他程序直接或间接违反,没用的流表项应该被过滤掉,确保应用程序在物理交换机对应的端口上有足够的权限安装流规则;然后,使用基于规约树和字典树的分治算法对流表项中的所有匹配域进行快速匹配;最后,分析这些流规则冲突的动作,确认它们是否可以被组合。如果可以被组合,就使用已有的组合操作符解析这类冲突;否则,对应用程序所读取的网络状态进行更新,解决了传统技术中的匹配错误及误报流规则动作冲突的技术问题,具有很高的商业价值和实用性。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈