[发明专利]一种多核板卡ACL规则匹配方法无效
申请号: | 201110453837.8 | 申请日: | 2011-12-30 |
公开(公告)号: | CN103188231A | 公开(公告)日: | 2013-07-03 |
发明(设计)人: | 樊景亮 | 申请(专利权)人: | 北京锐安科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/743 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余功勋 |
地址: | 100044 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多核 板卡 acl 规则 匹配 方法 | ||
技术领域
本发明涉及一种多核板卡ACL规则匹配方法,属于网络安全行业的数据分流和过滤领域。
背景技术
ACL(访问控制列表)技术,是一种数据过滤和控制方法,主要应用于路由器,交换机,防火墙等产品中,用以进行数据的过滤和控制。
在网络安全领域,ACL技术用于通过配置规则,让分流设备对互联网的原始数据包进行过滤,规则可以是端口或IP以及协议,或者是几者的组合。
在一般的实现中分流板卡设备是采用遍历的方式对规则进行匹配。这种方式的问题是当规则数量超过一定的值的时候将会大幅影响性能,从而降低板卡对数据包的分流效率。完全采用硬件实现的板卡很难通过算法进行性能的优化。
而多核卡即是解决这个问题而产生的,它具备了硬件板卡的性能优势,同时可以采用编程的方式通过优化算法提高处理能力。
多核板卡一般都延续硬件分流板卡的实现思路,使用对规则进行遍历的方式进行匹配处理,在规则数量小的时候很快,一般支持10万以内的规则,但是当规则数量增大到一定程度的时候,效率显著降低。这时候使用一种较好的匹配算法成为必然。本文描述的方法可以处理百万级的规则数量,并且速度不会明显降低
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种多核板卡ACL规则匹配方法,本发明能够优化多核分流板卡对于ACL规则的处理能力,大幅提高其分流过滤的处理性能。
本发明通过一种方法对多核板卡的规则匹配流程进行改进,提高其处理能力。具体实现如下:
5元组(源IP,目的IP,源端口,目的端口,协议类别)总计有31种组合,但是实际使用时,用户输入的ACL规则只是这31种组合的一部分,每种组合视为一类。
如图1所示:将用户的规则分为了N类。
每一个类别都使用一个hash表,总计N个哈希表,使用一个指针数组保存指向N个哈希表的指针。指针数组记为Array[N]
每个哈希表下挂的链表是此类别的规则节点,图2所示的是插入了几个节点后的哈希表的状态。
此方法包含新规则插入、规则删除、数据包规则匹配3部分。
1)新规则插入
假设用户配置的规则为规则x(源IP:x.x.x.x目的IP:y.y.y.y,记为RuleX),图2中虚线框中的就是规则x,显示的是插入后的状态。
下面的步骤是规则插入的流程:
第一步:确定新规则的类别,来决定向Array数组的哪个哈希表进行插入。
这里RuleX包含源IP和目的IP,根据图1的类别得知,RuleX对应的类别索引为0,即需要操作的哈希表的指针为Array[0]。
第二步:构造虚拟5元组。
此操作将用户配置的规则扩展,从而得到完整的5元组的信息。用户规则中包含的部分直接拷贝到5元组的对应部分,5元组中其他几个部分,在用户规则中没有包含,则被设置为0。
RuleX的信息被扩展为5元组(sip=x.x.x.x sport=0 dip=y.y.y.y dport=0 proto=0,记为FiveTupleX),其中,sip是源IP,sport是源端口,dip是目的IP,dport是目的端口,proto是协议类型。
第三步:对5元组的信息进行哈希,决定向哈希表的哪个桶中的链表插入。
本方法使用完整的5元组信息进行哈希,可以保持通用性,所有的类别的5元组都可以使用同一个哈希函数。具体的哈希函数可以自写或其他的,具体实现不限。
如果需要更好的散列,那么可以对不同的规则类别使用不同的哈希算法。但不管使用什么算法,需要保持插入、删除、查找使用同一个算法。
如图2根据5元组FiveTupleX进行哈希得到对应的桶索引3
第四步:建立一个节点用来保存规则信息,将这个节点挂到对应索引的桶下面的链表上。如图2所示的虚框的那个节点,节点中保存5元组的信息。
如果新插入规则的5元组信息与已有的某节点的5元组信息完全一致时,不允许进行插入,这样保证规则的唯一性。
2)规则删除
删除规则时用户同样需要指定规则的几个部分,假设用户待删除的规则为图2的规则4(目的端口:2000 协议:tcp,记为Rule4)
第一步:确定待删除规则的类别,来决定从Array数组的哪个哈希表进行查找。
这里根据图1得知Rule4对应的类别索引为4,即需要操作的哈希表的指针为Array[4]
第二部:构造虚拟5元组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京锐安科技有限公司,未经北京锐安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110453837.8/2.html,转载请声明来源钻瓜专利网。