CN106027459A - 一种访问控制列表的查询方法及装置 - Google Patents

一种访问控制列表的查询方法及装置 Download PDF

Info

Publication number
CN106027459A
CN106027459A CN201510998606.3A CN201510998606A CN106027459A CN 106027459 A CN106027459 A CN 106027459A CN 201510998606 A CN201510998606 A CN 201510998606A CN 106027459 A CN106027459 A CN 106027459A
Authority
CN
China
Prior art keywords
rule
address
acl
space
hash
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.)
Granted
Application number
CN201510998606.3A
Other languages
English (en)
Other versions
CN106027459B (zh
Inventor
周毅华
兰军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Hengxin Data Ltd By Share Ltd
Original Assignee
Shenzhen Hengxin Data Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Hengxin Data Ltd By Share Ltd filed Critical Shenzhen Hengxin Data Ltd By Share Ltd
Priority to CN201510998606.3A priority Critical patent/CN106027459B/zh
Publication of CN106027459A publication Critical patent/CN106027459A/zh
Application granted granted Critical
Publication of CN106027459B publication Critical patent/CN106027459B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明适用于访问控制列表ACL查询领域,提供了一种访问控制列表的查询方法及装置,方法包括:接收访问控制列表ACL中不同类型的规则;获取每个规则中的元素,将具备公共元素的不同类型的规则分类为同一个规则组;利用哈希Hash算法对公共元素进行Hash运算,生成规则组中不同类型的规则存放的地址;接收数据包查询ACL的请求,从所述数据包中提取规则组要求的公共元素进行Hash运算,生成双倍速率同步动态随机存储器DDR地址,将所述数据包的各元素与所述DDR地址中规则的各元素进行匹配,根据匹配的结果,执行访问控制列表的查询动作。本发明使得单个数据包查询这一组规则时,只要一次查表就能完成所有类型规则的查询,节省了查询时间,显著的提高了ACL查表效率。

Description

一种访问控制列表的查询方法及装置
技术领域
本发明属于访问控制列表ACL查询领域,尤其涉及一种访问控制列表的查询方法及装置。
背景技术
在路由器、交换器以及类似功能的通信设备中,经常需要ACL来对网络流量进行过滤。根据流量过滤的需要,ACL中有些规则只关心报文的SIP,有些规则关心SIP+SP等等。当ACL中规则数量特别大时,就需要存放在DDR中,并通过Hash的方式根据规则的内容计算规则在DDR中的存放地址。
然而,在目前的ACL查询领域中,不同类型规则需要查询ACL的次数过多,查询效率低,无法满足数据包对访问控制列表的查询需求。其原因在于,现有技术中,每种类型的规则都需要单独进行一次Hash运算,来获得规则的存放地址,并从存放地址里面读出规则与数据包的信息进行对比,来判断数据包是否匹配规则。如果规则类型很多的话,那么数据包查询的次数会很多,一次查询需要读一次DDR,而DDR的物理接口带宽是有限的,单个数据包查询次数越多,那么单位时间内能够处理的数据包个数就越少。由此可见,现有技术对于这种规则类型很多的情况,ACL查询的效率是很低的。
发明内容
本发明实施例的目的在于提供一种访问控制列表的查询方法,旨在解决在目前的ACL查询领域中,不同类型规则需要查询ACL的次数过多,查询效率低,无法满足数据包对访问控制列表的查询需求的问题。
本发明实施例是这样实现的,一种访问控制列表的查询方法,包括:
接收访问控制列表ACL中不同类型的规则;
获取每个所述规则中的元素,将具备公共元素的不同类型的规则分类为同一个规则组;
利用哈希Hash算法对所述公共元素进行Hash运算,生成所述规则组中不同类型的规则存放的地址;
从所述数据包中提取规则组对应的公共元素进行Hash运算,生成双倍速率同步动态随机存储器DDR地址,将数据包中的各元素与所述DDR地址中规则的各元素进行匹配,根据匹配的结果,执行访问控制列表的查询动作;
其中,规则存放的地址为固定长度的DDR地址,表示规则在DDR中的存放地址。
本发明实施例的另一目的在于提供一种访问控制列表的查询装置,包括:
规则接收模块,用于接收访问控制列表ACL中不同类型的规则;
分类模块,用于获取每个所述规则中的元素,将具备公共元素的不同类型的规则分类为同一个规则组;
地址存放模块,用于利用哈希Hash算法对所述公共元素进行Hash运算,生成所述规则组中不同类型的规则存放的地址;
查询动作执行模块,用于从所述数据包中提取规则组对应的公共元素进行Hash运算,生成双倍速率同步动态随机存储器DDR地址,将数据包中的各元素与所述DDR地址中规则的各元素进行匹配,根据匹配的结果,执行访问控制列表的查询动作;
其中,规则存放的地址为固定长度的DDR地址,表示规则在DDR中的存放地址。
在本发明实施例中,利用哈希Hash算法对所述公共元素进行Hash运算,生成所述规则组中不同类型的规则存放的地址。解决了在目前的ACL查询领域中,不同类型规则需要查询ACL的次数过多,查询效率低,无法满足数据包对访问控制列表的查询需求的问题。在单个数据包查询这一组规则时,只要一次查表就能完成所有类型规则的查询,节省了查询时间,显著的提高了ACL查表效率。
附图说明
图1是本发明实施例提供的访问控制列表的查询方法的实现流程图;
图2是本发明实施例提供的访问控制列表的查询方法步骤S102的实现流程图;
图3是本发明实施例提供的规则组划分较佳的样例图;
图4是本发明实施例提供的配置DDR的空间划分功能的实现流程图;
图5是本发明实施例提供的DDR的空间划分的较佳样例图;
图6是本发明实施例提供的,在实际应用中ACL规则下发的较佳流程图;
图7是本发明实施例提供的,在实际应用中数据包查询ACL的较佳流程图;
图8是本发明实施例提供的访问控制列表的查询装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
图1是本发明实施例提供的访问控制列表的查询方法的实现流程图,详述如下:
在步骤S101中,接收访问控制列表ACL中不同类型的规则;
在步骤S102中,获取每个所述规则中的元素,将具备公共元素的不同类型的规则分类为同一个规则组;
在步骤S103中,利用哈希Hash算法对所述公共元素进行Hash运算,生成所述规则组中不同类型的规则存放的地址;
在步骤S104中,从所述数据包中提取规则组对应的公共元素进行Hash运算,生成双倍速率同步动态随机存储器DDR地址,将数据包中的各元素与所述DDR地址中规则的各元素进行匹配,根据匹配的结果,执行访问控制列表的查询动作;
其中,规则存放的地址为固定长度的DDR地址,表示规则在DDR中的存放地址。
将数据包中的各元素与所述DDR地址中规则的各元素进行匹配,根据匹配的结果,执行访问控制列表的查询动作,具体为:
,将数据包中的各元素与所述DDR地址中规则的各元素进行匹配;
当匹配成功时,根据规则中指定的动作对所述数据包进行过滤;
当匹配不成功时,不影响所述数据包。
当ACL中不同规则Hash运算获得的存放地址相同时,通过链表形式将规则级联;数据包需要查询链表中的每一级规则;
当链表过长时,拆除链表,将规则按完整的元素信息进行第二次Hash计算,原链表中的规则将获得不同的存放地址;数据包首先按第一次hash的地址查询一次ACL,然后每种类型的规则再按二次hash获得的地址进行一轮ACL查询;
采用二次Hash的方式控制了ACL查表的次数,最大查询次数等于规则的种类数,避免链表过长查询次数不受控。
在本发明实施例中,实现单个数据包查这一规则组时,只要一次查表就能完成多种类型规则的查询,节省了查询时间,显著的提高了ACL查表效率,同时又具备足够的灵活性,可以根据不同需求进行设计不同的规则组,提高了查表的智能程度。此外,当第一次Hash中有大量规则获得的存放地址相同时,通过二次Hash的方式,控制了链表的长度。解决了在目前的ACL查询领域中,大量规则Hash运算获得的存放地址相同,链表长度不受控制,单个数据包需要查询ACL的次数过多,查表效率低,无法满足数据包对访问控制列表的查询需求的问题。在单个数据包查询第一次Hash运算的存放地址时,不管有多少条规则落在该地址,都可以通过第二次Hash将他们打散,控制了查询的最大次数,节省了查询时间,显著的提高了ACL查表效率。
实施例二
图2是本发明实施例提供的访问控制列表的查询方法步骤S102的实现流程图,详述如下:
在步骤S201中,获取所述规则中的第一元素和第二元素;
在步骤S202中,检测所述规则中的第一元素是否为源IP地址SIP,当所述规则中的第一元素均为SIP时,检测所述规则中的第二元素是否为目的IP地址DIP,当所述规则中的第二元素不为DIP时,将多个第一元素为SIP、第二元素不为DIP的规则分类为第一规则组,当所述规则中的第二元素为DIP时,将多个第一元素为SIP、第二元素为DIP的规则分类为第二规则组;
在步骤S203中,检测所述规则中的第一元素是否为目的IP地址DIP,当所述规则中的第一元素均为DIP时,将多个第一元素为DIP的所述规则分类为第三规则组;
对所述规则中的各个元素进行排列:排列顺序为源IP地址SIP、目的IP地址DIP、源端口SP、目的端口DP等。当规则中不包含某个元素时,由后面的元素往前排一位,如规则仅包含DIP、SP、DP时,规则的第一元素为DIP,第二元素为SP、第三元素为DP。
其中,所述第一规则组、所述第二规则组以及所述第三规则组的公共元素各不相同。
参考图3,图3是本发明实施例提供的规则组划分较佳的样例图,详述如下:
将24种不同类型的规则分成3个规则组,分别为SIP、DIP、SIP+DIP,以规则组为单位对ACL进行查询。3个规则组中不同类型的规则如下:
第一规则组:
1.SIP;
2.SIP+SP;
3.SIP+DP;
4.SIP+Protocol;
5.SIP+SP+DP;
6.SIP+SP+Protocol;
7.SIP+DP+Protocol;
8.SIP+SP+DP+Protocol。
第二规则组:
1.SIP+DIP;
2.SIP+DIP+SP;
3.SIP+DIP+DP;
4.SIP+DIP+Protocol;
5.SIP+DIP+SP+DP;
6.SIP+DIP+SP+Protocol;
7.SIP+DIP+DP+Protocol;
8.SIP+DIP+SP+DP+Protocol。
第三规则组:
1.DIP;
2.DIP+SP;
3.DIP+DP;
4.DIP+Protocol;
5.DIP+SP+DP;
6.DIP+SP+Protocol;
7.DIP+DP+Protocol;
8.DIP+SP+DP+Protocol。
将上述24种类型的规则分成3组后,计算规则在DDR中的地址时不再是将各种规则中的所有元素进行Hash运算,这三个规则组计算DDR地址时分别只拿SIP、DIP、SIP+DIP进行Hash运算。以第一规则组为例,SIP、SIP+SP、SIP+DP、SIP+Protocol、SIP+SP+DP、SIP+SP+Protocol、SIP+DP+Protocol、SIP+SP+DP+Protocol都包含SIP,这8类规则计算DDR存放地址时都是只将SIP参与Hash运算。因此对于这8类ACL规则,如果SIP相同,那么计算获得DDR地址是相同的。也就是说,如果在这个地址里面存放了一条规则,不管存放的规则是上述8种类型中的任何一种,数据包只需要按SIP进行Hash获得地址,查一次就能获得8种类型规则的查询结果。依次类推,第二规则组和第三规则组也可以采用同样的方式,降低ACL查表次数。
在本发明实施例中,相比较现有技术,本申请提及的方案中一组规则ACL查表次数由8次降低为1次,大大提高了查表效率。
实施例三
图4是本发明实施例提供的配置DDR的空间划分功能的实现流程图,详述如下:
S401,将第一百分比的空间分配给ACL基础空间;
S402,将第二百分比的空间分配给ACL扩展空间;
S403,将剩余的DDR空间分配给ACL冲突空间;
其中,第一百分比和第二百分比均为预设值。
参考图5,图5是本发明实施例提供的DDR的空间划分的较佳样例图,详述如下:
图5将DDR空间分成三部分,其中ACL基础空间最大。
在本发明实施例中,将DDR的空间分成三部分:ACL基础空间、ACL冲突空间、ACL扩展空间。通过Hash算法计算得出的规则地址所在的空间,即为ACL基础空间。
实施例四
本发明实施例提供了配置ACL规则下发功能的实现流程,详述如下:
配置ACL规则下发功能,所述ACL规则下发功能,具体为:
获取第一次利用哈希Hash算法对所述公共元素进行Hash运算时,生成规则在所述ACL基础空间内存放的地址;
判断所述ACL基础空间的地址内是否已有规则;
当没有规则时,将规则存放在所述ACL基础空间中;
当有规则时,判断所述ACL基础空间的地址中的规则是否已经采用了两级Hash;
当所述ACL基础空间的地址中的规则没有采用两级Hash时,判断规则链表长度是否超过限定值,当规则链表长度没有超过限定值时,建立或扩展链表将规则存放在所述ACL冲突空间;
当所述ACL基础空间的地址中的规则采用两级Hash,或者,当规则链表长度超过限定值时,拆除第一级Hash建立的规则链表,通过第二次Hash计算,生成规则在所述ACL扩展空间的地址;
判断所述ACL扩展空间的地址内是否已有规则;
当所述ACL扩展空间的地址内已有规则时,建立或扩展链表将规则存放在所述ACL冲突空间;
当所述ACL扩展空间的地址内没有规则时,将规则存放在所述ACL扩展空间。
其中,限定值可以为用户自设,也可以***默认,在此不做限制。
其中,当某个规则链表级数超过8级以后,就需要将链表拆除,采用所有元素同时参与Hash运算。例如SIP+SP类型的规则,需要将SIP+SP同时参与Hash运算。通过这种两次Hash的方式,第一次Hash时落到同一个DDR地址里面的规则,再一次落到同一个DDR地址内的几率非常小。
在这种情况下,原来链表中的Rule-A还是放置在ACL基础空间的地址A处,Rule-B和Rule-C就被存放在ACL扩展空间的地址B1和C1处了。对于某个特定SIP的报文,只需要查一次地址A,然后再根据第二次Hash获得的地址依次查ACL-B、ACL-C,最多只需要9次即可。
如果第二次Hash计算规则在ACL扩展空间的地址时,依旧出现Hash冲突的情况,同样可以建立链表,除了链表中首条规则存放在ACL扩展空间外,链表中后续规则存放在ACL冲突空间。
概括而言,第一次Hash计算获得的DDR地址处于ACL基础空间,第二次Hash计算获得的DDR地址处于ACL扩展空间;规则链表中,第一条规则的地址在ACL基础空间或者ACL扩展空间,后面的规则所处的空间均为ACL冲突空间。
在本实施例中,通过二级hash计算规则存放地址的方式,在第一级hash冲突很严重的情况下(如链表长度超过8),将链表拆除,通过第二级hash的方式将同一个链表上的规则打散,存放到ACL扩展空间中。通过这种方式,减少ACL查表的次数,显著提高ACL查表效率。
实施例五
本发明实施例提供了访问控制列表的查询方法步骤S104的实现流程,详述如下:
接收数据包查询ACL的请求;
从所述数据包中提取规则组要求的公共元素进行Hash运算,生成第一DDR地址;
将第一DDR地址中规则的各元素与数据包中的各元素进行匹配,判断ACL基础空间的地址内是否有匹配的规则;
当ACL基础空间的地址内没有规则时,结束规则查询;
当ACL基础空间的地址内有规则时,判断是否匹配规则成功;
当匹配规则成功时,结束规则查询;
当匹配规则不成功时,判断所述地址是否指向规则链表中的其他规则;
当所述地址指向规则链表中的其他规则时,依次查询规则链表中的各个规则,直到匹配或者链表结束,才结束规则查询;
当所述地址没有指向规则链表中的其他规则时,判断所述地址是否需要二次Hash;
当所述地址需要二次Hash时,在规则组中,依次以规则指定的元素参与二次Hash计算,生成第二DDR地址;
将第二DDR地址中规则的各元素与数据包中的各元素进行匹配,查询ACL扩展空间的地址内是否有规则,当规则匹配成功或者规则类型遍历完毕时,结束规则查询。
实施例六
图6是本发明实施例提供的,在实际应用中ACL规则下发的较佳流程图,详述如下:
第一DDR地址计算规则在ACL基础空间的地址;
判断ACL基础空间的地址内是否已有规则;
当ACL基础空间的地址内没有规则时,将规则存放在ACL基础空间中;
当ACL基础空间的地址内有规则时,判断该地址中的规则是否已经采用了两级Hash;
当该地址中的规则没有采用两级Hash时,判断规则链表长度是否超过限定值;
当规则链表长度没有超过限定值时,建立或扩展链表将规则存放在ACL冲突空间;
当该地址中的规则采用了两级Hash时,或者,当规则链表长度超过限定值时,拆除第一级Hash建立的规则链表,第二次Hash计算规则在ACL扩展空间的地址;
判断ACL扩展空间的地址内是否已有规则;
当ACL扩展空间的地址内已有规则时,建立或扩展链表将规则存放在ACL冲突空间;
当ACL扩展空间的地址内没有规则时,将规则存放在ACL扩展空间。
实施例七
图7是本发明实施例提供的,在实际应用中数据包查询ACL的较佳流程图,详述如下:
数据包查询ACL;
第一次以SIP作为Hash输入计算规则地址;
判断访问控制列表ACL基础空间的地址内是否有规则;
当访问控制列表ACL基础空间的地址内没有规则时,结束规则查询;
当访问控制列表ACL基础空间的地址内有规则时,判断是否匹配规则成功;
当匹配规则成功时,结束规则查询;
当匹配规则不成功时,判断该地址是否指向规则链表中的其他规则;
当该地址指向规则链表中的其他规则时,依次查询规则链表中的各个规则,直到匹配或者链表结束,才结束规则查询;
当该地址没有指向规则链表中的其他规则时,判断该地址是否需要二次Hash;
当该地址需要二次Hash时,按照规则组中不同类型规则,依次以规则指定的元素参与二次Hash计算,得到规则在扩展空间的地址,通过地址查询规则,直到规则匹配或者规则类型遍历完毕,结束规则查询。
图7适用于SIP为公共元素的若干种类型的规则,例如,以下8种类型的规则:
SIP、SIP+SP、SIP+DP、SIP+Protocol、SIP+SP+DP、SIP+SP+Protocol、SIP+DP+Protocol、SIP+SP+DP+Protocol。
采用这个规则的数据包,可根据图7完成一次查表的流程。
实施例八
图8是本发明实施例提供的访问控制列表的查询装置的结构框图,该装置可以运行于通信设备中。为了便于说明,仅示出了与本实施例相关的部分。
参照图8,该访问控制列表的查询装置,包括:
规则接收模块81,用于接收访问控制列表ACL中不同类型的规则;
分类模块82,用于获取每个所述规则中的元素,将具备公共元素的不同类型的规则分类为同一个规则组;
地址存放模块83,用于利用哈希Hash算法对所述公共元素进行Hash运算,生成所述规则组中不同类型的规则存放的地址;
查询动作执行模块84,用于从所述数据包中提取规则组对应的公共元素进行Hash运算,生成双倍速率同步动态随机存储器DDR地址,将数据包中的各元素与所述DDR地址中规则的各元素进行匹配,根据匹配的结果,执行访问控制列表的查询动作;
其中,规则存放的地址为固定长度的DDR地址,表示规则在DDR中的存放地址。
作为本实施例的一种实现方式,在所述访问控制列表的查询装置中,所述分类模块,具体包括:
获取单元,用于获取所述规则中的第一元素和第二元素;
第一分类单元,用于检测所述规则中的第一元素是否为源IP地址SIP,当所述规则中的第一元素均为SIP时,检测所述规则中的第二元素是否为目的IP地址DIP,当所述规则中的第二元素不为DIP时,将多个第一元素为SIP、第二元素不为DIP的规则分类为第一规则组,当所述规则中的第二元素为DIP时,将多个第一元素为SIP、第二元素为DIP的规则分类为第二规则组;
第二分类单元,用于检测所述规则中的第一元素是否为目的IP地址DIP,当所述规则中的第一元素均为DIP时,将多个第一元素为DIP的所述规则分类为第三规则组;
其中,所述第一规则组、所述第二规则组以及所述第三规则组的公共元素各不相同。
作为本实施例的一种实现方式,在所述访问控制列表的查询装置中,所述查询装置,还包括:
空间划分功能配置模块,用于配置DDR的空间划分功能,所述空间划分功能,具体为:
将第一百分比的空间分配给ACL基础空间;
将第二百分比的空间分配给ACL扩展空间;
将剩余的DDR空间分配给ACL冲突空间;
其中,第一百分比和第二百分比均为预设值。
作为本实施例的一种实现方式,在所述访问控制列表的查询装置中,所述访问控制列表的查询装置,还包括:
ACL规则下发功能配置模块,用于
配置ACL规则下发功能,所述ACL规则下发功能,具体为:
获取第一次利用哈希Hash算法对所述公共元素进行Hash运算时,生成规则在所述ACL基础空间内存放的地址;
判断所述ACL基础空间的地址内是否已有规则;
当没有规则时,将规则存放在所述ACL基础空间中;
当有规则时,判断所述ACL基础空间的地址中的规则是否已经采用了两级Hash;
当所述ACL基础空间的地址中的规则没有采用两级Hash时,判断规则链表长度是否超过限定值,当规则链表长度没有超过限定值时,建立或扩展链表将规则存放在所述ACL冲突空间;
当所述ACL基础空间的地址中的规则采用两级Hash,或者,当规则链表长度超过限定值时,拆除第一级Hash建立的规则链表,通过第二次Hash计算,生成规则在所述ACL扩展空间的地址;
判断所述ACL扩展空间的地址内是否已有规则;
当所述ACL扩展空间的地址内已有规则时,建立或扩展链表将规则存放在所述ACL冲突空间;
当所述ACL扩展空间的地址内没有规则时,将规则存放在所述ACL扩展空间。
作为本实施例的一种实现方式,在所述访问控制列表的查询装置中,所述查询动作执行模块,具体包括:
请求接收单元,用于接收数据包查询ACL的请求;
第一DDR地址生成单元,用于从所述数据包中提取规则组要求的公共元素进行Hash运算,生成第一DDR地址;
规则判断单元,用于将第一DDR地址中规则的各元素与数据包中的各元素进行匹配,判断ACL基础空间的地址内是否有匹配的规则;
第一规则查询结束单元,用于当ACL基础空间的地址内没有规则时,结束规则查询;
第一匹配单元,用于当ACL基础空间的地址内有规则时,判断是否匹配规则成功;
第二规则查询结束单元,用于当匹配规则成功时,结束规则查询;
指向规则判断单元,用于当匹配规则不成功时,判断所述地址是否指向规则链表中的其他规则;
第三规则查询结束单元,用于当所述地址指向规则链表中的其他规则时,依次查询规则链表中的各个规则,直到匹配或者链表结束,才结束规则查询;
二次Hash判断单元,用于当所述地址没有指向规则链表中的其他规则时,判断所述地址是否需要二次Hash;
第二DDR地址生成单元,用于当所述地址需要二次Hash时,在规则组中,依次以规则指定的元素参与二次Hash计算,生成第二DDR地址;
停止查询单元,用于将第二DDR地址中规则的各元素与数据包中的各元素进行匹配,查询ACL扩展空间的地址内是否有规则,当规则匹配成功或者规则类型遍历完毕时,结束规则查询。
本发明实施例提供的装置可以应用在前述对应的方法实施例中,详情参见上述实施例的描述,在此不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现。所述的程序可以存储于可读取存储介质中,所述的存储介质,如随机存储器、闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等。所述存储介质位于存储器,处理器读取存储器中的信息,结合其硬件执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种访问控制列表的查询方法,其特征在于,包括:
接收访问控制列表ACL中不同类型的规则;
获取每个所述规则中的元素,将具备公共元素的不同类型的规则分类为同一个规则组;
利用哈希Hash算法对所述公共元素进行Hash运算,生成所述规则组中不同类型的规则存放的地址;
从所述数据包中提取规则组对应的公共元素进行Hash运算,生成双倍速率同步动态随机存储器DDR地址,将数据包中的各元素与所述DDR地址中规则的各元素进行匹配,根据匹配的结果,执行访问控制列表的查询动作;
其中,规则存放的地址为固定长度的DDR地址,表示规则在DDR中的存放地址。
2.如权利要求1所述的访问控制列表的查询方法,其特征在于,获取每个所述规则中的元素,将具备公共元素的不同类型的规则分类为同一个规则组,具体为:
获取所述规则中的第一元素和第二元素;
检测所述规则中的第一元素是否为源IP地址SIP,当所述规则中的第一元素均为SIP时,检测所述规则中的第二元素是否为目的IP地址DIP,当所述规则中的第二元素不为DIP时,将多个第一元素为SIP、第二元素不为DIP的规则分类为第一规则组,当所述规则中的第二元素为DIP时,将多个第一元素为SIP、第二元素为DIP的规则分类为第二规则组;
检测所述规则中的第一元素是否为目的IP地址DIP,当所述规则中的第一元素均为DIP时,将多个第一元素为DIP的所述规则分类为第三规则组;
其中,所述第一规则组、所述第二规则组以及所述第三规则组的公共元素各不相同。
3.如权利要求1所述的访问控制列表的查询方法,其特征在于,所述查询方法,还包括:
配置DDR的空间划分功能,所述空间划分功能,具体为:
将第一百分比的空间分配给ACL基础空间;
将第二百分比的空间分配给ACL扩展空间;
将剩余的DDR空间分配给ACL冲突空间;
其中,第一百分比和第二百分比均为预设值。
4.如权利要求3所述的访问控制列表的查询方法,其特征在于,所述查询方法,还包括:
配置ACL规则下发功能,所述ACL规则下发功能,具体为:
获取第一次利用哈希Hash算法对所述公共元素进行Hash运算时,生成规则在所述ACL基础空间内存放的地址;
判断所述ACL基础空间的地址内是否已有规则;
当没有规则时,将规则存放在所述ACL基础空间中;
当有规则时,判断所述ACL基础空间的地址中的规则是否已经采用了两级Hash;
当所述ACL基础空间的地址中的规则没有采用两级Hash时,判断规则链表长度是否超过限定值,当规则链表长度没有超过限定值时,建立或扩展链表将规则存放在所述ACL冲突空间;
当所述ACL基础空间的地址中的规则采用两级Hash,或者,当规则链表长度超过限定值时,拆除第一级Hash建立的规则链表,通过第二次Hash计算,生成规则在所述ACL扩展空间的地址;
判断所述ACL扩展空间的地址内是否已有规则;
当所述ACL扩展空间的地址内已有规则时,建立或扩展链表将规则存放在所述ACL冲突空间;
当所述ACL扩展空间的地址内没有规则时,将规则存放在所述ACL扩展空间。
5.如权利要求1或3所述的访问控制列表的查询方法,其特征在于,所述从所述数据包中提取规则组对应的公共元素进行Hash运算,生成双倍速率同步动态随机存储器DDR地址,将数据包中的各元素与所述DDR地址中规则的各元素进行匹配,根据匹配的结果,执行访问控制列表的查询动作,具体为:
接收数据包查询ACL的请求;
从所述数据包中提取规则组要求的公共元素进行Hash运算,生成第一DDR地址;
将第一DDR地址中规则的各元素与数据包中的各元素进行匹配,判断ACL基础空间的地址内是否有匹配的规则;
当ACL基础空间的地址内没有规则时,结束规则查询;
当ACL基础空间的地址内有规则时,判断是否匹配规则成功;
当匹配规则成功时,结束规则查询;
当匹配规则不成功时,判断所述地址是否指向规则链表中的其他规则;
当所述地址指向规则链表中的其他规则时,依次查询规则链表中的各个规则,直到匹配或者链表结束,才结束规则查询;
当所述地址没有指向规则链表中的其他规则时,判断所述地址是否需要二次Hash;
当所述地址需要二次Hash时,在规则组中,依次以规则指定的元素参与二次Hash计算,生成第二DDR地址;
将第二DDR地址中规则的各元素与数据包中的各元素进行匹配,查询ACL扩展空间的地址内是否有规则,当规则匹配成功或者规则类型遍历完毕时,结束规则查询。
6.一种访问控制列表的查询装置,其特征在于,包括:
规则接收模块,用于接收访问控制列表ACL中不同类型的规则;
分类模块,用于获取每个所述规则中的元素,将具备公共元素的不同类型的规则分类为同一个规则组;
地址存放模块,用于利用哈希Hash算法对所述公共元素进行Hash运算,生成所述规则组中不同类型的规则存放的地址;
查询动作执行模块,用于从所述数据包中提取规则组对应的公共元素进行Hash运算,生成双倍速率同步动态随机存储器DDR地址,将数据包中的各元素与所述DDR地址中规则的各元素进行匹配,根据匹配的结果,执行访问控制列表的查询动作;
其中,规则存放的地址为固定长度的DDR地址,表示规则在DDR中的存放地址。
7.如权利要求6所述访问控制列表的查询装置,其特征在于,所述分类模块,具体包括:
获取单元,用于获取所述规则中的第一元素和第二元素;
第一分类单元,用于检测所述规则中的第一元素是否为源IP地址SIP,当所述规则中的第一元素均为SIP时,检测所述规则中的第二元素是否为目的IP地址DIP,当所述规则中的第二元素不为DIP时,将多个第一元素为SIP、第二元素不为DIP的规则分类为第一规则组,当所述规则中的第二元素为DIP时,将多个第一元素为SIP、第二元素为DIP的规则分类为第二规则组;
第二分类单元,用于检测所述规则中的第一元素是否为目的IP地址DIP,当所述规则中的第一元素均为DIP时,将多个第一元素为DIP的所述规则分类为第三规则组;
其中,所述第一规则组、所述第二规则组以及所述第三规则组的公共元素各不相同。
8.如权利要求6所述访问控制列表的查询装置,其特征在于,所述查询装置,还包括:
空间划分功能配置模块,用于配置DDR的空间划分功能,所述空间划分功能,具体为:
将第一百分比的空间分配给ACL基础空间;
将第二百分比的空间分配给ACL扩展空间;
将剩余的DDR空间分配给ACL冲突空间;
其中,第一百分比和第二百分比均为预设值。
9.如权利要求8所述访问控制列表的查询装置,其特征在于,所述访问控制列表的查询装置,还包括:
ACL规则下发功能配置模块,用于配置ACL规则下发功能,所述ACL规则下发功能,具体为:
获取第一次利用哈希Hash算法对所述公共元素进行Hash运算时,生成规则在所述ACL基础空间内存放的地址;
判断所述ACL基础空间的地址内是否已有规则;
当没有规则时,将规则存放在所述ACL基础空间中;
当有规则时,判断所述ACL基础空间的地址中的规则是否已经采用了两级Hash;
当所述ACL基础空间的地址中的规则没有采用两级Hash时,判断规则链表长度是否超过限定值,当规则链表长度没有超过限定值时,建立或扩展链表将规则存放在所述ACL冲突空间;
当所述ACL基础空间的地址中的规则采用两级Hash,或者,当规则链表长度超过限定值时,拆除第一级Hash建立的规则链表,通过第二次Hash计算,生成规则在所述ACL扩展空间的地址;
判断所述ACL扩展空间的地址内是否已有规则;
当所述ACL扩展空间的地址内已有规则时,建立或扩展链表将规则存放在所述ACL冲突空间;
当所述ACL扩展空间的地址内没有规则时,将规则存放在所述ACL扩展空间。
10.如权利要求6或8所述访问控制列表的查询装置,其特征在于,所述查询动作执行模块,具体包括:
请求接收单元,用于接收数据包查询ACL的请求;
第一DDR地址生成单元,用于从所述数据包中提取规则组要求的相同元素进行Hash运算,生成第一DDR地址;
规则判断单元,用于将第一DDR地址中规则的各元素与数据包中的各元素进行匹配,判断ACL基础空间的地址内是否有匹配的规则;
第一规则查询结束单元,用于当ACL基础空间的地址内没有规则时,结束规则查询;
第一匹配单元,用于当ACL基础空间的地址内有规则时,判断是否匹配规则成功;
第二规则查询结束单元,用于当匹配规则成功时,结束规则查询;
指向规则判断单元,用于当匹配规则不成功时,判断所述地址是否指向规则链表中的其他规则;
第三规则查询结束单元,用于当所述地址指向规则链表中的其他规则时,依次查询规则链表中的各个规则,直到匹配或者链表结束,才结束规则查询;
二次Hash判断单元,用于当所述地址没有指向规则链表中的其他规则时,判断所述地址是否需要二次Hash;
第二DDR地址生成单元,用于当所述地址需要二次Hash时,在规则组中,依次以规则指定的元素参与二次Hash计算,生成第二DDR地址;
停止查询单元,用于将第二DDR地址中规则的各元素与数据包中的各元素进行匹配,查询ACL扩展空间的地址内是否有规则,当规则匹配成功或者规则类型遍历完毕时,结束规则查询。
CN201510998606.3A 2015-12-28 2015-12-28 一种访问控制列表的查询方法及装置 Active CN106027459B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510998606.3A CN106027459B (zh) 2015-12-28 2015-12-28 一种访问控制列表的查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510998606.3A CN106027459B (zh) 2015-12-28 2015-12-28 一种访问控制列表的查询方法及装置

Publications (2)

Publication Number Publication Date
CN106027459A true CN106027459A (zh) 2016-10-12
CN106027459B CN106027459B (zh) 2019-04-30

Family

ID=57082593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510998606.3A Active CN106027459B (zh) 2015-12-28 2015-12-28 一种访问控制列表的查询方法及装置

Country Status (1)

Country Link
CN (1) CN106027459B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547502A (zh) * 2019-01-22 2019-03-29 成都亚信网络安全产业技术研究院有限公司 防火墙acl管理方法及装置
CN110022281A (zh) * 2018-01-08 2019-07-16 ***通信有限公司研究院 访问控制列表容量的测试方法、设备和计算机存储介质
CN112311595A (zh) * 2020-10-15 2021-02-02 烽火通信科技股份有限公司 一种高效访问控制链表及其实现方法
CN112383479A (zh) * 2020-10-15 2021-02-19 国家计算机网络与信息安全管理中心 规则查询方法、装置、计算机设备和存储介质
CN112667526A (zh) * 2021-03-22 2021-04-16 芯启源(南京)半导体科技有限公司 一种访问控制列表电路实现方法及其电路
CN113779320A (zh) * 2021-08-18 2021-12-10 北京计算机技术及应用研究所 一种表项存储地址冲突的解决方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040254934A1 (en) * 2003-06-11 2004-12-16 International Business Machines Corporation High run-time performance method and system for setting ACL rule for content management security
CN101345694A (zh) * 2007-07-11 2009-01-14 上海未来宽带技术及应用工程研究中心有限公司 一种快速查找定位和匹配访问控制列表的方法
CN103188231A (zh) * 2011-12-30 2013-07-03 北京锐安科技有限公司 一种多核板卡acl规则匹配方法
CN104954200A (zh) * 2015-06-17 2015-09-30 国家计算机网络与信息安全管理中心 一种网络数据包的多类型规则高速匹配方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040254934A1 (en) * 2003-06-11 2004-12-16 International Business Machines Corporation High run-time performance method and system for setting ACL rule for content management security
CN101345694A (zh) * 2007-07-11 2009-01-14 上海未来宽带技术及应用工程研究中心有限公司 一种快速查找定位和匹配访问控制列表的方法
CN103188231A (zh) * 2011-12-30 2013-07-03 北京锐安科技有限公司 一种多核板卡acl规则匹配方法
CN104954200A (zh) * 2015-06-17 2015-09-30 国家计算机网络与信息安全管理中心 一种网络数据包的多类型规则高速匹配方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110022281A (zh) * 2018-01-08 2019-07-16 ***通信有限公司研究院 访问控制列表容量的测试方法、设备和计算机存储介质
CN109547502A (zh) * 2019-01-22 2019-03-29 成都亚信网络安全产业技术研究院有限公司 防火墙acl管理方法及装置
CN112311595A (zh) * 2020-10-15 2021-02-02 烽火通信科技股份有限公司 一种高效访问控制链表及其实现方法
CN112383479A (zh) * 2020-10-15 2021-02-19 国家计算机网络与信息安全管理中心 规则查询方法、装置、计算机设备和存储介质
CN112383479B (zh) * 2020-10-15 2022-03-22 国家计算机网络与信息安全管理中心 规则查询方法、装置、计算机设备和存储介质
CN112311595B (zh) * 2020-10-15 2022-09-09 烽火通信科技股份有限公司 一种高效访问控制链表及其实现方法
CN112667526A (zh) * 2021-03-22 2021-04-16 芯启源(南京)半导体科技有限公司 一种访问控制列表电路实现方法及其电路
CN112667526B (zh) * 2021-03-22 2021-06-29 芯启源(南京)半导体科技有限公司 一种访问控制列表电路实现方法及其电路
CN113779320A (zh) * 2021-08-18 2021-12-10 北京计算机技术及应用研究所 一种表项存储地址冲突的解决方法
CN113779320B (zh) * 2021-08-18 2024-02-27 北京计算机技术及应用研究所 一种表项存储地址冲突的解决方法

Also Published As

Publication number Publication date
CN106027459B (zh) 2019-04-30

Similar Documents

Publication Publication Date Title
CN106027459A (zh) 一种访问控制列表的查询方法及装置
CN101860531B (zh) 数据包过滤规则匹配方法及装置
CN105122745A (zh) 用于网络设备的高效最长前缀匹配技术
CN104579940B (zh) 查找访问控制列表的方法及装置
US10333845B2 (en) Forwarding data packets
CN107547391B (zh) 一种报文传输方法和装置
TWI661698B (zh) 轉發乙太網路封包的方法和裝置
CN101217528B (zh) 一种链路聚合方法和装置
CN103812765B (zh) 具有过滤功能的can转以太网网关及基于该网关的数据传输方法
CN101753542A (zh) 一种加速防火墙过滤规则匹配的方法及装置
CN103188231A (zh) 一种多核板卡acl规则匹配方法
CN111181857B (zh) 一种报文处理方法及装置、存储介质、光网络终端
CN103078798A (zh) 一种建立路由表的方法和设备
CN101242362A (zh) 查找键值生成装置及方法
CN108345643A (zh) 一种数据处理方法及装置
CN104580008B (zh) 基于硬件提高多队列随机丢弃报文精度的方法及装置
CN101645851A (zh) 一种ip分片报文的重组方法和装置
CN106533973A (zh) 分发业务消息的方法、设备和***
CN101710864A (zh) 一种多网口Linux服务器的配置方法及装置
CN106878185B (zh) 一种报文ip地址匹配电路及方法
CN107493245B (zh) 交换机的板卡以及数据流转发方法
CN105933235A (zh) 数据通信方法及装置
CN102752208B (zh) 防止半连接攻击的方法及***
CN103905324A (zh) 一种基于报文五元组的调度分流方法和***
CN110995609A (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A query method and device of access control list

Effective date of registration: 20200826

Granted publication date: 20190430

Pledgee: Bank of Beijing Limited by Share Ltd. Shenzhen branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2020980005382

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20210803

Granted publication date: 20190430

Pledgee: Bank of Beijing Limited by Share Ltd. Shenzhen branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2020980005382

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A query method and device for access control list

Effective date of registration: 20210816

Granted publication date: 20190430

Pledgee: Bank of Beijing Limited by Share Ltd. Shenzhen branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2021440020082

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20190430

Pledgee: Bank of Beijing Limited by Share Ltd. Shenzhen branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2021440020082