一种基于FPGA的IP五元组匹配过滤实现方法技术

技术编号:21956969 阅读:180 留言:0更新日期:2019-08-24 20:30
本发明专利技术公开了一种基于FPGA的IP五元组匹配过滤实现方法。该方法将IP五元组划分为13个字节段,每个字节段作为地址访问FPGA内部一块RAM,每块RAM写地址为用户需求的IP五元组划分的13字节段,RAM写使能为用户何时进行配置,RAM写数据为1表示将该条IP五元组规则存入RAM中;RAM读地址为实际接收的IP五元组划分的13字节段,RAM读数据为0或1表示本RAM是否有匹配的字节段。将13块RAM的输出进行与运算,含义是只有当所有RAM对应的IP五元组字节段均匹配成功,该条IP五元组流才匹配成功。本发明专利技术解决了现有技术中IP五元组匹配过滤实现方法匹配速度慢、规则存储条数少、规则匹配冲突的问题。

An Implementation Method of IP Five-tuple Matching Filtering Based on FPGA

【技术实现步骤摘要】
一种基于FPGA的IP五元组匹配过滤实现方法
本专利技术涉及网络数据处理,尤其涉及一种基于FPGA的IP五元组匹配过滤实现方法。
技术介绍
在网络报文分类系统中,很多系统是把报文的IP五元组(协议,源IP,目的IP,源端口,目的端口)作为分类的规则。例如(tcp,192.168.1.1,121.14.88.76,10000,80)构成的五元组含义是:一个IP地址为192.168.1.1的终端通过端口10000,利用TCP协议,和IP地址为121.14.88.76,端口为80的终端进行连接。在对网络报文进行过滤时,通过对接收的以太包进行IP五元组的比对达到匹配筛选的目的。目前大多数系统采用tcam芯片或hash表的方式实现五元组的规则匹配,tcam实现方式具有查找速度快、可对规则掩码的优点,但受限于存储空间只能匹配少量规则的五元组;而hash表可以存储大量的五元组规则,但受限于算法查找速度慢,不能满足系统实时性的要求,且有匹配冲突的问题,即不同的五元组有可能得到相同的hash值,进而使匹配变得更加困难。所以一种好的IP五元组匹配过滤实现方法在网络报文分类系统中起到了至关重要的作用。
技术实现思路
鉴于现在技术存在的问题,本专利技术提供一种基于FPGA的IP五元组匹配过滤实现方法。本专利技术的目的就是要解决上述技术中存在的IP五元组规则匹配速度慢、规则存储条数少、规则匹配冲突的问题。本专利技术采取的技术方案是:一种基于FPGA的IP五元组匹配过滤实现方法,其特征在于,该方法将IP五元组划分为13个字节段{porttype,srcip0.srcip1.srcip2.srcip3,dstip0.dstip1.dstip2.dstip3,srcport0.srcport1,dstport0.dstport1},每个字节段作为地址访问FPGA内部一块BLOCKRAM;每块BLOCKRAM写地址为用户需求的IP五元组划分的13字节段,BLOCKRAM写使能为用户何时进行配置,BLOCKRAM写数据为1表示将该条IP五元组规则存入BLOCKRAM中;BLOCKRAM读地址为实际接收的IP五元组划分的13字节段,BLOCKRAM读数据为0或1表示本BLOCKRAM是否有匹配的字节段;将13块BLOCKRAM的输出进行与运算,含义是:只有当所有BLOCKRAM对应的IP五元组字节段均匹配成功,该条IP五元组流才匹配成功。本专利技术所产生的有益效果是:解决了现有技术中存在的IP五元组规则匹配速度慢、规则存储条数少、规则匹配冲突的问题。本方法在网络数据处理领域有广泛的应用价值。附图说明图1为本专利技术实现原理图。具体实施方式以下结合附图和实施例对本专利技术做进一步说明。IP五元组(协议,源IP,目的IP,源端口,目的端口)共包含13个字节,其中协议字段为1个字节,源IP字段为4个字节,目的IP字段为4个字节,源端口字段为2个字节,目的端口字段为2个字节。以下对图1中各变量进行说明:RAM0-RAM12为FPGA内部的BLOCKRAM,写使能wen、写地址waddr、写数据wdata、读地址raddr、读数据rdata为RAM的输入输出端口;&表示与运算;porttype为IP五元组的协议字段,srcip为IP五元组的源IP字段,srcip0-srcip3对应源IP的4个字节,dstip为IP五元组的目的IP字段,dstip0-dstip3对应目的IP的4个字节,srcport为IP五元组的源端口字段,srcport0-srcport1对应源端口的2个字节,dstort为IP五元组的目的端口字段,dstport0-dstport1对应目的端口的2个字节;_c表示用户配置的IP五元组,_s表示实际接收的IP五元组;config_en表示用户配置IP五元组的使能信号;匹配结果(0/1)表示IP五元组是否匹配,0表示没有匹配,1表示匹配。下面通过实例并结合图1对本专利技术进行阐述。例如用户想要将(6,192.168.1.1,121.14.88.76,10000,80)五元组作为规则进行匹配。方法为,将tcp字段的字节6作为RAM0写地址,源IP字段的第一字节192作为RAM1写地址,源IP字段的第二字节168作为RAM2写地址,源IP字段的第三字节1作为RAM3写地址,源IP字段的第四字节1作为RAM4写地址,目的IP字段的第一字节121作为RAM5写地址,目的IP字段的第二字节14作为RAM6写地址,目的IP字段的第三字节88作为RAM7写地址,目的IP字段的第四字节76作为RAM8写地址,源端口字段的第一字节39作为RAM9写地址,源端口字段的第二字节16作为RAM10写地址,目的端口字段的第一字节0作为RAM11写地址,目的端口字段的第二字节80作为RAM12写地址(注:源端口10000的第一字节为39,第二字节为16;目的端口80的第一字节为0,第二字节为80);RAM0-RAM12的写数据固定为1,表示将用户需求的IP五元组规则存入RAM中;当用户进行配置时,config_en拉高一个时钟周期然后拉低,表示存入一条五元组规则,如果有N条五元组规则需要存入的话,config_en便拉高N个时钟周期然后再拉低。实际接收的IP五元组各字节段与RAM读地址对应的方法与上述描述相同,当接收报文中IP五元组亦出现(6,192.168.1.1,121.14.88.76,10000,80)时,则RAM0-RAM12的读取值均为1,表示IP五元组的各字节段均匹配成功。与运算模块将13块RAM的结果取与,若各RAM读取值均为1,则与运算结果亦为1,表示IP五元组所有字段匹配成功,亦即该IP五元组匹配成功;若其中任何一块RAM的读取结果为0,则与运算结果为0,表示在实际接收的报文中没有出现预先定义的IP五元组规则。当用户配置的IP五元组各字节段中有掩码时,即有不关心的比特,比如(6,192.168.1.x,121.14.88.76,10000,80)五元组,用户希望筛选192.168.1.0-192.168.1.255区间的源IP,此时在进行配置存储时,写入RAM4的地址从0-255遍历256次,表示将192.168.1.0-192.168.1.255区间的源IP全部存入RAM中。当接收报文中IP五元组出现(6,192.168.1.1,121.14.88.76,10000,80)时,从各RAM读出的值亦全部为1,经过与运算后亦为1,表示该IP五元组匹配成功。从上述对IP五元组匹配的过程可以看出,该方法可覆盖到任意想要匹配的IP五元组,只需在各字段对应RAM的地址写入值1即可,不存在存储规则条数的限制;在对实际接收的IP五元组进行匹配时,只需简单的从各RAM对应地址读取值并做与运算即可,不存在匹配速度慢的问题;该方法对IP五元组规则的匹配是精确匹配方式,不存在类似于hash表中出现匹配冲突的问题;此外,该方法支持用户对IP五元组进行掩码。综上,本专利技术提供的方法为网络数据处理提供了有益的参考。本文档来自技高网...

【技术保护点】
1.一种基于FPGA的IP五元组匹配过滤实现方法,其特征在于,该方法将IP五元组划分为13个字节段{porttype,srcip0.srcip1.srcip2.srcip3,dstip0.dstip1.dstip2.dstip3,srcport0.srcport1,dstport0. dstport1},每个字节段作为地址访问FPGA内部一块BLOCK RAM;每块BLOCK RAM写地址为用户需求的IP五元组划分的13字节段,BLOCK RAM写使能为用户何时进行配置,BLOCK RAM写数据为1表示将该条IP五元组规则存入BLOCK RAM中;BLOCK RAM读地址为实际接收的IP五元组划分的13字节段,BLOCK RAM读数据为0或1表示本BLOCK RAM是否有匹配的字节段;将13块BLOCK RAM的输出进行与运算,含义是:只有当所有BLOCK RAM对应的IP五元组字节段均匹配成功,该条IP五元组流才匹配成功。

【技术特征摘要】
1.一种基于FPGA的IP五元组匹配过滤实现方法,其特征在于,该方法将IP五元组划分为13个字节段{porttype,srcip0.srcip1.srcip2.srcip3,dstip0.dstip1.dstip2.dstip3,srcport0.srcport1,dstport0.dstport1},每个字节段作为地址访问FPGA内部一块BLOCKRAM;每块BLOCKRAM写地址为用户需求的IP五元...

【专利技术属性】
技术研发人员:陈晖王东锋陈伟峰张晓峰
申请(专利权)人:天津光电通信技术有限公司
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1