CN101753542B - 一种加速防火墙过滤规则匹配的方法及装置 - Google Patents
一种加速防火墙过滤规则匹配的方法及装置 Download PDFInfo
- Publication number
- CN101753542B CN101753542B CN200810227966A CN200810227966A CN101753542B CN 101753542 B CN101753542 B CN 101753542B CN 200810227966 A CN200810227966 A CN 200810227966A CN 200810227966 A CN200810227966 A CN 200810227966A CN 101753542 B CN101753542 B CN 101753542B
- Authority
- CN
- China
- Prior art keywords
- attribute
- item
- packet
- rule
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种加速防火墙过滤规则匹配的方法及装置,包括:将预先选定的防火墙过滤规则集的属性项的属性信息构建为线性分布的属性区间,将构建的属性区间与相应属性项的属性信息中包含该属性区间的过滤规则相关联;进行数据包过滤时,查询数据包中所述选定属性项的属性信息,从构建的属性区间中搜索所述查询到的属性信息归属的区间,利用搜索到的区间关联的过滤规则构建与各选定属性项一一对应的规则集合;获取所述构建出的与各选定属性项一一对应的规则集合的交集,将其添加到匹配规则集合中;按照所述匹配规则集合中过滤规则的优先级高低依次对所述数据包进行规则匹配,直到找出完全匹配的规则。本发明能够提高防火墙的过滤规则匹配效率。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种加速防火墙过滤规则匹配的方法及装置。
背景技术
数据包过滤系统是防火墙最基本、最重要、也是最核心的部分。防火墙过滤规则集是指防火墙进行访问控制时管理员配置的用来限制网络中的数据包是否可以通过的规则集合。常见的数据包过滤过程一般采用将数据包从防火墙过滤规则集的第一条规则开始顺序匹配的策略,如果某条规则匹配成功,则执行该条规则相应的动作,然后匹配下一个数据包。一个防火墙过滤规则集可能包含几十条或者更多规则,但由于规则之间存在某种关联关系,所以规则必须按照某种顺序进行排列,这就是防火墙过滤规则采用顺序匹配的原因。但是过滤规则的顺序匹配算法效率太低,从而使防火墙吞吐量急剧下降,严重影响了网络的性能。随着网络的高速发展,防火墙的数据包过滤必须不断地被优化来妥善处理网络流量的需求和防范攻击。为了缩短点到点的延迟,就要减少数据包匹配的时间。因此,高效且易于实现的过滤策略的优化主要是加快该策略中的数据包过滤规则匹配的速度。
在过滤策略里,数据包过滤的主要任务是基于一组规则描绘的过滤策略来对数据包进行分类。过滤数据包使用的信息常常包含在数据包的包头里,通常为传输协议、源IP地址、源端口号、目的IP地址和目的端口号。每一个过滤规则就是数据包包头的一个数组值。如果每一个数据包的包头匹配相应的某一个规则,那么,我们就说该数据包匹配这个规则。在防火墙中,如果一个数据包匹配一个规则的话,就要执行一些相关的动作。这些动作将指示是否去拒绝或是接受数据包到一个特定接口。如果一个数据包没有和一个过滤策略中的任何一个规则匹配成功,那么就要按照默认规则将该包丢弃,一般的默认规则(过滤策略中的最后一个规则)是拒绝。
很多学者和研究人员对防火墙过滤策略的优化问题提出了很多有用的解决方法,目前普遍使用的过滤规则匹配的方法是数据包按照过滤规则的优先级顺序进行匹配,以首次匹配到的规则为准。现有技术中使用的过滤规则匹配方式是轮循方式,例如,一个过滤策略中有1000条过滤规则时,每一个数据包的包头依次和这1000条规则进行比较直到找到一条完全匹配的规则。可以发现采用现有技术中的过滤规则匹配的方法对数据包进行过滤时,随着过滤规则的增多,防火墙中的性能下降非常明显。
发明内容
本发明提供一种加速防火墙过滤规则匹配的方法及装置,用以解决现有技术中防火墙对数据包进行过滤规则匹配时,若过滤规则较多,则防火墙的性能下降明显的问题。
本发明所述技术方案如下:
一种加速防火墙过滤规则匹配的方法,包括步骤:
A、将预先选定的防火墙过滤规则集的属性项的属性信息构建为线性分布的属性区间,将构建的属性区间与相应属性项的属性信息中包含该属性区间的过滤规则相关联;
B、进行数据包过滤时,查询所述数据包中所述选定属性项的属性信息,从构建的属性区间中搜索所述查询到的属性信息归属的属性区间,利用搜索到的属性区间关联的过滤规则构建与各选定属性项一一对应的规则集合;
C、获取所述构建出的与各选定属性项一一对应的规则集合的交集,将其添加到匹配规则集合中;
D、按照所述匹配规则集合中过滤规则的优先级高低依次对所述数据包进行规则匹配,直到找出完全匹配的规则。
较佳地,所述属性项为源地址或者目的地址或者源端口号或者目的端口号或者传输协议。
较佳地,所述步骤B与步骤C之间还包括将所述防火墙过滤规则集中对某一选定属性项无任何要求的过滤规则添加到构建出的与该属性项一一对应的规则集合中的步骤。
较佳地,所述步骤D中还包括按照所述找出的完全匹配的规则对应的动作对所述数据包进行相应的处理的步骤。
较佳地,所述属性项对应的线性分布的属性区间按照属性项的属性信息的大小顺序线性排列,与一个属性项对应的任意两个线性分布的属性区间之间不存在交集。
一种加速防火墙过滤规则匹配的装置,包括属性区间构建模块、数据包属性查询模块、属性区间搜索模块、属性项规则集合形成模块、匹配规则集合形成模块及规则匹配模块,其中,
属性区间构建模块,用于将预先选定的防火墙过滤规则集的属性项的属性信息构建为线性分布的属性区间,以及将构建的属性区间与相应属性项的属性信息中包含该属性区间的过滤规则相关联;
数据包属性查询模块,在进行数据包过滤时,用于查询所述数据包中所述选定属性项的属性信息;
属性区间搜索模块,用于从所述构建的属性区间中搜索所述查询到的属性信息归属的属性区间;
属性项规则集合形成模块,用于利用搜索到的属性区间关联的过滤规则构建与各选定属性项一一对应的规则集合;
匹配规则集合形成模块,用于获取所述构建出的与各选定属性项一一对应的规则集合的交集,将其添加到匹配规则集合中;
规则匹配模块,用于按照所述匹配规则集合中过滤规则的优先级高低依次对所述数据包进行规则匹配,直到找出完全匹配的规则。
较佳地,所述属性项为源地址或者目的地址或者源端口号或者目的端口号或者传输协议。
较佳地,所述属性项规则集合形成模块还用于将所述防火墙过滤规则集中对某一选定属性项无任何要求的过滤规则添加到构建出的与该属性项一一对应的规则集合中。
本发明有益效果如下:
现有技术中防火墙对数据包进行过滤时采用顺序遍历过滤规则的方式进行规则匹配,其效率很低,而当防火墙在过滤数据包时采用本发明所述的线性分布检索方式进行过滤规则匹配时,可以缩小匹配规则集合,大幅度提高规则匹配效率。
附图说明
图1为本发明所述加速防火墙过滤规则匹配的方法的流程图;
图2为本发明所述加速防火墙过滤规则匹配的装置的结构框图。
具体实施方式
下面将结合各个附图对本发明的具体实现过程予以说明。
请参阅图1,该图为本发明所述加速防火墙过滤规则匹配的方法的流程图,其主要包括步骤:
步骤10、将预先选定的防火墙过滤规则集的属性项的属性信息构建为线性分布的属性区间;
所述属性项为源地址或者目的地址或者源端口号或者目的端口号或者传输协议。
所述属性项对应的线性分布的属性区间按照属性项的属性信息的大小顺序线性排列,与一个属性项对应的任意两个线性分布的属性区间之间不存在交集。
步骤11、将构建的线性分布的属性区间与相应属性项的属性信息中包含该属性区间的过滤规则相关联;
步骤12、进行数据包过滤时,查询所述数据包中所述选定属性项的属性信息;
步骤13、从构建的线性分布的属性区间中搜索所述查询到的属性信息归属的属性区间;
步骤14、利用搜索到的区间关联的过滤规则构建与各选定属性项一一对应的规则集合;
步骤15、获取所述构建出的与各选定属性项一一对应的规则集合的交集,将其添加到匹配规则集合中;
步骤16、按照所述匹配规则集合中过滤规则的优先级高低依次对所述数据包进行规则匹配,直到找出完全匹配的规则,按照该找出的规则对应的动作对所述数据包进行相应的处理。
进一步地,对于防火墙过滤规则集中对对某一选定属性项无任何要求的过滤规则,本发明所述方法中将防火墙过滤规则集中对某一选定属性项无任何要求的过滤规则直接添加到步骤14中构建出的与该属性项一一对应的规则集合中,然后再执行步骤15,即按照所述匹配规则集合中过滤规则的优先级高低依次对所述数据包进行规则匹配。
下面通过一具体实例对本发明上述方法予以进一步详细的阐述。
用户配置的防火墙过滤规则集如下表,各条过滤规则的序号就是其优先级。
将上述的规则集中的源地址属性项及目的地址属性项分别进行线性化处理。首先,将规则集中的源地址表示成(ip1,ip2)地址区间的形式,ip1是开始地址,ip2是结束地址,然后,根据ip1的大小进行排序,如果发现相邻地址区间有重复的部分则需要进行拆分,源地址线性化后如下表:
数组下标 | Ip1 | Ip2 | 规则序号 |
0 | 11.22.1.0 | 11.22.1.255 | 1,6,7,11 |
1 | 11.22.2.0 | 11.22.2.255 | 2,6,8,9,11 |
2 | 11.22.3.0 | 11.22.3.16 | 3,4,10,11 |
3 | 11.22.3.17 | 11.22.3.255 | 4,10,11 |
4 | 11.22.33.0 | 11.22.33.255 | 12 |
拆分举例:规则3和4源地址存在交集,如上表所示将规则4中的源地址11.22.3.*拆分成区间(11.22.3.0,11.22.3.16)和(11.22.3.17,11.22.3.255);规则6、10、11也都进行了相应的拆分。
然后,将规则集中的目的地址表示成(ip1,ip2)地址区间的形式,ip1是开始地址,ip2是结束地址,然后,根据ip1的大小进行排序,如果发现相邻地址区间有重复的部分则需要进行拆分,目的地址线性化后如下表:
数组下标 | Ip1 | Ip2 | 规则序号 |
0 | 11.22.33.0 | 11.22.33.16 | 6,7,8 |
1 | 11.22.33.16 | 11.22.33.19 | 5,7,8 |
2 | 11.22.33.20 | 11.22.33.20 | 5,7,8,11 |
3 | 11.22.33.21 | 11.22.33.24 | 5,7,8 |
4 | 11.22.44.0 | 11.22.44.255 | 12 |
对于源地址或目的地址中是any,即对源地址或目的地址没有任何限制的过滤规则,我们分别建立源地址any链表和目的地址any链表如下:
A、源地址any链表→(5,13)
B、目的地址any链表→(1,2,3,4,9,10,13)
下面举例说明如何对数据包进行过滤规则加速匹配:
一个待过滤的数据包的源地址、目的地址、协议、端口分别是11.22.3.138、11.22.33.23、tcp、80。
第一步、根据源地址11.22.3.138在源地址线性分布中快速索引到表项3,得到了匹配的规则集合4、10、11;
第二步、因为源地址any列表也一定会和此地址匹配,所以源地址匹配的规则集合变成4、10、11、5、13;
第三步、根据目的地址11.22.33.23在目的地址分布可以快速索引到表项3得到匹配的规则集合5、7、8;
第四步、合并目的地址any链表,匹配的规则集合变成5、7、8、1、2、3、4、9、10、13;
第五步,求源地址和目的地址匹配的规则的交集为4、5、10、13;
第六步、按照规则序号的顺序进行其他属性的匹配可以得到匹配的规则为4。
如果此数据包按照现有技术中顺序匹配的方式进行过滤规则匹配,那么必须和规则1、2、3依次进行匹配运算,而采用本发明所述加速防火墙过滤规则匹配的方法就可以直接和规则4进行匹配运算,而且随规则数量的增加,这种匹配性能的差异将愈加明显。
相应于本发明上述方法,本发明进而提供了一种加速防火墙过滤规则匹配的装置,请参阅图2,该图为本发明所述加速防火墙过滤规则匹配的装置的结构框图,其主要包括属性区间构建模块、数据包属性查询模块、属性区间搜索模块、属性项规则集合形成模块、匹配规则集合形成模块及规则匹配模块,其中,
属性区间构建模块,用于将预先选定的防火墙过滤规则集的属性项的属性信息构建为线性分布的属性区间,以及将构建的属性区间与相应属性项的属性信息中包含该属性区间的过滤规则相关联;所述属性项为源地址或者目的地址或者源端口号或者目的端口号或者传输协议。
数据包属性查询模块,在进行数据包过滤时,用于查询所述数据包中所述选定属性项的属性信息。
属性区间搜索模块,用于从所述构建的线性分布的属性区间中搜索数据包属性查询模块查询到的属性信息归属的属性区间,将搜索结果发送给属性项规则集合形成模块。
属性项规则集合形成模块,用于利用属性区间搜索模块搜索到的属性区间关联的过滤规则构建与各选定属性项一一对应的规则集合;还用于将所述防火墙过滤规则集中对某一选定属性项无任何要求的过滤规则添加到构建出的与该属性项一一对应的规则集合中。
匹配规则集合形成模块,用于获取属性项规则集合形成模块构建出的与各选定属性项一一对应的规则集合的交集,将其添加到匹配规则集合中。
规则匹配模块,用于按照所述匹配规则集合中过滤规则的优先级高低依次对所述数据包进行规则匹配,直到找出完全匹配的规则。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种加速防火墙过滤规则匹配的方法,其特征在于,包括步骤:
A、将预先选定的防火墙过滤规则集的属性项的属性信息构建为线性分布的属性区间,将构建的属性区间与相应属性项的属性信息中包含该属性区间的过滤规则相关联;
B、进行数据包过滤时,查询所述数据包中所述选定属性项的属性信息,从构建的属性区间中搜索所述查询到的属性信息归属的属性区间,利用搜索到的属性区间关联的过滤规则构建与各选定属性项一一对应的规则集合;
C、获取所述构建出的与各选定属性项一一对应的规则集合的交集,将其添加到匹配规则集合中;
D、按照所述匹配规则集合中过滤规则的优先级高低依次对所述数据包进行规则匹配,直到找出完全匹配的规则。
2.如权利要求1所述的方法,其特征在于,所述属性项为源地址或者目的地址或者源端口号或者目的端口号或者传输协议。
3.如权利要求1或2所述的方法,其特征在于,所述步骤B与步骤C之间还包括将所述防火墙过滤规则集中对某一选定属性项无任何要求的过滤规则添加到构建出的与该属性项一一对应的规则集合中的步骤。
4.如权利要求1或2所述的方法,其特征在于,所述步骤D中还包括按照所述找出的完全匹配的规则对应的动作对所述数据包进行相应的处理的步骤。
5.如权利要求1所述的方法,其特征在于,所述属性项对应的线性分布的属性区间按照属性项的属性信息的大小顺序线性排列,与一个属性项对应的任意两个线性分布的属性区间之间不存在交集。
6.一种加速防火墙过滤规则匹配的装置,其特征在于,包括属性区间构建模块、数据包属性查询模块、属性区间搜索模块、属性项规则集合形成模块、匹配规则集合形成模块及规则匹配模块,其中,
属性区间构建模块,用于将预先选定的防火墙过滤规则集的属性项的属性信息构建为线性分布的属性区间,以及将构建的属性区间与相应属性项的属性信息中包含该属性区间的过滤规则相关联;
数据包属性查询模块,在进行数据包过滤时,用于查询所述数据包中所述选定属性项的属性信息;
属性区间搜索模块,用于从所述构建的属性区间中搜索所述查询到的属性信息归属的属性区间;
属性项规则集合形成模块,用于利用搜索到的属性区间关联的过滤规则构建与各选定属性项一一对应的规则集合;
匹配规则集合形成模块,用于获取所述构建出的与各选定属性项一一对应的规则集合的交集,将其添加到匹配规则集合中;
规则匹配模块,用于按照所述匹配规则集合中过滤规则的优先级高低依次对所述数据包进行规则匹配,直到找出完全匹配的规则。
7.如权利要求6所述的装置,其特征在于,所述属性项为源地址或者目的地址或者源端口号或者目的端口号或者传输协议。
8.如权利要求6或7所述的装置,其特征在于,所述属性项规则集合形成模块还用于将所述防火墙过滤规则集中对某一选定属性项无任何要求的过滤规则添加到构建出的与该属性项一一对应的规则集合中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810227966A CN101753542B (zh) | 2008-12-03 | 2008-12-03 | 一种加速防火墙过滤规则匹配的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810227966A CN101753542B (zh) | 2008-12-03 | 2008-12-03 | 一种加速防火墙过滤规则匹配的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101753542A CN101753542A (zh) | 2010-06-23 |
CN101753542B true CN101753542B (zh) | 2012-10-10 |
Family
ID=42479951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810227966A Active CN101753542B (zh) | 2008-12-03 | 2008-12-03 | 一种加速防火墙过滤规则匹配的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101753542B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949413B2 (en) | 2011-06-30 | 2015-02-03 | Juniper Networks, Inc. | Filter selection and resuse |
CN103095665A (zh) * | 2011-11-07 | 2013-05-08 | 中兴通讯股份有限公司 | 一种提升防火墙处理性能的方法和装置 |
CN102957707A (zh) * | 2012-11-16 | 2013-03-06 | 北京星网锐捷网络技术有限公司 | 一种Web应用防火墙的防护方法及装置 |
CN104717088B (zh) * | 2013-12-17 | 2018-01-16 | 北京中科网威信息技术有限公司 | 一种基于十字链表的工业防火墙规则库分析方法 |
CN104253754B (zh) * | 2014-09-11 | 2019-03-15 | 新华三技术有限公司 | 一种acl快速匹配的方法和设备 |
CN104243487A (zh) * | 2014-09-28 | 2014-12-24 | 网神信息技术(北京)股份有限公司 | 安全网关的规则匹配方法和装置 |
CN106874255A (zh) * | 2015-12-11 | 2017-06-20 | 北京国双科技有限公司 | 规则匹配方法及装置 |
CN106657161B (zh) * | 2017-02-28 | 2020-10-09 | 杭州迪普科技股份有限公司 | 数据包过滤的实现方法和装置 |
CN107547498B (zh) * | 2017-05-10 | 2021-05-14 | 新华三信息安全技术有限公司 | 一种审计方法及装置 |
CN108182234B (zh) * | 2017-12-27 | 2021-07-09 | 鼎富智能科技有限公司 | 正则表达式筛选方法和装置 |
CN108566382B (zh) * | 2018-03-21 | 2020-12-08 | 北京理工大学 | 基于规则生命周期检测的防火墙自适应能力提升方法 |
CN109376546B (zh) * | 2018-09-28 | 2022-04-29 | 深信服科技股份有限公司 | 基于全局规则的数据包审计方法、系统、装置及存储介质 |
CN109729082B (zh) * | 2018-12-25 | 2021-11-19 | 国云科技股份有限公司 | 一种基于特征值生成与检索的防火墙规则匹配方法 |
CN113132294B (zh) * | 2019-12-30 | 2022-05-13 | 中国移动通信集团四川有限公司 | 一种数据包的过滤方法、系统及装置 |
CN111416818A (zh) * | 2020-03-17 | 2020-07-14 | 北京金山云网络技术有限公司 | 网站的安全防护方法、装置和服务器 |
CN112364360B (zh) * | 2020-11-11 | 2022-02-11 | 南京信息职业技术学院 | 一种财务数据安全管理系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545254A (zh) * | 2003-11-13 | 2004-11-10 | 中兴通讯股份有限公司 | 一种快速数据包过滤方法 |
-
2008
- 2008-12-03 CN CN200810227966A patent/CN101753542B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545254A (zh) * | 2003-11-13 | 2004-11-10 | 中兴通讯股份有限公司 | 一种快速数据包过滤方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101753542A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101753542B (zh) | 一种加速防火墙过滤规则匹配的方法及装置 | |
CN104408159B (zh) | 一种数据关联、加载、查询方法及装置 | |
CN101753369A (zh) | 一种检测防火墙规则冲突的方法及装置 | |
CN104579941A (zh) | 一种OpenFlow交换机中的报文分类方法 | |
CN109726225B (zh) | 一种基于Storm的分布式流数据存储与查询方法 | |
CN101651623B (zh) | 访问控制列表应用的生成方法及装置 | |
CN105677683A (zh) | 批量数据查询方法和装置 | |
KR20120120159A (ko) | 표 검색 장치, 표 검색 방법, 및, 표 검색 시스템 | |
CN101242362B (zh) | 查找键值生成装置及方法 | |
CN106528674A (zh) | 基于Hbase行健的高性能查询方法和装置 | |
CN101950297A (zh) | 一种海量语义数据的存储和查询方法及装置 | |
CN101345707A (zh) | 一种实现IPv6报文分类的方法及设备 | |
CN105843933B (zh) | 分布式内存列式数据库的索引建立方法 | |
CN108182242A (zh) | 一种用于海量多维数值数据范围查询的索引方法 | |
US20150088868A1 (en) | System and method for managing network and security events via superimposing data | |
CN101848248A (zh) | 一种规则查找方法和装置 | |
CN108011823A (zh) | 多域流表的多级化方法及装置、多级流表查找方法及装置 | |
CN103678550A (zh) | 一种基于动态索引结构的海量数据实时查询方法 | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN102571752A (zh) | 基于服务关联索引图的QoS感知Top-k服务组合系统 | |
CN103077216B (zh) | 子图匹配装置及子图匹配的方法 | |
CN103647773A (zh) | 一种访问控制列表acl行为集快速编码的方法 | |
Jiang et al. | Minimum energy of multicomponent distillation systems using minimum additional heat and mass integration sections | |
CN112131356A (zh) | 一种基于tcam的报文关键字匹配方法和装置 | |
CN112527836A (zh) | 一种基于t-box平台的大数据查询方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |