CN103812860B - 一种基于fpga的高速网络策略匹配方法 - Google Patents
一种基于fpga的高速网络策略匹配方法 Download PDFInfo
- Publication number
- CN103812860B CN103812860B CN201410023681.3A CN201410023681A CN103812860B CN 103812860 B CN103812860 B CN 103812860B CN 201410023681 A CN201410023681 A CN 201410023681A CN 103812860 B CN103812860 B CN 103812860B
- Authority
- CN
- China
- Prior art keywords
- fpga
- tree
- policy
- strategy
- node
- 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
本发明提供了一种基于FPGA的高速网络策略匹配方法,实现使用相对较小的存储空间同时适合硬件中进行较快的策略匹配处理,并使得策略匹配处理性能与策略的数据量无关。本发明的一种基于FPGA的高速网络策略匹配方法,采用五元组,支持五元组精确匹配和IP及端口范围匹配,比传统的纯硬件方式功能更强大,匹配条件和匹配模式更多元化;本发明的策略树节点长度固定512字节,且树层高固定为13的特定树型结构,针对FPGA策略匹配,直接地址定位逻辑处理简单高效,避免消耗大量时间在逻辑运算上,大大提高匹配效率。
Description
技术领域
本发明涉及一种网络匹配方法,尤其是一种基于FPGA的高速网络策略匹配方法。
背景技术
随着网络不断的发展,扩展越来越广,速度越来越快;随着资费的越来越便宜,用户不断的增长,同时用户的使用量也逐年递增,用户的使用量越来越大。原有的防火墙或加密机对与越来越大量的IP网络数据包,压力越来越大,对于防火墙或加密机处理效率要求越来越高。当前大多的防火墙或加密机所采用的策略匹配几种方式,在千兆级别数据处理进或多或少在性能或功能缺陷。
软件方式:业务IP数据通过网卡驱动程序由软件端截取,然后在软件中进行策略匹配以及后续工作,这样在处理功能上或许能满足要求,但存在一个致命缺陷,性能太慢。通过软件截取IP数据包,在CPU中做策略匹配等操作效率上远远不如在硬件上直接操作IP数据包来的快。
现有硬件方式:现有的产品策略匹配纯硬件实现的,不是其实现的策略功能极简单,不能支持多元组复杂的配置条件,就是为了追求速度将硬件空间占用很大,成本大幅度提升,且硬件中除了寻址操作,还有大量逻辑运算导致过于复杂,效率相对本发明要低。
发明内容
本发明提供了一种基于FPGA的高速网络策略匹配方法,实现使用相对较小的存储空间同时适合硬件中进行较快的策略匹配处理,并使得策略匹配处理性能与策略的数据量无关。
实现本发明目的的一种基于FPGA的高速网络策略匹配方法,包括策略树生成方法和策略树匹配方法;
所述策略树生成方法,包括如下步骤:
步骤1:网络策略相关界面设置多条需配置网络策略匹配条件:五元组和策略结果(如:明通、密通、丢弃、填充等);
步骤2:界面配置完毕后,在系统后台生成自定义的二进制模式的策略数据文件;
步骤3:将所述策略数据文件读入内存;
步骤4:从所述策略数据文件中读取一条策略记录;
步骤5:根据所述策略记录中的关键信息,按协议号、源IP、目的IP、源端口、目的端口和策略结果插入FPGA策略树;
步骤6:重复步骤4至步骤5,直到遍历完策略数据文件中的所有策略记录;
步骤7:针对FPGA策略树进行树节点压缩(同类树节点合并);
步骤8:将内存中FPGA策略树的数据采用SPI串行打入FPGA的SRAM或RAM;
所述策略树匹配方法,包括如下步骤:
步骤1:FPGA模块接收到网络IP数据包,并分析出关键条件字段:五元组;
步骤2:FPGA模块寻址到SRAM或RAM的首地址,通过网络IP数据包五元组信息通过FPGA自己的内部13个时钟周期快速寻址定位FPGA策略树,得到策略结果返回,若中途匹配异常,用13个时钟周期直接返回默认设置策略结果,FPGA进行相应后续操作。
进一步,所述五元组包括协议号、源IP、目的IP、源端口和目的端口。
进一步,所述FPGA直接进行寻址策略匹配纯硬件处理。
采用上述进一步方案的有益效果是,纯硬件处理,软件系统异常不工作,业务处理依旧能正常运行不受影响,高效可靠。
进一步,所述策略树节点长度固定512字节,且树层高固定为13的特定树型结构。
采用上述进一步方案的有益效果是,策略树结构及匹配模式针对FPGA中存储策略,遍历匹配次数和存储空间均可控。
进一步,所述策略树的每个节点长度为256*2字节(Unsigned short rule_path[256])存放下一跳节点序号。
采用上述进一步方案的有益效果是,FPGA直接地址定位逻辑处理简单高效,避免消耗大量时间在逻辑运算上,大大提高匹配效率;
进一步,所述策略树13层节点每层节点及子树节点值的内容都相同,会进行节点压缩合并。
采用上述进一步方案的有益效果是,压缩后占用空间比原有空间平均压缩5-10倍,本发明确保存储空间占用可更小,存储硬件成本可更低。
本发明的一种基于FPGA的高速网络策略匹配方法的有益效果如下:
本发明的一种基于FPGA的高速网络策略匹配方法,采用五元组(协议号、源IP、目的IP、源端口、目的端口),支持五元组精确匹配和IP及端口范围匹配,比传统的纯硬件方式功能更强大,匹配条件和匹配模式更多元化;本发明策略树节点长度固定512字节,且树层高固定为13的特定树型结构,针对FPGA策略匹配,直接地址定位逻辑处理简单高效,避免消耗大量时间在逻辑运算上,大大提高匹配效率,相比于传统的纯硬件方式或软件方式本发明的速度更快;采用策略树13层节点每层节点及子树节点值的内容都相同,会进行节点压缩合并,压缩后占用空间比原有空间平均压缩5-10倍,存储空间占用的需求也比传统的方式更低;本发明实现了使用相对较小的存储空间较快的进行策略匹配处理,并使得策略匹配处理性能与策略的数据量无关。
附图说明
图1为本发明的一种基于FPGA的高速网络策略匹配方法的策略树存储模式示意框图。
图2为本发明的一种基于FPGA的高速网络策略匹配方法的策略树树状结构示意框图。
图3为本发明的一种基于FPGA的高速网络策略匹配方法的策略树生产方法流程图。
图4为本发明的一种基于FPGA的高速网络策略匹配方法的策略树匹配方法流程图。
具体实施方式
如图3、4所示,本发明的一种基于FPGA的高速网络策略匹配方法,包括策略树生成方法和策略树匹配方法;
所述策略树生成方法,包括如下步骤:
步骤1:网络策略相关界面设置多条需配置网络策略匹配条件:五元组和策略结果(如:明通、密通、丢弃、填充等);
步骤2:界面配置完毕后,在系统后台生成自定义的二进制模式的策略数据文件;
步骤3:将所述策略数据文件读入内存;
步骤4:从所述策略数据文件中读取一条策略记录;
步骤5:根据所述策略记录中的关键信息,按协议号、源IP、目的IP、源端口、目的端口和策略结果插入FPGA策略树;
步骤6:重复步骤4至步骤5,直到遍历完策略数据文件中的所有策略记录;
步骤7:针对FPGA策略树进行树节点压缩(同类树节点合并);
步骤8:将内存中FPGA策略树的数据采用SPI串行打入FPGA的SRAM或RAM;
所述策略树匹配方法,包括如下步骤:
步骤1:FPGA模块接收到网络IP数据包,并分析出关键条件字段:五元组;
步骤2:FPGA模块寻址到SRAM或RAM的首地址,通过网络IP数据包五元组信息通过FPGA自己的内部13个时钟周期快速寻址定位FPGA策略树,得到策略结果返回,若中途匹配异常,用13个时钟周期直接返回默认设置策略结果,FPGA进行相应后续操作。
进一步,所述五元组包括协议号、源IP、目的IP、源端口和目的端口。
进一步,所述FPGA直接进行寻址策略匹配纯硬件处理。
采用上述进一步方案的有益效果是,纯硬件处理,软件系统异常不工作,业务处理依旧能正常运行不受影响,高效可靠。
进一步,所述策略树节点长度固定512字节,且树层高固定为13的特定树型结构。
采用上述进一步方案的有益效果是,策略树结构及匹配模式针对FPGA中存储策略,遍历匹配次数和存储空间均可控。
进一步,所述策略树的每个节点长度为256*2字节(Unsi gned short rule_path[256])存放下一跳节点序号。
采用上述进一步方案的有益效果是,FPGA直接地址定位逻辑处理简单高效,避免消耗大量时间在逻辑运算上,大大提高匹配效率;
进一步,所述策略树13层节点每层节点及子树节点值的内容都相同,会进行节点压缩合并。
采用上述进一步方案的有益效果是,压缩后占用空间比原有空间平均压缩5-10倍,本发明确保存储空间占用可更小,存储硬件成本可更低。
如图1所示,为本发明的策略树存储模式,即策略树的所有节点都是集中连续的块存储,每个节点定义唯一的位置编号,即上述中下一跳寻址偏移量(孩子节点序号[0-65535])。
如图2所示,为本发明的策略树的树形结构状态,即通过每个节点中下一跳寻址偏移量(孩子节点序号[0-65535])为连接线,将所有节点串连成一棵13层树高的策略树,策略匹配时从策略树根节点遍历13次即可得到最终策略规则结果,反之如果中间匹配没有发现匹配策略直接跳出遍历返回默认策略规则结果。
相关术语解释:
FPGA(Field Programmable Gate Array),即现场可编程门阵列
SPI(Serial PeripheralInterface),即串行外设接口
RAM(Random Access Memory),即随机存储器
SRAM(Static Random Access Memory),即静态随机存储器
IP(Internet Protocol),即网络之间互连的协议,中文简称网协
上面所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神前提下,本领域普通工程技术人员对本发明技术方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。
Claims (4)
1.一种基于FPGA的高速网络策略匹配方法,包括策略树生成方法和策略树匹配方法;
所述策略树生成方法,包括如下步骤:
步骤1:网络策略相关界面设置多条需配置网络策略匹配条件:五元组和策略结果;
步骤2:界面配置完毕后,在系统后台生成自定义的二进制模式的策略数据文件;
步骤3:将所述策略数据文件读入内存;
步骤4:从所述策略数据文件中读取一条策略记录;
步骤5:根据所述策略记录中的关键信息,按协议号、源IP、目的IP、源端口、目的端口和策略结果插入FPGA策略树;策略树的树形结构状态,即将上一跳节点的位置编号作为下一跳位置的寻址偏移量,确定下一跳节点的位置,以相邻两跳节点的位置为连接线,将所有节点串连成一棵13层树高的策略树,节点长度固定512字节;
策略树存储模式,即策略树的所有节点都是集中连续的块存储,每个节点定义唯一的位置编号,即上述中下一跳寻址偏移量;
步骤6:重复步骤4至步骤5,直到遍历完策略数据文件中的所有策略记录;步骤7:针对FPGA策略树进行树节点压缩;
步骤8:将内存中FPGA策略树的数据采用SPI串行打入FPGA的SRAM或RAM;
所述策略树匹配方法,包括如下步骤:
步骤1:FPGA模块接收到网络IP数据包,并分析出关键条件字段:五元组;
步骤2:FPGA直接进行寻址策略匹配纯硬件处理,FPGA模块寻址到SRAM或RAM的首地址,通过网络IP数据包五元组信息通过FPGA自己的内部13个时钟周期快速寻址定位FPGA策略树,得到策略结果返回,若中途匹配异常,用13个时钟周期直接返回默认设置策略结果,FPGA进行相应后续操作。
2.根据权利要求1所述的一种基于FPGA的高速网络策略匹配方法,其特征在于:所述五元组包括协议号、源IP、目的IP、源端口和目的端口。
3.根据权利要求1所述的一种基于FPGA的高速网络策略匹配方法,其特征在于:所述策略树的每个节点长度为256*2字节,存放下一跳节点序号。
4.根据权利要求1所述的一种基于FPGA的高速网络策略匹配方法,其特征在于:所述策略树13层节点每层节点及子树节点值的内容都相同,会进行节点压缩合并。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410023681.3A CN103812860B (zh) | 2014-01-20 | 2014-01-20 | 一种基于fpga的高速网络策略匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410023681.3A CN103812860B (zh) | 2014-01-20 | 2014-01-20 | 一种基于fpga的高速网络策略匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103812860A CN103812860A (zh) | 2014-05-21 |
CN103812860B true CN103812860B (zh) | 2018-12-11 |
Family
ID=50709061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410023681.3A Active CN103812860B (zh) | 2014-01-20 | 2014-01-20 | 一种基于fpga的高速网络策略匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103812860B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529226B (zh) * | 2016-10-27 | 2019-04-12 | 东软集团股份有限公司 | 数据跟踪方法和装置 |
CN106506723B (zh) * | 2016-11-22 | 2021-11-19 | 防灾科技学院 | 一种用于树型网络的节点编制方法及装置 |
CN110019232B (zh) * | 2017-12-27 | 2021-04-27 | 中移(杭州)信息技术有限公司 | 一种报文保存方法及装置 |
CN108173698B (zh) * | 2018-01-17 | 2021-03-30 | 创新先进技术有限公司 | 网络服务管理方法、装置、服务器及存储介质 |
CN110190979B (zh) * | 2019-03-03 | 2022-02-11 | 杭州立思辰安科科技有限公司 | 高速策略匹配分析方法 |
CN110166300A (zh) * | 2019-05-28 | 2019-08-23 | 天津光电通信技术有限公司 | 一种基于fpga的ip五元组匹配过滤实现方法 |
CN111181964A (zh) * | 2019-12-30 | 2020-05-19 | 北京天融信网络安全技术有限公司 | 安全策略匹配方法、装置及网络设备、存储介质 |
-
2014
- 2014-01-20 CN CN201410023681.3A patent/CN103812860B/zh active Active
Non-Patent Citations (3)
Title |
---|
基于FPGA的网络流量在线分类系统的研究;许艳红;《中国优秀硕士学位论文全文数据库》;20131115;正文第28-35、42-43页 * |
防火墙安全策略管理系统设计与实现;刘杨;《中国优秀硕士学位论文全文数据库》;20100515;全文 * |
防火墙策略不一致性检测算法;王卫平等;《中国科学院研究生院学报》;20070515;正文第3-6节 * |
Also Published As
Publication number | Publication date |
---|---|
CN103812860A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103812860B (zh) | 一种基于fpga的高速网络策略匹配方法 | |
Xiong et al. | Do switches dream of machine learning? toward in-network classification | |
CN105337991B (zh) | 一种一体化的报文流查找与更新方法 | |
Rétvári et al. | Compressing IP forwarding tables: Towards entropy bounds and beyond | |
Dharmapurikar et al. | Fast and scalable pattern matching for content filtering | |
CN108833299B (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
CN105359472B (zh) | 一种用于OpenFlow网络的数据处理方法和装置 | |
CN104468357A (zh) | 流表的多级化方法、多级流表处理方法及装置 | |
De Carli et al. | Plug: Flexible lookup modules for rapid deployment of new protocols in high-speed routers | |
CN102523219A (zh) | 正则表达式匹配系统及匹配方法 | |
CN102075430A (zh) | 深度报文检测dfa状态转移表的压缩与报文匹配方法 | |
CN104580202B (zh) | 报文的匹配方法和装置 | |
CN106850547A (zh) | 一种基于http协议的数据还原方法及系统 | |
JP2014504042A (ja) | パケット分類器、パケット分類方法、及びパケット分類プログラム | |
CN106487769B (zh) | 一种访问控制列表acl的实现方法及装置 | |
CN108337176B (zh) | 一种报文处理方法和装置 | |
CN103179109A (zh) | 基于二级会话查询功能的过滤分流装置及其方法 | |
CN107404440B (zh) | 一种转发表项发送方法、报文转发方法及装置 | |
Kekely et al. | Packet classification with limited memory resources | |
Ferreira et al. | Counterfeiting congestion control algorithms | |
US11689464B2 (en) | Optimizing entries in a content addressable memory of a network device | |
JP5682442B2 (ja) | パケット分類器、パケット分類方法、及びパケット分類プログラム | |
US11552887B2 (en) | System and method of processing packet classification with range sets | |
Li et al. | Binary-tree-based high speed packet classification system on FPGA | |
CN104584504B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |