基于TCAM多级流表的规则索引管理实现方法和装置制造方法及图纸

技术编号:13431378 阅读:60 留言:0更新日期:2016-07-30 03:47
本发明专利技术提供一种基于TCAM多级流表的规则索引管理实现方法和装置,该方法包括:基于所述规则索引建立相应的排序链表,所述排序链表包括一级规则索引和/或二级规则索引;将所述二级规则索引添加到相应的一级规则索引上,所述二级规则索引包括动作表索引,二级查表索引和用户自定义规则索引;查询所述TCAM多级流表,由所述一级规则索引的返回值判断是否需要二级查表,根据判断结果进行一级查表和/或二级查表执行相应处理动作。本发明专利技术不仅解决了对处理大流量和多种复杂业务的设备的多级查表的问题,同时也解决了现有技术中指定规则编号带来的索引添加和查找的困难。

Method and device for implementing rule index management based on TCAM multilevel flow table

The present invention provides a method and device for realizing rule index management TCAM based on multilevel flow meter, the method comprises the following steps: sorting list corresponding to establish the rules of index based on the ranking list, including a rule index and / or two rules index; the two level rule index added to a rule the corresponding index, the two rule index including action table index, two level index look-up table and user-defined rule index; query the TCAM multi-level flow table, by returning to the level of rule index value to determine whether to level two look-up table, a look-up table and / or two level check the implementation of the corresponding action table according to the judgment result. The invention not only solves the problem of the multi level table lookup of the equipment for processing large flow and complex business, but also solves the difficulty of adding and searching the index in the prior art.

【技术实现步骤摘要】

本专利技术涉及计算机网络通信
及工业网络安全领域,具体涉及网络安全设备装置中多级流表查表机制实现的方法和装置。
技术介绍
随着信息化的不断深入和普及,网络信息安全技术已经受到世界各国的普遍重视,网络安全交换设备,防火墙,网关等设备在网络信息安全领域有着举足轻重的地位。在这样的大环境下,传统的基于三态内容寻址存储器(TCAM)的一级查表机制已经越来越不能满足提高信息安全性能的需求了。TCAM(Ternarycontentaddressablememory)是一种三态内容寻址存储器,主要用于快速查找访问控制列表(ACL),路由表等表项。现有的TCAM查表机制中,数据包从Ethernet网络接口中进如FPGA,FPGA会解析数据包,把数据包中相关的数据用于TCAM中查表,命中TCAM中表项后,根据查寻结果值做出相应执行动作,转发,丢弃或者进入CPU。FPGA通过一级查表TCAM,可以快速的命中各种类型的表。但是受TCAM查找规则所限,绝大多数TCAM最多仅支持576位查表。实验证明随着查表位数的增加,查表所需时钟周期也会线性增长,从而导致路由性能下降。对于普通设备来讲,基于TCAM的一级查表,比如十二元组的查表,已经可以满足用户的普通的性能需求了。但是对于高端设备而言,比如运行在网络核心和骨干位置,必然要处理巨大的流量,并且要处理多种复杂的业务,比如ACL流分类,策略路由,数据包过滤,数据包内容更改,用户自定义规则等等,简单的一级查表已经满足不了这样的需求了。因此本专利技术中使用的多级流表查表机制,一方面满足了网络安全设备高性能的需求,该多级流表查表机制,具有十二元组规则匹配,用户自定义查找规则,4字节用户自定义数据匹配,十二元组数据更改等多项功能。在传统的基于TCAM的查表设备中,规则索引都是需要用户指定的一个数,然后判断该数是不是已经在链表中已经存在,如果存在则添加规则失败,如果不存在则向TCAM中添加新的规则。这种索引管理机制已经不能满足本多级流表查表机制了,因为在专利技术涉及的多级流表查表机制中会使用到三个不同规则的索引,如果每个都需要用户指定,则会给用户添加很多繁琐的操作,更何况删除流表项操作时,用户就更不容易操作了。因此本专利技术的另一方面,给多级流表查表机制中使用的多种规则索引,提供了一种方便,简洁的索引管理方法,使得用户无需关心这些规则索引,具有自动生成和删除的功能。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于TCAM多级流表的规则索引管理实现方法和装置。本专利技术提供了一种基于TCAM多级流表的规则索引管理实现方法,该方法包括:基于所述规则索引建立相应的排序链表,所述排序链表包括一级规则索引和/或二级规则索引;将所述二级规则索引添加到相应的一级规则索引上,所述二级规则索引包括动作表索引(at_index),二级查表索引(table_id)和用户自定义规则索引(ud_index);查询所述CAM多级流表,由所述一级规则索引的返回值判断是否需要二级查表,根据判断结果进行一级查表和/或二级查表执行相应处理动作。进一步地,所述查询所述CAM多级流表,由所述一级规则索引的返回值判断是否需要二级查表,根据判断结果进行二级查表执行相应处理动作的步骤还包括:S1、查询TCAM中多元组规则数据,该规则数据最后一项是多元组规则表索引,进行一级查表,所述一级查表的返回值中定位了用户自定义规则地址索引(ud_index);S2、根据所述用户自定义规则地址索引(ud_index)读取用户自定义规则,所述用户自定义规则用于定位和读取网络数据包中的数据,所述用户自定义规则的最后一项是所述二级查表规则流表索引(table_id),根据所述二级查表规则流表索引,进行二级查表。S3、根据所述二级查表规则流表索引(table_id)把网络数据包中的数据与用户自定义流表数据匹配,获得返回值,所述返回值保存了用于最后执行的动作表地址索引(at_index)。S4、根据所述动作表地址索引(at_index)从SRAM相应位置读取动作表,执行所述动作表中相应处理动作。进一步地,所述一级规则索引由一个排序链表管理,所述一级规则索引添加时与索引链表中每个索引进行比较,当所述添加的一级规则索引已经存在,则添加索引失败;当所述添加的一级规则索引没有存在,就把要添加的一级规则索引添加进相应的排序链表中。进一步地,所述二级规则索引由自增型的排序链表管理,所述二级规则索引枚举索引号时就与所述自增型的排序链表中的索引号比较,当所述枚举索引号已经存在,则枚举下一个索引号,直到所述自增型的排序链表中不存在该索引号,然后锁定该索引号并把添加进所述自增型的排序链表中。进一步地,当删除所述规则索引时,指定一个一级规则索引,与其关联的二级规则索引会跟着删除,进而达到方便规则索引管理的目的。当删除十二元组对应的TCAM规则时,根据该一级规则索引,会自动删除与之关联的动作表索引(at_indeX)和用户自定义规则索引(ud_indeX)。当删除用户自定义对应的TCAM规则时,根据该一级规则索引,会自动删除二级查表索引(table_id)。本专利技术提供了一种基于TCAM多级流表的规则索引管理实现装置,所述装置包括:建立排序链表模块,用于基于所述规则索引建立相应的排序链表,所述排序链表包括一级规则索引和/或二级规则索引;规则索引关联模块,用于将所述二级规则索引添加到相应的一级规则索引上,所述二级规则索引包括动作表索引(at_indeX),二级查表索引(table_id)和用户自定义规则索引(ud_index);流表查询动作模块,用于查询所述CAM多级流表,由所述一级规则索引的返回值判断是否需要二级查表,根据判断结果进行一级查表和/或二级查表执行相应处理动作。进一步地,所述流表查询动作模块还包括,所述查询所述CAM多级流表,由所述一级规则索引的返回值判断是否需要二级查表,根据判断结果进行二级查表执行相应处理动作的步骤还包括:查询TCAM中多元组规则数据,该规则数据最后一项是多元组规则表索引,进行一级查表,所述一级查表的返回值中定位了用户自定义规则地址索引(ud_index);根据所述用户自定义规则地址索引(ud_index)读取用户自定义规则,所述用户自定义本文档来自技高网
...

【技术保护点】
一种基于TCAM多级流表的规则索引管理实现方法,其特征在于,该方法包括:基于所述规则索引建立相应的排序链表,所述排序链表包括一级规则索引和/或二级规则索引;将所述二级规则索引添加到相应的一级规则索引上,所述二级规则索引包括动作表索引,二级查表索引和用户自定义规则索引;查询所述TCAM多级流表,由所述一级规则索引的返回值判断是否需要二级查表,根据判断结果进行一级查表和/或二级查表执行相应处理动作。

【技术特征摘要】
1.一种基于TCAM多级流表的规则索引管理实现方法,其特征在于,该
方法包括:
基于所述规则索引建立相应的排序链表,所述排序链表包括一级规则索引
和/或二级规则索引;
将所述二级规则索引添加到相应的一级规则索引上,所述二级规则索引包
括动作表索引,二级查表索引和用户自定义规则索引;
查询所述TCAM多级流表,由所述一级规则索引的返回值判断是否需要
二级查表,根据判断结果进行一级查表和/或二级查表执行相应处理动作。
2.根据权利要求1所述的一种基于TCAM多级流表的规则索引管理实现
方法,其特征在于,所述查询所述TCAM多级流表,由所述一级规则索引的
返回值判断是否需要二级查表,根据判断结果进行二级查表执行相应处理动作
的步骤还包括:
S1、查询TCAM中多元组规则数据,该规则数据最后一项是多元组规则
表索引,进行一级查表,所述一级查表的返回值中定位了用户自定义规则地址
索引;
S2、根据所述用户自定义规则地址索引读取用户自定义规则,所述用户自
定义规则用于定位和读取网络数据包中的数据,所述用户自定义规则的最后一
项是所述二级查表规则流表索引,根据所述二级查表规则流表索引,进行二级
查表;
S3、根据所述二级查表规则流表索引把网络数据包中的数据与用户自定义
流表数据匹配,获得返回值,所述返回值保存了用于最后执行的动作表地址索
引;
S4、根据所述动作表地址索引从SRAM相应位置读取动作表,执行所述
动作表中相应处理动作。
3.根据权利要求1所述的一种基于TCAM多级流表的规则索引管理实现
方法,其特征在于,
所述一级规则索引由一个排序链表管理,所述一级规则索引添加时与索引
链表中每个索引进行比较,当所述添加的一级规则索引已经存在,则添加索引
失败;当所述添加的一级规则索引没有存在,就把要添加的一级规则索引添加
到相应的排序链表中。
4.根据权利要求1所述的一种基于TCAM多级流表的规则索引管理实现
方法,其特征在于,
所述二级规则索引由自增型的排序链表管理,所述二级规则索引枚举索引
号时就与所述自增型的排序链表中的索引号比较,当所述枚举索引号已经存
在,则枚举下一个索引号,直到所述自增型的排序链表中不存在该索引号,然
后锁定该索引号并添加到所述自增型的排序链表中。
5.根据权利要求1所述的一种基于TCAM多级流表的规则索引管理实现
方法,其特征在于,
当删除所述规则索引时,指定一个一级规则索引,与其关联的二级规则索
引会跟着删除;
当删除十二元组对应的TCAM规则时,根据该一级规则索引,自动删除
与之关联的动作表索引和用户自定义规则索引;
当删除用户自定义对应的TCAM规则时,根据该一级规则索引,自动删
除二级查表索引。

【专利技术属性】
技术研发人员:徐小海
申请(专利权)人:北京东土科技股份有限公司
类型:发明
国别省市:北京;11

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

1