一种访问控制列表的分类匹配方法

文档序号:7895746阅读:467来源:国知局

专利名称::一种访问控制列表的分类匹配方法
技术领域
:本发明涉及一种网络访问控制技术,具体涉及一种访问控制列表的分类匹配方法。
背景技术
:自从因特网(Internet)面世以来,其迅猛增长的势头就从未停止,目前它已成为世界上规模最大、拥有用户和资源最多的一个重要的超大型计算机网络。因特网的商业化使得基于网络的应用越来越多,特别是由于宽带多媒体业务日益普及,用户对因特网的要求也不再仅仅满足于简单的文件传输,而是要去网络提供更加安全、快速和多样化的服务。在现代网络设备中,报文过滤已经成为最常用的功能之一,如防火墙的安全控制策略,路由器的访问列表都是网络安全最基本的保障手段。但是现代网络也同样对转发的性能有着越来越高的要求,尤其是核心网设备和汇聚接入设备。在硬件转发能力不断提升的情况下,报文过滤在时间上的消耗,开始成为影响整机转发能力的瓶颈。尤其当控制策略的数量巨大的时候,传统的查询方式,几乎带来灾难性的结果。有些对规则过滤的实现使用了状态机制,并使用hashtable来进行查找。虽然比简单的链表管理快了很多,但是在流量数目巨大的情况下,由于hash冲突的存在,其下降的幅度也相当明显。即使增加表项容量,也并不能很好的改善冲突率,同时也增加了内存消耗。其次,对于规则控制这样一种可以不断复杂化的过滤方式,如果要靠状态来完全区分不同的两条流,它所需要比对的域的数量在每次查询操作中都对查询速度有着举足轻重的作用,那么当访问列表要控制的区域不仅仅是地址,端口,协议时,消耗就变大了。
发明内容本发明针对现有报文过滤在时间上的消耗大的问题,而提供一种访问列表的分类匹配方法,该方法加速大规模访问列表的查询速度,并使得查询时间不受规则数量的影响。为了达到上述目的,本发明采用如下的技术方案一种访问列表的分类匹配方法,该方法包括如下步骤(1)将访问规则的每个域在访问控制列表里的每种值或范围都设定一个对应到规则列表的bitmap,其中每一个bit都代表以该bit在bitmap里的位置为索引,对应到访问控制列表里的相应访问规则在该域上设定的值是否在该bitmap所代表的范围内;(2)根据经过的报文需要被控制的信息,得到在访问规则的每个域中对应报文相关信息的bitmap,并将得到的所有bitmap进行与操作,得到表示报文与所有访问控制列表之间的匹配关系的bitmap。在本发明的优选实例中,当访问规则数量很多时,将每个域的每种取值对应到访问控制列表的bitmap进行排列组合,形成了多级索引表项。进一步的,在已经配置的访问规则所设定的范围之外再增加一个单独索引表项。3根据上述技术方案形成的本发明针对静态配置好的安全策略,访问列表等具有很好效果。相比之前以简单链表形式构造的访问列表,本发明在规则数量巨大的时候,有着转发性能方面本质上的提高。实验的数据表明,10条以内的规则数目,普通的链表存储查询会快些,但之后随着规则数的逐步增加,普通的链表管理将使整机性能急剧下降,达到500条以后,完全可以做为不宜于实际使用来定性。但使用本发明提供的分类匹配方法,下降幅度始终在10几条普通链表规则时的数值。以下结合附图和具体实施方式来进一步说明本发明。图1为等价集合示意图。图2为分类匹配示意图。具体实施例方式为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。为加速大规模访问控制列表的查询速度,并使其不受规则数量的影响,本发明采用一种访问控制列表的分类匹配方法,该方法的实现机理如下(1)对于一条访问规则,不去具体的分类其域的含义,即不考虑域的类型是ip地址或是协议号,只是作为数据流中某个位置的期望值。由于所有访问规则所能设定的域的数量是相同的,所以本发明为每个域在访问控制列表里所有可能的不同值或范围都设定一个bitmap,其中每一个bit都代表以这个bit在bitmap里的位置为索引,对应到规则列表里的那个规则在这个域上设定的值是否在这个bitmap所代表的范围内。(2)当一条流或是一个报文经过,根据报文里的需要被控制的信息,得到在每个域中对应报文相关信息的bitmap。其中,有多少个域就能得到多少个bitmap,将得到的所有bitmap进行与操作,得到新的bitmap就是该报文与所有访问列表之间的匹配关系。Bit1就表示匹配这个规则,因为所有的域对应的报文信息都落在这个规则为每个域设定的范围内。Bit0就是不匹配,原因可能是没有一个域匹配,也可能是不全部匹配。而最高位bit1在查询结果bitmap里的位置作为索引,所对应的控制列表规则的所指定的匹配后行为,就是这次查询所要执行的最后行为,最常见的就是允许报文通过或拒绝报文通过。进一步的,当访问规则数量很多时,bitmap的长度会很长,这样增加了bitmap与操作的次数,无法实现恒定的查询速度。为此,本发明又将每个域的每种取值对应到访问控制列表的bitmap进行排列组合,组合出来的结果也是几种bitmap,形成了多级索引表项。这样两两组合,也可以三三组合,一次组合所使用的上级表项越多,那么生成最终表项时所经历的表的层次就越少。也就是最终的查询越快。但由于排列组合的基数更大,将导致空间的消耗更大。最终表项里为了查询的便利,在建立这个表时,不再记录与操作得到的bitmap,而是直接将第一个为1的bit代表的规则所设定的操作类型直接记录下来。基于上述表项进行查询的时候,根据报文里的信息,顺着表的层次,最终的结果必然是匹配到最终表项里的某一项,执行其规则。再进一步的,由于访问规则的覆盖是有范围,所以每条流可能找不到匹配的表项。为此,本发明为所有在已经配置的规则所设定的范围之外再增加一个单独索引表项来记录(就是指所有规则都不匹配时,最后有个默认的denyall规则)。所谓的独立表项是指在所有acl规则都不匹配时,默认再最后有一个denyall的动作,这个denyall同样做为一条规则参与到表项的建立,当它之前的所有规则都无法匹配,那么最后必然匹配上这条。所以当所有规则都不匹配时,就必然落到这个特殊表项,而这个表项的行为,可以根据实际情况来决定。基于上述方案,其实施如下如表1所示,本实施例中涉及四元组匹配(含范围匹配),src_ip,dest_ip,L4_protocol,dest_port;规贝Ij数5条。表权利要求1.一种访问列表的分类匹配方法,其特征在于,该方法包括如下步骤(1)将访问规则的每个域在访问控制列表里的每种值或范围都设定一个对应到规则列表的bitmap,其中每一个bit都代表以该bit在bitmap里的位置为索引,对应到访问控制列表里的相应访问规则在该域上设定的值是否在该bitmap所代表的范围内;(2)根据经过的报文需要被控制的信息,得到在访问规则的每个域中对应报文相关信息的bitmap,并将得到的所有bitmap进行与操作,得到表示报文与所有访问控制列表之间的匹配关系的bitmap。2.根据权利要求1所述的一种访问列表的分类匹配方法,其特征在于,当访问规则数量多于一条时,将每个域的每种取值对应到访问控制列表的bitmap进行排列组合,形成了多级索引表项。3.根据权利要求2所述的一种访问列表的分类匹配方法,其特征在于,在已经配置的访问规则所设定的范围之外再增加一个单独索引表项。全文摘要本发明公开了一种访问列表的分类匹配方法,该方法包括如下步骤(1)将访问规则的每个域在访问控制列表里的每种值或范围都设定一个对应到规则列表的bitmap,其中每一个bit都代表以该bit在bitmap里的位置为索引,对应到访问控制列表里的相应访问规则在该域上设定的值是否在该bitmap所代表的范围内;(2)根据经过的报文需要被控制的信息,得到在访问规则的每个域中对应报文相关信息的bitmap,并将得到的所有bitmap进行与操作,得到表示报文与所有访问控制列表之间的匹配关系的bitmap。本发明能够加速大规模访问列表的查询速度,并使得查询时间不受规则数量的影响。文档编号H04L12/56GK102571531SQ201010591480公开日2012年7月11日申请日期2010年12月16日优先权日2010年12月16日发明者傅鑫泉,彭双庭,方昊,汪革申请人:上海博达数据通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1