访问控制列表的实现装置的制作方法

文档序号:6600960阅读:145来源:国知局
专利名称:访问控制列表的实现装置的制作方法
技术领域
本发明涉及计算机应用领域,尤其涉及一种ACL (access control list,访问控制 列表)实现装置。
背景技术
ACL是一种定义流的工具。ACL通过一系列的匹配条件对报文进行分类,该匹配条 件可以是数据包的目的MAC地址、源MAC地址、端口号等,有的还包括自定义域。ACL应用 在交换路由设备中,主要用于网络安全、QOS (Quality of Service,服务质量)、包过滤等业 务。根据上述匹配条件可以建立相应的匹配关键字和匹配规则。现有技术中的一种ACL的实现方案为使用寄存器实现。在实现本发明过程中,发 明人发现该方案的缺点为ACL支持的匹配关键字较短,匹配规则数目有限,报文的ACL匹 配性能较差。现有技术中的另一种ACL的实现方案为使用CAM (内容定址存储器, Content-Addressable Memories)实现,可以支持较多的规则数目。当CAM价格昂贵,ACL 的功耗较大。

发明内容
本发明的实施例提供了一种ACL的实现装置,以实现提高报文的ACL匹配性能,降 低ACL的面积和功耗。一种ACL的实现装置,包括匹配信息保存模块、匹配关键字获取模块、匹配处理模 块,其中,所述匹配信息保存模块,包括多个规则保存单元,用于接收用户输入的多个匹配 信息,将所述多个匹配信息通过规则保存单元进行保存,并将所述多个匹配信息传输给匹 配关键字获取模块;所述匹配关键字获取模块,用于根据匹配信息保存模块传输过来的匹配信息,从 需要进行ACL控制的多条报文中提取出匹配关键字;所述匹配处理模块,用于在每个匹配周期内,分别自所述多个规则保存单元中读 取匹配信息,从所述匹配关键字获取模块中读取多条报文的匹配关键字,将所述读取到的 匹配信息与多条报文的匹配关键字进行匹配,获取所述多条报文的匹配结果。由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过在每个匹配 周期内,将多条报文的匹配关键字与ACL的匹配规则进行匹配,并且,每个报文匹配多条 ACL的匹配规则,同时获取所述多条报文的匹配结果,从而有效地提高了提高报文的ACL匹 配性能,降低ACL的面积和功耗。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他 的附图。图1为本发明实施例一提供的一种访问控制列表的实现装置的具体实现结构图;图2为本发明实施例二提供的一种使用SRAM实现ACL的方法的原理示意图;图3为本发明实施例二提供的一种使用SRAM实现ACL的方法的具体处理流程图。
具体实施例方式为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步 的解释说明,且各个实施例并不构成对本发明实施例的限定。实施例一该实施例提供了一种ACL的实现装置,其具体实现结构图如图1所示,包括如下模 块匹配信息保存模块11,包括多个信息保存单元,用于接收用户输入的多个匹配信 息,将所述多个匹配信息通过多个信息保存单元来保存,并将所述多个匹配信息传输给匹 配关键字获取模块12。上述匹配信息可以包括需要匹配的域信息,以及与所述域信息相对 应的匹配条件。匹配关键字获取模块12,用于根据匹配信息保存模块32传输过来的匹配信息,从 需要进行ACL控制的多条报文中提取出匹配关键字。匹配处理模块13,在每个匹配周期内,分别自所述多个规则保存单元中读取匹配 信息,从所述匹配关键字获取模块12中读取多条报文的匹配关键字,将所述读取到的匹配 信息与多条报文的匹配关键字进行匹配,获取所述多条报文的匹配结果。然后,根据各个报文的匹配结果,对各个报文进行分类,并进行相应的处理。比如, 某个匹配规则对应的处理操作是丢弃报文,则当报文和上述某个匹配规则相匹配后,则丢 弃该报文。匹配信息保存模块11具体可以包括原始关键字保存模块111、匹配规则保存模 块 112。其中,原始关键字保存模块111,用于根据所述匹配信息保存模块传输过来的匹配 信息中包括的域信息和匹配条件,建立用于报文匹配的原始关键字,将所述原始关键字进 行保存。上述原始关键字可以根据各种匹配条件的组合来获取,该原始关键字的长度越长, 对报文的分类就越灵活。比如,产品需求的报文的ACL的匹配条件是需要同时匹配源MAC地址、目的MAC地 址、VLAN(Virtual Local Area Network,虚拟局域网)标签,IP协议段,源IP地址,目的IP 地址,自定义字段和源端口号。则用于报文匹配的原始关键字可以为报文的MAC地址、目的MAC地址、VLAN标签、 IP协议段,源IP地址,目的IP地址,自定义字段和源端口号的串联。上述原始关键字的长 度可以是上述MAC地址的长度(48bit)、目的MAC地址(48bit) .VLAN TAG(16bit),IP协议 段(16bit),源IP地址(32bit),目的IP地址(32bit),自定义4Byte(32bit)和源端口号 (32bit)的相加,即为256bit。
其中,匹配规则保存模块112,用于根据所述匹配信息保存模块传输过来的匹配信 息中包括的匹配条件和具体的匹配性能要求,建立多条报文的匹配规则,通过所述多个信 息保存单元将所述多条匹配规则按照一定的排列顺序进行存储。上述匹配规则可以是一种匹配条件的不同的匹配性能要求,也可以是多种匹配条 件的不同的匹配性能要求的组合。该匹配规则越多,对报文的分类就越灵活。每条匹配规 则的长度和上述匹配关键字的长度相同。上述排列顺序可以为根据匹配条件(比如报文的MAC地址、目的MAC地址等)进 行排序。所述匹配规则保存模块可以通过多个SRAM(StaticRAM,静态存储器)实现。所述的匹配关键字获取模块12,还用于根据所述匹配信息保存模块32传输过来 的匹配信息中包括的原始关键字,从需要进行ACL控制的多条报文中提取出匹配关键字。所述匹配处理模块13可以包括匹配周期设置模块131,用于根据匹配带宽和报文长度确定匹配每个报文所需要 的时间,根据每个时钟周期的时间长度和匹配每个报文所需要的时间,确定匹配每个报文 所需要的时钟周期的数量。根据上述匹配每个报文所需要的时钟周期的数量和同时匹配的 报文数量,确定一个匹配周期中包括的时钟周期的数量。比如,匹配一个报文需要8个时钟 周期,同时匹配8个报文,则一个匹配周期包括64个时钟周期。报文解析控制模块132,用于根据需要同时匹配的报文数量N,控制所述匹配关键 字获取模块31提起出N个报文的匹配关键字,并将该N个报文的匹配关键字传输给报文匹 配控制模块。报文匹配控制模块133,用于在一个时钟周期内,按照所述匹配信息保存模块11 中存储的匹配规则的排列顺序,从所述匹配信息保存模块11中读出一定数量的匹配规则, 将所述N个报文中的第一个报文的匹配关键字同时和所述读出的一定数量的匹配规则进 行匹配,再将第二个报文的匹配关键字同时和所述读出的一定数量的匹配规则进行匹配, 直到N个报文的匹配关键字都和所述读出的一定数量的匹配规则匹配完成。然后,在下一个时钟周期内,再次从所述匹配信息保存模块11中读出下一序列的 一定数量的匹配规则,再次将上述N个报文的匹配关键字都和所述读出的一定数量的匹配 规则匹配完成。依次类推,一直到在一个匹配周期内,从所述匹配信息保存模块11中读出 所有的匹配规则并和所述N个报文的匹配关键字都匹配完成,同时获得所述N个报文的匹 配结果。本发明实施例通过在每个时钟周期内,将多条报文的匹配关键字与ACL的匹配规 则进行匹配,并且,每个报文匹配多条ACL的匹配规则,从而可以在一个匹配周期内获取多 个报文的匹配结果,有效地提高了报文的ACL匹配性能,降低ACL的面积和功耗。实施例二该实施例提供的一种实现ACL的方法的原理示意图如图2所示,具体处理流程如 图3所示,包括如下处理步骤步骤31、根据预先设定的ACL的报文的匹配条件建立匹配关键字和匹配规则。根据预先设定的ACL的报文的匹配信息中的需要匹配的域信息,以及与所述域信 息相对应的匹配条件提取出报文的原始关键字,该原始关键字可以根据各种匹配条件的组 合来获取。该原始关键字的长度越长,对报文的分类就越灵活。
根据上述ACL的匹配条件和具体的匹配性能要求,建立报文的匹配规则。该匹配 规则可以是一种匹配条件的不同的匹配性能要求,也可以是多种匹配条件的不同的匹配性 能要求的组合。该匹配规则越多,对报文的分类就越灵活。每条匹配规则的长度和上述原 始关键字的长度相同。比如,产品需求的报文的ACL的匹配条件是需要同时匹配源MAC地址、目的MAC地 址、VLAN(Virtual Local Area Network,虚拟局域网)TAG,IP协议段,源IP地址,目的IP地 址,自定义4Byte和源端口号。需要支持的规则条目最小为1024条,需要的匹配带宽7Gbit每秒。则上述原始关键字可以是报文的MAC地址、目的MAC地址、VLAN标签、IP协议段, 源IP地址,目的IP地址,自定义字段和源端口号的串联,原始关键字的长度可以是上述MAC 地址的长度(48bit)、目的 MAC 地址(48bit)、VLAN TAG(16bit),IP 协议段(16bit),源 IP 地址(32bit),目的IP地址(32bit),自定义4Byte(32bit)和源端口号(32bit)的相加,即 为 256bit。给上述各种匹配条件分别设定相应的匹配性能要求,根据各种匹配条件的不同的 匹配性能要求建立一定数量的匹配规则。比如,建立1024个匹配规则,每条匹配规则的长 度也为256bit。然后,将上述匹配规则存储在SRAM中,SRAM的最大位宽为128bit,选定128X128 的SRAM来存储上述匹配规则,则需要16 (1024X256/128X128)个这样规格的SRAM来存储上述1024 个匹配规则。步骤32、按照每个时钟周期内同时匹配多条报文,并且每个报文同时匹配多条匹 配规则的流水实现方法,来将上述提取出的匹配关键字与上述SRAM中存储的匹配规则进 行匹配。在接收到需要进行ACL控制的报文后,根据上述原始关键字从报文中提取出匹配 关键字。然后,采用流水实现方法来将上述提取出的匹配关键字与上述SRAM中存储的匹配 规则进行匹配。该流水实现方法包括每个时钟周期同时匹配多条报文,并且每个报文同时 匹配多条匹配规则,从而提高匹配性能。根据实际情况,设定每个时钟周期内,每个报文需要匹配的匹配规则的数量为A1, 则每个时钟周期内需要匹配的多条报文的数量A2的计算方法为A2 >=S/BxAl所述S为匹配规则的总数量,所述B为匹配每个报文所需要的时钟周期的数量。比如,还是按照上面的例子,按照每个报文的长度为80byte来计算,则根据上述
匹配带宽处理每个报文的时间的最小值为92 (报文长度/带宽=80X8/7X10 9) ns,本发明实施例选取每
96ns处理一个报文。假设主频为200MHz,则每个时钟周期的长度为5ns,于是需要16 ( f )个时钟周
期处理一个报文。由于每个报文需要匹配1024个规则,于是,采用每个时钟周期内每个报 文可同时匹配8个规则,并且,每个时钟周期内同时匹配8个报文。然后,在下一个时钟周 期,继续进行上述匹配处理过程。这样,在128个时钟周期内,可以匹配完成8个报文,相当于16个时钟周期匹配完成一个报文。在实际应用中,还可以采用各种方法来增大SRAM的读带宽,包括但不限于如下手 段(1)采用位宽较大的SRAM配置规则;(2)采用用多块SRAM拼成较宽的ACL表项。(3)采用一端口写多端口读的SRAM ;
(4)相同的配置同时配置在不同的SRAM上;(5) SRAM的带宽大部分保留给规则匹配使用;(6)采用高性能的SRAM,提高系统的时钟频率。然后,根据各个报文的匹配结果,对各个报文进行分类,并进行相应的处理。比如, 某个匹配规则对应的处理操作是丢弃报文,则当报文和上述某个匹配规则相匹配后,则丢 弃该报文。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。综上所述,本发明实施例通过在每个时钟周期内,将多条报文的匹配关键字与ACL 的匹配规则进行匹配,并且,每个报文匹配多条ACL的匹配规则,从而可以在一个匹配周期 内获取多个报文的匹配结果,有效地提高了报文的ACL匹配性能,降低ACL的面积和功耗。由于SRAM具有面积小、功耗小和成本低的特点,并且SRAM是通用的存储器,本发 明实施例采用SRAM实现ACL,并通过多种手段提高SRAM的读带宽,实现了在满足产品需求 的前提下,尽量减少硬件资源的消耗,提高匹配性能。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围 为准。
权利要求
一种ACL的实现装置,其特征在于,包括匹配信息保存模块、匹配关键字获取模块、匹配处理模块,其中,所述匹配信息保存模块,包括多个规则保存单元,用于接收用户输入的多个匹配信息,将所述多个匹配信息通过规则保存单元进行保存,并将所述多个匹配信息传输给匹配关键字获取模块;所述匹配关键字获取模块,用于根据匹配信息保存模块传输过来的匹配信息,从需要进行ACL控制的多条报文中提取出匹配关键字;所述匹配处理模块,用于在每个匹配周期内,分别自所述多个规则保存单元中读取匹配信息,从所述匹配关键字获取模块中读取多条报文的匹配关键字,将所述读取到的匹配信息与多条报文的匹配关键字进行匹配,获取所述多条报文的匹配结果。
2.如权利要求1所述的ACL的实现装置,其特征在于,所述匹配信息保存模块中保存有 用于报文匹配的匹配规则和原始关键字。
3.如权利要求2所述的ACL的实现装置,其特征在于,所述每条匹配规则的长度和所述 原始关键字的长度相同。
4.如权利要求2所述的ACL的实现装置,其特征在于,所述的匹配信息保存模块包括 原始关键字保存模块、匹配规则保存模块,所述原始关键字保存模块,用于根据所述匹配信息保存模块传输过来的匹配信息中包 括的域信息和匹配条件,建立用于报文匹配的原始关键字,将所述原始关键字进行保存;所述匹配规则保存模块,用于根据所述匹配信息保存模块传输过来的匹配信息中包括 的匹配条件和具体的匹配性能要求,建立多条报文的匹配规则,通过所述多个信息保存单 元将所述多条匹配规则按照一定的排列顺序进行保存。
5.如权利要求4所述的ACL的实现装置,其特征在于,所述的匹配关键字获取模块, 还用于根据所述匹配信息保存模块传输过来的匹配信息中包括的原始关键字,从需要进行 ACL控制的多条报文中分别提取出匹配关键字。
6.如权利要求1所述的ACL的实现装置,其特征在于,所述匹配信息包括需要匹配的域 信息,以及与所述域信息相对应的匹配条件。
7.如权利要求1至6任一项所述的ACL的实现装置,其特征在于,所述匹配处理模块在 每个时钟周期内,将多条报文的匹配关键字与匹配规则进行匹配,并且,每个报文匹配多条 匹配规则。
8.如权利要求7所述的ACL的实现装置,其特征在于,所述匹配处理模块包括匹配周 期设置模块、报文解析控制模块和报文匹配控制模块,所述匹配周期设置模块,用于根据匹配带宽和报文长度确定匹配每个报文所需要的时 间,根据每个时钟周期的时间长度和匹配每个报文所需要的时间,确定匹配每个报文所需 要的时钟周期的数量,根据所述匹配每个报文所需要的时钟周期的数量和同时匹配的报文 数量,确定一个匹配周期中包括的时钟周期的数量;所述报文解析控制模块,用于根据需要同时匹配的报文数量N,控制所述匹配关键字获 取模块提起出N个报文的匹配关键字,并将该N个报文的匹配关键字传输给报文匹配控制 模块;所述报文匹配控制模块,用于在一个时钟周期内,按照所述匹配信息保存模块中存储的匹配规则的排列顺序,从所述匹配信息保存模块中读出一定数量的匹配规则,将所述N 个报文中的第一个报文的匹配关键字同时和所述读出的一定数量的匹配规则进行匹配,再 将第二个报文的匹配关键字同时和所述读出的一定数量的匹配规则进行匹配,直到N个报文的匹配关键字都和所述读出的一定数量的匹配规则匹配完成;然后,在下一个时钟周期内,再次从所述匹配信息保存模块中读出下一序列的一定数 量的匹配规则,再次将上述N个报文的匹配关键字都和所述读出的一定数量的匹配规则匹 配完成;依次类推,一直到在一个匹配周期内,从所述匹配信息保存模块中读出所有的匹配 规则并和所述N个报文的匹配关键字都匹配完成,同时获得所述N个报文的匹配结果。
全文摘要
本发明实施例提供了一种访问控制列表的实现装置。该装置主要包括匹配信息保存模块,包括多个规则保存单元,用于接收用户输入的多个匹配信息,将所述多个匹配信息通过规则保存单元进行保存,并将所述多个匹配信息传输给匹配关键字获取模块;匹配关键字获取模块,用于根据匹配信息保存模块传输过来的匹配信息,从需要进行ACL控制的多条报文中提取出匹配关键字;匹配处理模块,在每个匹配周期内,分别自所述多个匹配信息保存单元中读取匹配信息,从所述匹配关键字获取模块中读取多条报文的匹配关键字,将所述读取到的匹配信息与多条报文的匹配关键字进行匹配,获取所述多条报文的匹配结果。利用本发明实施例,可以有效地提高了提高报文的ACL匹配性能,降低ACL的面积和功耗。减少硬件资源的消耗,提高匹配性能。
文档编号G06F17/30GK101841474SQ20101015007
公开日2010年9月22日 申请日期2010年4月15日 优先权日2010年4月15日
发明者刘云, 刘福军, 宋奇刚, 李中华, 谭亚中, 黄久松 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1