CN102387160B - 一种基于ip报文五元组过滤策略的***和方法 - Google Patents
一种基于ip报文五元组过滤策略的***和方法 Download PDFInfo
- Publication number
- CN102387160B CN102387160B CN201110413606.4A CN201110413606A CN102387160B CN 102387160 B CN102387160 B CN 102387160B CN 201110413606 A CN201110413606 A CN 201110413606A CN 102387160 B CN102387160 B CN 102387160B
- Authority
- CN
- China
- Prior art keywords
- tuple
- data
- address
- fifo
- rule
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于IP报文五元组过滤策略的***和方法,所述***包括五元组的FIFO、DispatchFSM仲裁模块、HashFilter、结果收集器模块和SRAM访问控制器,其中存储五元组的FIFO的数据被DispatchFSM仲裁模块分发到多个HashFilter中,SRAM访问控制器从多个Hash过滤器读取数据并进行规则匹配;所述方法首先将用户设定的规则表通过PCIe接口按照一定的算法写入到QDR的某个地址,当存储五元组的FIFO有数据时,从FIFO中读取一组数据,通过四元组按照相同的算法计算出存贮与之对应的在QDR中的规则,将其取出后进行比较,若匹配则成功,将规则中的动作信息提取出传输给后续模块,按照用户要求产生相应的数据包。本发明提供的过滤策略的***和方法,不会大量占用内核资源,降低了***调用带来的开销。
Description
技术领域
本发明属于网络安全领域,具体涉及一种基于IP报文五元组过滤策略的***和方法。
背景技术
公开号为CN101068229的申请专利基于Linux***平台,实现了网络内容分析与实时监控。实现了在网络层过滤应用层信息的目的,利用网络过滤器Netfilter框架,在内核态下进行数据包采集与过滤。其大量使用了Linux内核资源,增加了***调用带来的开销。
本发明采用FPGA实现了针对IP包中的源目IP地址,源目端口以及协议进行过滤的策略,可解放CPU,从而提高主机的性能,增强对网络的监控能力,保证网络的安全性。
发明内容
本发明克服现有技术不足,采用FPGA实现了针对IP包中的源目IP地址,源目端口以及协议进行过滤的策略,可解放CPU,从而提高主机的性能,增强对网络的监控能力,保证网络的安全性。
本发明提供了一种基于IP报文五元组过滤策略的***,包括五元组的FIFO、DispatchFSM仲裁模块、HashFilter、结果收集器模块和SRAM访问控制器,其中存储五元组的FIFO的数据被DispatchFSM仲裁模块分发到多个HashFilter中,SRAM访问控制器从多个Hash过滤器读取数据并进行规则匹配。
本发明提供了一种基于IP报文五元组过滤策略的***,包括AppInfoRam,用于存储附加信息。
本发明提供了一种基于IP报文五元组过滤策略的***,DispatchFSM仲裁模块轮询的将每个四元组产生的地址写入到HashFilter中。
本发明提供了一种基于IP报文五元组过滤策略的***,Hash过滤器是并行的。
本发明还提供了一种基于IP报文五元组过滤策略的方法,首先将用户设定的规则表通过PCIe接口按照一定的算法写入到QDR的某个地址,当存储五元组的FIFO有数据时,从FIFO中读取一组数据,通过四元组按照相同的算法计算出存贮与之对应的在QDR中的规则,将其取出后进行比较,若匹配则成功,将规则中的动作信息提取出传输给后续模块,按照用户要求产生相应的数据包。
本发明提供的基于IP报文五元组过滤策略的方法,利用DispatchFSM仲裁模块实现数据的仲裁,轮询的将每个四元组产生的地址写入对应的HashFilter中。
本发明提供的基于IP报文五元组过滤策略的方法,SRAM访问控制器从多个Hash过滤器的访问请求中选择一个,发送到规则管理模块进行匹配。
本发明提供的基于IP报文五元组过滤策略的方法,DispatchFSM仲裁模块将四元组产生的地址写到Buffer中,并将四元组数据写入到与Buffer对应的HashFilter中。
本发明提供的基于IP报文五元组过滤策略的方法,该方法采用FPGA可编程技术,针对源目IP地址、源目端口以及协议进行过滤。
本发明提供的基于IP报文五元组过滤策略的方法,结果收集器将所有Hash过滤器产生的过滤结果收集起来,并通知PCI-E控制器。
本发明提供的基于IP报文五元组过滤策略的方法,首先将每个“元”执行32位异或运算得到一个32位数,将这个数右移17位并与本身异或,再将得到的结果左移15位并与本身进行一次异或运算得到一个新的32位数,从而产生地址T。
本发明提供的基于IP报文五元组过滤策略的方法,每个四元组产生的地址被提供给QDR SDRAM,并读取其对应的规则。
本发明提供的基于IP报文五元组过滤策略的方法,将每个五元组产生的12个地址依次写入RAM中,之后再读取下一个五元组并进行同样操作。
本发明提供的基于IP报文五元组过滤策略的方法,每一个五元组产生的12个地址对应一个Buffer;从Buffer中取出一个地址进行Hash过滤。
与现有技术相比,本发明的有益效果在于:不在内核态下进行数据包采集与过滤,从而不会大量占用内核资源,降低了***调用带来的开销。而且本发明采用FPGA实现了针对IP包中的源目IP地址,源目端口以及协议进行过滤的策略,解放了CPU,在提高主机的性能的同时,也保证了网络的安全性。
附图说明
图1是本发明结构示意图;
图2是本发明的五元组产生12个地址对应的Buffer示意图;
图3是本发明的DispatchFSM状态机流程示意图。
具体实施方式
该方法主要检测网络数据包的源目IP地址,源目端口以及协议,与规则表中的源目IP地址,源目端口以及协议进行匹配。结果一致的数据包,根据规则过滤结果,分析包头信息及过滤动作,判断是否发送封堵包以及发送哪种类型的封堵包。
本发明采用FPGA可编程技术,针对源目IP地址、源目端口以及协议进行过滤。首先将用户设定的规则表通过PCIe接口按照一定的算法写入到QDR的某个地址,当存储五元组的FIFO有数据时,从FIFO中读取一组数据,通过四元组按照相同的算法计算出存贮与之对应的在QDR中的规则,将其取出后进行比较,若匹配则成功,将规则中的动作信息提取出传输给后续模块,按照用户要求产生相应的数据包。
结构框图如下所示,该结构采用8路流水实现并行处理。规则过滤模块有1个DispatchFSM仲裁模块实现数据的仲裁,轮询的将每个四元组产生的地址写入到Buffer中,并将四元组数据写入到与Buffer对应的HashFilter中。片外SRAM访问控制器从8个Hash过滤器的访问请求中选择一个,发送到规则管理模块。当所查询的规则数据返回时,通知对应的Hash过滤器。
结果收集器将所有Hash过滤器产生的过滤结果收集起来,通知PCI-E控制器。由于所得到的计算结果相对较少,我们使用一个结果收集器即可。
首先将本轮中使能的每个“元”执行32位异或运算得到一个32位数,将这个数右移17位并与本身异或,再将得到的结果左移15位并与本身进行一次异或运算得到一个新的32位数,这个数就是产生的地址T,该地址需要提供给QDR SDRAM,读取其对应的规则。将产生的12个地址依次写入RAM0中;完成此操作后再读取另一个五元组,进行计算将其地址写入RAM1中;依次再向RAM2,RAM7写入。并将附加信息存入AppInfoRam中,AppInfoRam存储数据格式如图2;
每一个五元组产生的12个地址对应一个Buffer;从Buffer中取出一个地址进行Hash过滤。
规则过滤算法是一个复杂耗时的算法,需要进行大量的数学逻辑运算。为了加速规则过滤,最好的办法就是增加处理电路的并行性,利用多个数学逻辑单元(过滤单元)同时过滤多个IP报文的五元组。
根据所选用FPGA芯片规模的不同,我们可以实现不同数量的过滤单元。当然,各个并行运算部件的数量应该与各总算法运算量的大小成比例,图中用了1个DispatchFsm仲裁模块、8个Hash过滤器。
模块DispatchFSM状态机如图3所示。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所述领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者同等替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种基于IP报文五元组过滤策略的***,包括五元组的FIFO、DispatchFSM仲裁模块、Hash过滤器、结果收集器模块和SRAM访问控制器,其中存储五元组的FIFO的数据被DispatchFSM仲裁模块分发到多个Hash过滤器中,SRAM访问控制器从多个Hash过滤器读取数据并进行规则匹配;所述规则匹配采用FPGA可编程技术,针对源目IP地址、源目端口以及协议进行过滤;首先将用户设定的规则表通过PCIe接口写入到4倍数据倍率QDR的某个地址,当存储五元组的FIFO有数据时,从FIFO中读取一组数据,通过四元组计算出存贮与之对应的在4倍数据倍率QDR中的规则,将其取出后进行比较,若匹配则成功,将规则中的动作信息提取出传输给后续模块,按照用户要求产生相应的数据包;
所述***包括AppInfoRam,用于存储附加信息;
所述DispatchFSM仲裁模块轮询的将每个四元组产生的地址写入到Hash过滤器中;所述四元组产生的地址过程为:首先将本轮中使能的每个“元”执行32位异或运算得到一个32位数,将这个数右移17位并与本身异或,再将得到的结果左移15位并与本身进行一次异或运算得到一个新的32位数,这个数就是产生的地址T;
所述Hash过滤器是并行的。
2.一种基于IP报文五元组过滤策略的方法,首先将用户设定的规则表通过PCIe接口写入到4倍数据倍率QDR的某个地址,当存储五元组的FIFO有数据时,从FIFO中读取一组数据,通过四元组计算出存贮与之对应的在4倍数据倍率QDR中的规则,将其取出后进行比较,若匹配则成功,将规则中的动作信息提取出传输给后续模块,按照用户要求产生相应的数据包;
利用DispatchFSM仲裁模块实现数据的仲裁,轮询的将每个四元组产生的地址写入对应的Hash过滤器中;所述四元组产生的地址过程为:首先将本轮中使能的每个“元”执行32位异或运算得到一个32位数,将这个数右移17位并与本身异或,再将得到的结果左移15位并与本身进行一次异或运算得到一个新的32位数,这个数就是产生的地址T;
SRAM访问控制器从多个Hash过滤器的访问请求中选择一个,发送到规则管理模块进行匹配;
DispatchFSM仲裁模块将四元组产生的地址写到Buffer中,并将四元组数据写入到与Buffer对应的Hash过滤器中。
3.权利要求2的方法,其特征在于该方法采用FPGA可编程技术,针对源目IP地址、源目端口以及协议进行过滤。
4.权利要求2或3的方法,其特征在于结果收集器将所有Hash过滤器产生的过滤结果收集起来,并通知PCI-E控制器。
5.权利要求4的方法,其特征在于,每个四元组产生的地址被提供给4倍数据倍率QDRSDRAM,并读取其对应的规则。
6.权利要求5的方法,其特征在于,将每个五元组产生的12个地址依次写入RAM中,之后再读取下一个五元组并进行同样操作。
7.权利要求6的方法,其特征在于,每一个五元组产生的12个地址对应一个Buffer;从Buffer中取出一个地址进行Hash过滤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110413606.4A CN102387160B (zh) | 2011-12-13 | 2011-12-13 | 一种基于ip报文五元组过滤策略的***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110413606.4A CN102387160B (zh) | 2011-12-13 | 2011-12-13 | 一种基于ip报文五元组过滤策略的***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102387160A CN102387160A (zh) | 2012-03-21 |
CN102387160B true CN102387160B (zh) | 2014-10-22 |
Family
ID=45826134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110413606.4A Active CN102387160B (zh) | 2011-12-13 | 2011-12-13 | 一种基于ip报文五元组过滤策略的***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102387160B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254395B (zh) * | 2016-10-08 | 2019-06-14 | 湖南智卓创新信息产业股份有限公司 | 一种数据过滤方法及*** |
CN107483508B (zh) * | 2017-09-30 | 2020-04-24 | 北京东土军悦科技有限公司 | 报文过滤方法、装置、设备及存储介质 |
CN114006868B (zh) * | 2021-10-30 | 2024-04-26 | 杭州迪普信息技术有限公司 | 流量筛选方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564547A (zh) * | 2004-03-25 | 2005-01-12 | 上海复旦光华信息科技股份有限公司 | 保持连接特性的高速过滤分流方法 |
CN101572891A (zh) * | 2009-06-15 | 2009-11-04 | 东南大学 | 基于fpga的3g数据包过滤***及方法 |
CN101702723A (zh) * | 2009-10-30 | 2010-05-05 | 曙光信息产业(北京)有限公司 | Ip报文的过滤方法和装置 |
CN101707617A (zh) * | 2009-12-04 | 2010-05-12 | 福建星网锐捷网络有限公司 | 报文过滤方法、装置及网络设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8036232B2 (en) * | 2006-08-22 | 2011-10-11 | Samsung Electronics Co., Ltd | Apparatus and method for filtering packet in a network system using mobile IP |
-
2011
- 2011-12-13 CN CN201110413606.4A patent/CN102387160B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564547A (zh) * | 2004-03-25 | 2005-01-12 | 上海复旦光华信息科技股份有限公司 | 保持连接特性的高速过滤分流方法 |
CN101572891A (zh) * | 2009-06-15 | 2009-11-04 | 东南大学 | 基于fpga的3g数据包过滤***及方法 |
CN101702723A (zh) * | 2009-10-30 | 2010-05-05 | 曙光信息产业(北京)有限公司 | Ip报文的过滤方法和装置 |
CN101707617A (zh) * | 2009-12-04 | 2010-05-12 | 福建星网锐捷网络有限公司 | 报文过滤方法、装置及网络设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102387160A (zh) | 2012-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572574B (zh) | 基于千兆以太网视觉协议的以太网控制器ip核及方法 | |
US20220156648A1 (en) | Systems for constructing hierarchical training data sets for use with machine-learning and related methods therefor | |
CN102387160B (zh) | 一种基于ip报文五元组过滤策略的***和方法 | |
CN110546654A (zh) | 通过构造接口的带宽控制来增强dnn模块的处理性能 | |
CN107124286A (zh) | 一种海量数据高速处理、交互的***及方法 | |
CN108021487B (zh) | 一种gpu图形处理性能监测与分析方法 | |
JP2014170552A5 (zh) | ||
CN102497322A (zh) | 一种基于分流网卡和多核cpu实现的高速包过滤设备和方法 | |
CN104111870B (zh) | 一种中断处理装置及中断处理方法 | |
CN104065588B (zh) | 一种数据包调度和缓存的装置及方法 | |
CN102006142A (zh) | 用于基于误差保护包的帧的接收器 | |
CN102098227A (zh) | 报文捕获方法及内核模块 | |
CN102970244A (zh) | 一种多cpu核间负载均衡的网络报文处理方法 | |
CN107102897A (zh) | 一种多gpu并行处理的数据库主动防御方法 | |
CN103544098B (zh) | 一种压力测试的方法和装置 | |
CN109769029A (zh) | 基于用电信息采集***的通信连接方法及终端设备 | |
CN104156299A (zh) | 一种用于并行***的监测方法 | |
CN103235754B (zh) | 分布式文件***中请求的处理方法和装置 | |
CN103885900B (zh) | 数据访问处理方法、PCIe设备和用户设备 | |
CN106817262A (zh) | 一种日志分析装置 | |
CN103916316A (zh) | 网络数据包线速捕获方法 | |
CN103995789B (zh) | 一种直接内存存取的实现***及方法 | |
CN103095595B (zh) | 一种基于单向并行多链表的网络数据管理方法及*** | |
CN105139890B (zh) | 一种信息处理方法及固态硬盘 | |
CN204720499U (zh) | 一种具有压力检测功能的加酸机 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220728 Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100084 Beijing Haidian District City Mill Street No. 64 Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |