一种基于别名集规则缩减的流表规则冲突优化方法与流程

文档序号:15624930发布日期:2018-10-09 22:44阅读:655来源:国知局

本发明涉及规则冲突检测技术领域,尤其涉及一种基于别名集规则缩减的流表规则冲突优化方法。



背景技术:

随着新型网络架构软件定义网络的盛行,其相关的设备产品已逐渐趋于实用化、市场化,并得到了诸多研究人员的认可。但是,软件定义网络仍是处于发展阶段的新兴技术,当用户通过北向接口向控制器下发应用策略时,由于内部可能会同时运行多个应用策略,其中包括防火墙等安全应用。由于这些应用执行不同的功能,难免会产生配置规则之间冲突的现象,其中包括非安全应用间的冲突以及非安全应用与安全应用间的冲突。相对于前者的冲突类型,后者的冲突危害性更大。攻击者可以不断地下发与安全应用间形成冲突的应用策略,以达到攻击网络的目的,从而造成网络混乱,降低网络安全防御能力。鉴于以上问题,如何快速地检测出应用策略之间的冲突并采取行之有效的方法去解决已受变得尤为重要。

为了检测流表项规则和防火墙规则之间是否存在冲突,别名集规则缩减算法是把配置规则(包括防火墙规则)转换为集合化的形式,将源地址构成一个集合称之为源规则集,目的地址构成一个集合称之为目的规则集。分别对流表项和防火墙的源规则集和目的规则集进行集合匹配并分析是否存在冲突。虽然,该算法可以通过集合化的形式检测流表项规则和防火墙规则之间的冲突,但是其同样存在着冲突检测误报以及冲突解决方式单一的不足之处。



技术实现要素:

本发明的目的在于一种基于别名集规则缩减的流表规则冲突优化算法,目的是消除原始算法冲突检测误报的现象,并根据不同类型的配置规则提出不同的冲突解决方法以准确、有效地解决冲突。

为解决上述技术问题,本发明提供了一种基于别名集规则缩减的流表规则冲突优化方法,将控制器分为冲突检测模块和冲突解决模块,包括冲突检测方法和冲突解决方法:

所述的冲突检测模块内部又分成了三个模块,包括路径计算模块、防火墙计算模块和冲突分析模块;

所述的冲突检测方法包括:

s1、路径计算模块是基于头部空间解析模型(hsa)获取网络中的可达路径,通过该路径即可获得源地址和目的地址进行接下来的规则匹配,冲突检测方式同样采用原始算法集合化的形式,有所不同的是优化算法分别将交换机流表项规则和防火墙规则的源地址和目的地址提取出来形成一个二元组集合,形如(源地址,目的地址),然后提交给冲突分析模块进行后续的冲突检测;

s2、防火墙计算模块主要的作用是维护防火墙drop规则的二元组集合,形式如同流表项规则集合。对更新的防火墙规则及时做集合化处理,并提交给冲突分析模块进行后续的冲突检测;

s3、冲突分析模块主要对路经计算模块和防火墙计算模块分别形成的二元组集合做匹配分析,集合匹配成功说明存在冲突,否则不存在冲突;

冲突解决方法包括:冲突解决模块分为5种冲突解决的方法,包括新流拒绝、更新接受、更新拒绝、规则移除和数据包阻塞;该模块会根据配置规则下发的不同方式采用不同的冲突解决方法,以应对复杂多变的网络场景。

本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

该算法在控制器中设计冲突检测模块和冲突解决模块,针对应用层下发不同类型的配置规则进行实时的冲突检测,判断更新发生时是否产生冲突,同时提供5种不同的冲突解决方式来解决冲突。通过原始算法和优化算法的对比实验,充分论证了优化算法不仅避免了冲突误报的现象,而且在检测和解决冲突的效率上同样是符合要求的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明的优化算法的整体框架图。

图2是本发明的冲突分析方法图。

图3是本发明的冲突解决方法图。

图4是本发明的添加/修改流表项规则流程图。

图5是本发明的删除流表项规则流程图。

图6是本发明的添加/修改防火墙规则流程图。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

如图1-图6所示,本实施例所述的一种基于别名集规则缩减的流表规则冲突优化方法,将控制器分为冲突检测模块和冲突解决模块,包括冲突检测方法和冲突解决方法:

基于原始的别名集规则缩减的优化算法冲突检测方式依赖于图1中的冲突检测模块。这里将其分成了三个模块,包括路径计算模块、防火墙计算模块和冲突分析模块。

1)路径计算模块是基于头部空间解析模型(hsa)而得来。其主要功能是以进入某一入口交换机的主机为起始点,通过匹配符合转发条件的交换机流表项以找到其出口位置,并根据拓扑结构由该交换机的出口位置找到下一跳交换机的入口位置。由此可知源主机的数据包从第一个交换机转发至下一跳交换机,下一跳交换机再匹配符合转发条件的流表项以找到转发的出口位置,以此类推,直至找到最终的目的主机作为该条路径的终止点为止。至此,源主机至目的主机的路径计算完成。当路径获取成功之后,即可获得源地址和目的地址进行接下来的规则匹配。优化算法的冲突检测方式同样采用原始算法集合化的形式,有所不同的是优化算法分别将交换机流表项规则和防火墙规则的源地址和目的地址提取出来形成一个二元组集合,形如(源地址,目的地址),然后提交给冲突分析模块进行后续的冲突检测。

2)防火墙计算模块主要的作用是维护防火墙drop规则的二元组集合,形式如同流表项规则集合。对更新的防火墙规则及时做集合化处理,并提交给冲突分析模块进行后续的冲突检测。

3)冲突分析模块主要对路经计算模块和防火墙计算模块分别形成的二元组集合做匹配分析,集合匹配成功说明存在冲突,否则不存在冲突。为了提高二者的匹配效率,引入数据结构哈希表并以结构体的形式存储二元组集合,同时采用查找时间复杂度为的红黑树形式做冲突解决的方法,以替代传统时间复杂度为的拉链法,使其在二元组匹配时效率得到一定的提升,如图2所示。

2、冲突解决方法

鉴于原始的别名集规则缩减算法冲突解决方式单一的缺点,下面介绍几种冲突解决的方法,如图3所示。

新流拒绝:对某一主机添加一条新流以发至目标主机的行为执行拒绝操作。

更新接受:控制器接受并执行应用层下发的更新规则操作。

更新拒绝:控制器拒绝应用层下发的更新规则操作。

规则移除:对防火墙规则做添加或修改操作时,若当前已有的某一流表项规则集完全违反要更新的防火墙规则集,则需要移除所违反的当前流表项规则集以及交换机中的流表项。

数据包阻塞:当流表项规则集和防火墙规则集发生部分违反时,即防火墙规则集包含于流表项规则集,此时不可以直接做更新拒绝操作。因为在流表项规则中还有部分规则未违反防火墙规则,所以此时需将防火墙的drop规则下发至该条路劲的入口交换机和出口交换机作为其流表项规则,并将其优先级设定高于原流表项规则即可。

下面分别根据新流添加、流表项规则更新、防火墙规则更新等三个方面去考虑其具体符合哪种冲突,并且采用何种方式去解决冲突。

新流添加:当一台主机添加一条新流发至另外一台主机时,若其源地址和目的地址形成的集合完全违反了防火墙drop规则集,则表示其与防火墙规则形成完全冲突,需执行新流拒绝的冲突解决方式。若其未完全违反防火墙drop规则,则进行后续的判断。

流表项规则添加/修改:当交换机的流表项规则发生添加或修改操作时,此时流表项规则可能与防火墙规则发生完全冲突、部分冲突或者间接冲突三种情况。当要更新的流表项规则和防火墙drop规则发生完全违反时,即完全冲突的情况,则采取更新拒绝的操作。当要更新的流表项规则和防火墙drop规则发生部分违反时,即部分冲突的情况,则需要采取数据包阻塞的操作。当上述两种冲突均未发生时,还可能会产生间接冲突,因为交换机流表项规则之间会存在依赖关系,更新一条规则时,整条路径有可能会发生改变,所以通过路径计算模块重新更新与该交换机有关联的所有路径的集合后,再与所有防火墙规则集合做匹配,匹配成功则存在冲突,否则不存在。同时还要判断是完全冲突还是部分冲突来采取更新拒绝或是数据包阻塞的冲突解决方式。具体流程如图4所示。

流表项规则删除:当交换机的流表项规则发生删除操作时,由于交换机流表项规则之间的依赖关系,可能会发生间接冲突的情况。所以,通过路径计算模块重新更新与该交换机有关联的所有路径集合后,再与现有防火墙规则集匹配以判断冲突是否存在。若存在,则根据是完全冲突还是部分冲突来采取更新拒绝或是数据包阻塞的冲突解决方式。具体流程如图5所示。

防火墙规则添加/修改:当防火墙规则发生添加或修改操作时,原来已有的未产生冲突的流表项规则集可能会发生新的冲突,所以需要将现有的流表项规则集与更新的防火墙规则集重新进行规则匹配,并判断冲突是否存在。若存在,则根据是完全冲突还是部分冲突来采取规则移除或是数据包阻塞的冲突解决方式。具体流程如图6所示。

防火墙规则删除:直接进行更新接受的冲突解决方式即可,因为其不会对已有的未产生冲突的流表项规则集造成影响。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1