CN102487374B - 一种访问控制列表实现方法及装置 - Google Patents

一种访问控制列表实现方法及装置 Download PDF

Info

Publication number
CN102487374B
CN102487374B CN201010567890.6A CN201010567890A CN102487374B CN 102487374 B CN102487374 B CN 102487374B CN 201010567890 A CN201010567890 A CN 201010567890A CN 102487374 B CN102487374 B CN 102487374B
Authority
CN
China
Prior art keywords
rule
data structure
acl
access control
form data
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
Application number
CN201010567890.6A
Other languages
English (en)
Other versions
CN102487374A (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.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201010567890.6A priority Critical patent/CN102487374B/zh
Publication of CN102487374A publication Critical patent/CN102487374A/zh
Application granted granted Critical
Publication of CN102487374B publication Critical patent/CN102487374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种成本和功耗低的访问控制列表实现装置,包括访问控制列表生成模块、存储器、访问控制列表查找模块和多维规则处理模块。访问控制列表生成模块用于,分别对各个规则区间左端点的高M比特部分进行哈希运算,将运算结果相同的端点作为叶子节点组成同一个树形数据结构,得到若干树形数据结构并存储在存储器中;访问控制列表查找模块用于,提取待查找数据包的关键字,对高M比特部分进行哈希运算,找到对应的树形数据结构进行查找,获取对应的规则,其中,0<M<N,N为规则的宽度;多维规则处理模块用于,将多维规则分解为多个一维规则,分别查找其规则,然后将多个一维规则进行合并。本发明还相应公开了一种访问控制列表实现方法。

Description

一种访问控制列表实现方法及装置
技术领域
本发明属于通信技术领域,尤其涉及一种访问控制列表实现方法及装置。
背景技术
根据数据包特定关键字段将数据包分成不同的流,例如根据数据包的源IP(internet protocol,因特网协议)地址和目的IP地址进行分类,同一类数据包称之为一条流。分成流后,可以针对该流进行各种处理,例如丢弃或转发、限速、重新分配优先级等,这种处理称之为动作。通常一个规则加上对应的动作称之为一个ACL(Access Control List,访问控制列表)条目。
根据一般业界标准组成规则的关键字段有5个,通常也称5元组,这5个关键字是:IP报文的源地址、IP报文的目的地址、IP报文的承载协议类型、TCP(Transmission Control Protocol,传输层控制协议)或UDP(User DataProtocol,用户数据协议)源端口号、TCP或UDP的目的端口号。在具体实现中,使用的关键字还可以有其他扩展:COS(Class Of Service,服务等级)、TOS(TypeOf Service,服务类型)、DSCP(Differentiated Service Code Point,差分服务编码)、虚拟局域网索引VLAN ID、源和目的MAC(Media Access Control,介质访问控制)地址等,以上各个关键字可以任意组合,并且可以设置范围限制,例如一个规则可以是:TCP端口1000~2000+IP地址255.122.122.*(*代表不关心的位)。对于PTN(Packet Transport Network,分组传送网)设备,其组成规则的关键字可能还需要包括MPLS(多协议标签交换)数据包中的隧道标识ID或伪线标识ID等,其具体的规则根据实际应用确定。
随着网络技术的发展,越来越多的网络设备需要支持快速准确的报文分类,如安全网关、边缘路由器、核心路由器等。未来网络的发展趋势需要为用户提供更好的服务质量,而诸如防火墙、区分服务、虚拟专网VPN、基于策略的路由等提高服务质量的机制都是基于高效访问控制列表技术之上的。此外,随着光纤通信技术的发展,链路带宽和传输速率已不再成为问题,路由转发设备正在成为网络瓶颈,而访问控制列表更是关键之关键。因此高效快速的访问控制列表实现方法对于未来互联网的发展具有极其重要的意义。
现行分组传输设备采用TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)实现访问控制列表。采用TCAM实现访问控制列表的优点在于实现简单,但是TCAM也有许多不足的地方。首先TCAM在同一时钟周期内将待查找的关键字和TCAM的每一个条目进行比较,所以功耗较大;第二是TCAM器件成本较高,价格昂贵;第三是由于TCAM器件实现的原因,采用TCAM实现的规则库不能太大。
发明内容
本发明要解决的技术问题是针对现有技术中存在的上述缺陷,提出一种成本和功耗较低的访问控制列表实现方法和装置。
本发明采用的技术方案包括:
一种访问控制列表实现装置,包括访问控制列表生成模块、存储器和访问控制列表查找模块:
其中,所述访问控制列表生成模块用于,将同一维的各规则区间映射到一个数轴上,分别得到各规则区间在该数轴上的端点,并以所述以各个规则对应的区间的端点为叶子节点,建立起树形数据结构,所述端点指左端点和右端点之一;
所述存储器用于存储所述树形数据结构;
所述访问控制列表查找模块用于,提取待查找数据包的关键字,以之查找所述树形数据结构,获取所述待查找数据包对应的规则。
进一步地,所述树形数据结构指2-3树结构。
进一步地,所述树形数据结构指二叉树结构。
进一步地,所述访问控制列表生成模块还用于,为所述树形数据结构建立备份,并将其保存于所述存储器中。
进一步地,所述以各个规则对应的区间的端点为叶子节点,建立起树形数据结构,是指分别对各个叶子节点的高M比特部分进行哈希运算,将运算结果相同的叶子节点组成一个树形数据结构,从而得到一个以上的树形数据结构;
所述提取待查找数据包的关键字,以之查找所述树形数据结构,是指对所述关键字的高M比特部分进行哈希运算,根据运算结果找到对应的树形数据结构进行查找;
0<M<N,N为规则的宽度。优选地,0<M<N/3。
进一步地,本发明所述访问控制列表实现装置还包括多维规则处理模块,该模块用于,如果所述待查找数据包的规则为多维,则首先将其规则分解为多个一维规则,对于其中任一个一维规则,交由所述访问控制列表生成模块和访问控制列表查找模块执行,然后将得到的所述待查找数据包对应的该一维规则,最后将所述待查找数据包对应的多个一维规则进行合并得到所述待查找数据包对应的多维规则;多维指二维及二维以上。
一种访问控制列表实现方法,包括如下步骤:
A、将同一维的各规则区间映射到一个数轴上,分别得到各规则区间在该数轴上的端点,并以各个规则对应的区间的端点为叶子节点,建立树形数据结构,并保存所述树形数据结构;
B、提取待查找数据包的关键字,以之查找所述树形数据结构,获取所述待查找数据包对应的规则;
所述端点指左端点和右端点之一。
进一步地,为了提高查找的效率,在步骤A中,分别对各个叶子节点的高M比特部分进行哈希运算,将运算结果相同的叶子节点组成一个树形数据结构,从而得到一个以上的树形数据结构;步骤B中,对所述关键字的高M比特部分进行哈希运算,根据运算结果找到对应的树形数据结构进行查找;0<M<N,N为规则的宽度,也即所述关键字的宽度。优选地,0<M<N/3。
进一步地,如果所述待查找数据包的规则为多维,则首先将其规则分解为多个一维规则,对于其中任一个一维规则,执行所述步骤A和步骤B,得到所述待查找数据包对应的该一维规则,然后进行规则合并,得到所述待查找数据包对应的多维规则;多维指二维及二维以上。
本发明的有益效果为:
本发明通过建立树形数据结构对规则进行存储,当查找规则的时候,通过模糊匹配的方式即能够查找对对应的规则,不再需要采用如TCAM的查找方式,在同一时钟周期内将待查找的关键字和TCAM的每一个条目进行比较,因此能够显著节省功耗。并且,对于多维规则,本发明首先将其分解为多个一维规则,并分别采用树形数据结构进行规则存储和查找,然后将查找得到的多个一维规则进行合并,得到待查找数据包对应的多维规则,因此本发明能够扩展到任意维数的ACL规则表。本发明提供的访问控制列表实现方法和装置还具有成本低,技术方案简便易于实现的优点。
附图说明
图1为本发明访问控制列表实现装置结构示意图;
图2为一个具体实施例的本发明访问控制列表实现装置的电路结构示意图。
图3为2-3树数据结构示例图;
图4为ACL表的数据结构示例图;
图5为本发明访问控制列表实现方法流程示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1为本发明访问控制列表实现装置结构示意图,如图所示,本发明访问控制列表实现装置包括访问控制列表生成模块、存储器、访问控制列表查找模块和多维规则处理模块。
其中,访问控制列表生成模块用于,以各个规则对应的区间的左端点为叶子节点(也可以右端点为叶子节点,但必须统一为左端点,或统一为右端点),建立树形数据结构,并对该树形数据结构建立备份,该树形数据结构可以为任意树形数据结构,例如2-3树结构,又例如二叉树或多叉树结构。为了提高查找的效率,分别对各个叶子节点的高M比特部分进行哈希运算,将运算结果相同的叶子节点组成一个树形数据结构,从而得到一个以上的树形数据结构。其中0<M<N,优选0<M<N/3,N为规则的宽度,也即关键字的宽度。
存储器用于对生成的树形数据结构以及备份树形数据结构进行保存。
访问控制列表查找模块用于,提取待查找数据包的关键字,以之查找树形数据结构,获取待查找数据包对应的规则。为了提高效率,对应于上面访问控制列表生产模块采用的优化方案,对关键字的高M比特部分进行哈希运算,根据运算结果找到对应的树形数据结构进行查找。
多维规则处理模块用于,如果待查找数据包的规则为多维,则首先将其规则分解为多个一维规则,对于其中任一个一维规则,交由访问控制列表生成模块和访问控制列表查找模块执行,然后将得到的待查找数据包对应的该一维规则进行规则合并,得到待查找数据包对应的多维规则。
由于信息爆炸性的增长,所以网络流量也迅速增大,为了使交换设备能够适应网络流量的需要,交换设备应该达到线速交换处理能力,因此设备ACL分类器也需要能够达到线速处理能力。如果单个引擎无法满足设备线速处理能力,在实现的时候可以复制多个查找引擎,在某个时间内同时处理多个数据包使分类器达到线速处理能力。需要复制的份数取决于交换设备需要达到的交换能力和存储器的带宽,其结构如图2所示。
图2为一个具体实施例的本发明访问控制列表实现装置的电路结构示意图,如图所示,本发明访问控制列表实现装置的电路结构包括:
规则表模块:为存储块,用于存储软件配置数据,其数据结构如3所示。备份规则表和规则表是完全一样的。
数据包分发器:用于将总线上的数据包根据各个通路上搜索引擎工作状态分发数据包。首先公平轮询1......L个通道,如果轮询到的通道空闲则将数据包的描述信息发送到对应的通道上,如果轮询到的通道忙,则轮询下一个通道,周而复始。
搜索引擎:接收数据包分发器发送过来的包描述信息,根据寄存器的配置提出相应的关键字。用关键字根据专利描述的ACL查找步骤到规则表中搜索对应的条目。将查找到条目对应的规则结果发送给规则合并器。
规则合并器:将1到K个搜索引擎查找结果进行合并,得出数据包最后结果,即QoS,丢弃标识,限速标识等信息。
RR(round robin,公平轮询)轮询:从1到L挨个轮询每个通道的搜索引擎的工作状态,如果该通道上1到K个搜索引擎都完成了查表,RR轮询模块取出最后合并结果发送到总线上。如果该通道还没有完成查找和处于等待数据包状态则轮询下一个通道。
本发明所设计的电路结构简单且可扩展性好,可以扩展到任意维ACL规则表;可重用性高,电路中的搜索引擎的电路结构都是一致的,设计只需要例化搜索引擎模块即可;实现成本低,本发明实现不需要使用TCAM,大大降低了设备的成本;可配置性强,设备的K个规则表可支持1到K维ACL规则,极限情况下将K个规则表配置成同一种规则,此时只支持一维ACL规则,但是能够支持的规则数是原来的K倍。
下面以一个具体实例的方式对2-3树的生成和查找做进一步说明:
ACL规则生成:
例如我们需要配置的规则为VLAN ID。
R1(规则1):VLAN ID为1~4;
R2:VLAN ID为5~6;
R3:VLAN ID为7~8;
Rn-1:VLAN ID为60~62;
Rn:VLAN ID为63~无穷大。
第一步、提取各个规则的区间的左端点,分别是:1,5,7,9,......,63;
第二步、将各个区间的左端点按照从小到大排序,排序后的结果是:1,5,7,9,...,63;
第三步、取各个端点高M比特做hash计算,例如hash函数为取端点的高4比特作为hash结果,那么1,5,7,9,......,63的hash结果都是0(假设1,5,7,9,......,63都是32位的整数);
第四步、将数组1,5,7,9,......,63组织成一棵2-3树,如图3所示:数组a的索引从0开始,即a[0]=1,a[1]=5,a[2]=7;
2-3树的最底层为第一层,从底向上依次为第二层,第三层。
那么第二层第一个节点左边数据为a[2+6*n],右边数据为a[4+6*n],(n=0......(N-4)/6取整数);
那么第三层第一个节点左边数据为a[6+18*n],右边的数据为a[12+18*n],(n=0......(N-12)/18取整数);
其他的层次依次类推。
第五步、将生成的树表写到规则表中。其数据在规则表存储内的格式如图4所示,因为hash结果为0,所以树根节点写在表的0地址上。
第六步、软件将规则表对应的动作写入到规则动作表中,每个条目包括但不限于ACL规则(例如指示接收还是丢弃数据包)、ACL规则在该维上的优先级、该维对应的QoS和QoS优先级、限速标识和限速标识优先级。
查找过程:
例如芯片接收到一个数据,其VLAN ID为12。
第一步、根据寄存器的配置从数据包提取关键字,例如寄存器配置为提取数据包的VLAN ID。那么硬件直接将数据包中的VLAN ID取出来作为待查找关键字12。
第二步、将待查找关键字取高4比特作为hash结果,即得到hash_idx=0。搜索引擎根据hash_idx=0读取规则表第0地址的条目。
第三步、将12和规则表1第0地址的条目(17,41)进行比较,该条目为树根节点(中间节点),12比17小,所以根据左指针读取条目(7,11)节点。
第四步、判断条目(7,11)为中间节点,比较12大于11,所以根据该节点的右指针读取下一个条目。
第五步、判断条目(11,14)为叶子节点,比较12大于11但是小于14,所以根据节点(11,14)rule5_idx为地址读取规则动作表,最后得到了本次查找的结果。
图5为本发明访问控制列表实现方法流程示意图,如图所示,本发明访问控制列表实现方法具体包括如下步骤:
1、以网管设置的各个规则对应的区间的左端点为叶子节点(也可以右端点为叶子节点,但必须统一为左端点,或统一为右端点),建立树形数据结构,并对该树形数据结构建立备份,该树形数据结构可以为任意树形数据结构,例如2-3树结构,又例如二叉树或多叉树结构。
2、提取待查找数据包的关键字,以之查找树形数据结构,获取该待查找数据包对应的规则。
3、当对规则进行变更时,首先对备份树形数据结构进行修改,然后再对树形数据结构进行修改。
为了提高查找的效率,在步骤1中,分别对各个叶子节点的高M比特部分进行哈希运算,将运算结果相同的叶子节点组成一个树形数据结构,从而得到一个以上的树形数据结构;相应地,步骤2中,对关键字的高M比特部分进行哈希运算,根据运算结果找到对应的树形数据结构进行查找;其中0<M<N,优选0<M<N/3,N为规则的宽度,也即关键字的宽度。
如果待查找数据包的规则为多维,则首先将其规则分解为多个一维规则,对于其中任一个一维规则,执行步骤1和步骤2,得到该数据包对应的该一维规则,然后进行规则合并,得到该数据包对应的多维规则。即:将多维规则分解成多个一维规则,然后将其投影到数轴上并将各个区间的左端点组织成2-3树结构,然后通过一个搜索引擎阵列将数据包对应关键字和规则表进行匹配,最后查找的结果根据配置的规则优先级进行合并。
下面以一个具体实施例对本发明方法做进一步详细说明,该实施例中,网管配置的规则为多维,建立的树形数据结构为2-3树结构。下面分三部分进行说明:
第一部分:ACL规则表生成
步骤1、根据几何投影将多维规则分解成多个一维规则,其中每个规则除了ACL规则外,还有ACL规则在该维上的优先级,除此之外还有该维对应的QoS(Quality of Service,服务质量)和QoS优先级、限速标识和限速标识优先级等。
步骤2、将同一维规则区间映射到对应的数轴上,即将同一维的各规则对应的区间均映射到一个数轴上,获取各个区间的左端点及其对应的规则。
步骤3、将同一维规则的各个区间左端点按照大小排序。
步骤4、取每个端点的高M比特(假设每个端点为N比特的数据,那么0<M<N,优选取0<M<N/3)做hash(哈希)运算,得到hash结果hash_idx,将所有hash_idx相同的端点组成一棵2-3树,得到一个以上(即一个或多于一个)的2-3树,本发明不限于2-3树,还可以为二叉树和多叉树等其它任意的树形数据结构,并且该树和普通数据结构上的树不一样,关键字除了用于确定匹配的规则外还用于确定搜索路径,如图2所示,每个树节点上包括一比特用于指示是中间节点还是叶子节点,规则关键字1和规则关键字2;如果是中间节点(包括根节点)则包含左指针、中间指针和右指针;如果是叶子节点则包含规则关键字1对应的规则索引1,关键字2对应的规则索引2。
2-3树的生成方法如下:
1、将hash_idx相同的规则区间的左端点按照从小到大排序,然后放在一个数组中,记为a[n],其中n为起始端点个数减1。
2、2-3树的最底层为叶子层,记为第一层;叶子层的上一层为第二层,依次递增。那么第二层每个节点的左右端点数据从数组a[n]中提取,从左到右第i个节点的左端点为a[2+6×i],右端点为a[4+6×i],其中如果4+6×i>n,那么取最后一个端点a[n],如图3所示。
3、第三层每个节点的左右端点的数据从数组a[n]中提取,从左到右第j个节点的左端点为a[6+18×j],右端点为a[12+18×j],其中m为第二层总节点数。
4、第p层的每个节点的左右端点的数据从数组a[n]中提取,从左到右第k个节点的左端点为a[2×3(p-2)+2×3(p-1)×k],右端点为a[4×3(p-2)+2×3(p-1)×k],其中t为第p-1层总节点数。依次类推,直到只有一个节点为止。
二叉树和多叉树的生成方法和2-3树类似,都是从数组a[n]提取出相应的数据组成树形结构。
步骤5、软件将生成的树表写入到硬件对应的规则表存储区中,同时写入到对应的备份规则表存储区中,规则表在存储区中的数据结构如图4所示。
步骤6、软件将规则表对应的动作写入到规则动作表中,每个条目包括但不限于ACL规则(例如指示接收还是丢弃数据包)、ACL规则在该维上的优先级、该维对应的QoS和QoS优先级、限速标识和限速标识优先级。
第二部分:ACL规则的查找
步骤1、硬件根据寄存器的配置提取数据包的关键字段组合成待查找关键字,例如提取数据包中的输入端口、目的IP地址和IP优先级TOS组合成{输入端口,目的IP地址,IP优先级TOS},如果合成的待查找关键字位宽小于N位,可以在关键字的前面补零使其达到规则表规定的位宽。
步骤2、取待查找关键字的高M比特进行hash运算,得到一个索引hash_idx,用该索引找到对应的2-3树,并用该索引作为规则表的地址读取对应的条目。
步骤3、判断该条目是否是叶子节点,如果不是则执行步骤4,如果是叶子节点则执行步骤5。
步骤4、将待查找关键字和条目中关键字1进行比较,如果小于关键字1,则取出该条目的左指针,读取左指针对应的条目,执行步骤3的操作。如果大于或等于关键字1但是小于关键字2,则取出该条目的中间指针,读取该指针对应的条目,执行步骤3的操作。如果待查找关键字大于或等于关键字2,则取出该条目的右指针读取对应条目并执行步骤3的操作。
步骤5、如果待查找关键字和叶子节点的关键字1相等,则数据包待查找的关键字和关键字1对应的规则精确匹配上,否则比较叶子节点的关键字2是否相等,如果相等则和关键字2对应的规则精确匹配上,这两种情况都是完全匹配;如果不相等则查看待查找的关键字是否落在关键字1和关键字2之间,如果是则取该区间(即关键字1和关键字2之间)对应的规则作为数据包待查找关键字的最长前缀匹配的结果,如果不是则取大于关键字2的对应规则作为最长前缀匹配的结果。
步骤6、根据匹配结果得到规则动作表的索引,用该索引作为地址读取规则动作表条目得到对应的规则。
上述描述了数据包的一维规则的匹配过程,对于多维的匹配(例如输入端口,目的IP地址和IP优先级TOS组成待查找关键字;输入端口,源IP地址和IP优先级TOS组成带查找关键字;输入端口,VLAN ID和VLAN优先级COS组成待查找关键字;输入端口,隧道标识ID和隧道优先级EXP组成待查找关键字;输入端口,伪线标识ID和伪线优先级EXP组成待查找关键字),可以分解为多个一维规则的匹配,其匹配的过程和上述描述的匹配方法一致。最后将多个一维匹配结果进行归并能够得到数据包对应的多维匹配ACL结果。多个(例如K个)ACL规则表可以配置成同一种规则,此时设备支持的规则数是原来的多倍(例如K倍)。
第三部分:ACL规则的更新,包括修改、增加和删除
电信级交换设备需要能够连续不间断工作并且达到一个较小的丢包率,即使在更新ACL规则表的时候也不允许丢包,所以本发明方法引入了规则备份表。为每一种规则表提供一个数据结构完全相同的备份表。当需要进行规则更新,删除或增加的时候,先修改规则备份表,然后请求硬件查找逻辑切换到备份规则表中进行查找,硬件电路完成切换后通过中断上报CPU切换完成,这个时候CPU可以更新规则表。更新完成后将逻辑电路切换回原来的规则表。其具体方法包括:
步骤1、根据新的配置规则调整树表的数据结构。
步骤2、CPU开始根据新的树表配置备份规则表。
步骤3、完成备份规则表更新后CPU请求硬件切换到备份规则表上查找。
步骤4、硬件完成切换后上报中断给CPU,CPU接收到中断后开始更新规则表。
步骤5、CPU更新完规则表后请求硬件切切换到规则表上查找。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应注意的是,以上所述仅为本发明的具体实施例而已,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求记载的技术方案及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种访问控制列表实现装置,其特征在于,包括访问控制列表生成模块、存储器和访问控制列表查找模块:
其中,所述访问控制列表生成模块用于,将同一维的各规则区间映射到一个数轴上,分别得到各规则区间在该数轴上的端点,并以各个规则对应的区间的端点为叶子节点,建立起树形数据结构,所述端点指左端点和右端点之一;
所述存储器用于存储所述树形数据结构;
所述访问控制列表查找模块用于,提取待查找数据包的关键字,以之查找所述树形数据结构,获取所述待查找数据包对应的规则;
其中,所述以各个规则对应的区间的端点为叶子节点,建立起树形数据结构,是指分别对各个叶子节点的高M比特部分进行哈希运算,将运算结果相同的叶子节点组成一个树形数据结构,从而得到一个以上的树形数据结构;
所述提取待查找数据包的关键字,以之查找所述树形数据结构,是指对所述关键字的高M比特部分进行哈希运算,根据运算结果找到对应的树形数据结构进行查找;
0<M<N,N为规则的宽度。
2.根据权利要求1所述的访问控制列表实现装置,其特征在于,所述树形数据结构指2-3树结构。
3.根据权利要求1所述的访问控制列表实现装置,其特征在于,所述树形数据结构指二叉树结构。
4.根据权利要求1所述的访问控制列表实现装置,其特征在于,所述访问控制列表生成模块还用于,为所述树形数据结构建立备份,并将其保存于所述存储器中。
5.根据权利要求1所述的访问控制列表实现装置,其特征在于,0<M<N/3。
6.根据权利要求1至5中任一项所述的访问控制列表实现装置,其特征在于,还包括多维规则处理模块;
所述多维规则处理模块用于,如果所述待查找数据包的规则为多维,则首先将其规则分解为多个一维规则,对于其中任一个一维规则,交由所述访问控制列表生成模块和访问控制列表查找模块执行,然后将得到的所述待查找数据包对应的该一维规则进行规则合并,得到所述待查找数据包对应的多维规则;多维指二维及二维以上。
7.一种访问控制列表实现方法,其特征在于,包括如下步骤:
A、将同一维的各规则区间映射到一个数轴上,分别得到各规则区间在该数轴上的端点,并以各个规则对应的区间的端点为叶子节点,建立树形数据结构,并保存所述树形数据结构;
B、提取待查找数据包的关键字,以之查找所述树形数据结构,获取所述待查找数据包对应的规则;
所述端点指左端点和右端点之一;
其中,在步骤A中,分别对各个叶子节点的高M比特部分进行哈希运算,将运算结果相同的叶子节点组成一个树形数据结构,从而得到一个以上的树形数据结构;步骤B中,对所述关键字的高M比特部分进行哈希运算,根据运算结果找到对应的树形数据结构进行查找;0<M<N,N为规则的宽度。
8.根据权利要求7所述的访问控制列表实现方法,其特征在于,如果所述待查找数据包的规则为多维,则首先将其规则分解为多个一维规则,对于其中任一个一维规则,执行所述步骤A和步骤B,得到所述待查找数据包对应的该一维规则,然后进行规则合并,得到所述待查找数据包对应的多维规则;多维指二维及二维以上。
CN201010567890.6A 2010-12-01 2010-12-01 一种访问控制列表实现方法及装置 Active CN102487374B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010567890.6A CN102487374B (zh) 2010-12-01 2010-12-01 一种访问控制列表实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010567890.6A CN102487374B (zh) 2010-12-01 2010-12-01 一种访问控制列表实现方法及装置

Publications (2)

Publication Number Publication Date
CN102487374A CN102487374A (zh) 2012-06-06
CN102487374B true CN102487374B (zh) 2014-09-10

Family

ID=46152828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010567890.6A Active CN102487374B (zh) 2010-12-01 2010-12-01 一种访问控制列表实现方法及装置

Country Status (1)

Country Link
CN (1) CN102487374B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866502B (zh) 2014-02-25 2020-10-13 深圳市中兴微电子技术有限公司 数据匹配的方法及装置
CN104092678B (zh) * 2014-07-02 2018-12-25 新华三技术有限公司 一种访问控制列表的配置方法和装置
CN106487769B (zh) * 2015-09-01 2020-02-04 深圳市中兴微电子技术有限公司 一种访问控制列表acl的实现方法及装置
CN106131086B (zh) * 2016-08-31 2019-10-11 迈普通信技术股份有限公司 一种访问控制列表的匹配方法及装置
WO2019241926A1 (zh) * 2018-06-20 2019-12-26 华为技术有限公司 访问控制列表的管理方法及装置
CN110753133B (zh) * 2018-07-23 2022-03-29 华为技术有限公司 处理地址的方法和网络设备
WO2020107484A1 (zh) * 2018-11-30 2020-06-04 华为技术有限公司 一种acl的规则分类方法、查找方法和装置
CN109639694A (zh) * 2018-12-20 2019-04-16 国云科技股份有限公司 一种基于规则树检索的防火墙数据包匹配算法
CN110572322B (zh) * 2019-08-16 2021-07-13 苏州工业职业技术学院 一种通过修改查找关键字提高组播转发效率的方法
CN110896380B (zh) * 2019-11-28 2021-09-17 迈普通信技术股份有限公司 流表筛查方法、装置、电子设备及可读存储介质
CN112948103B (zh) * 2019-12-10 2023-10-27 腾讯科技(深圳)有限公司 资源配置方法、装置、存储介质及电子设备
CN112667526B (zh) * 2021-03-22 2021-06-29 芯启源(南京)半导体科技有限公司 一种访问控制列表电路实现方法及其电路
CN116633865B (zh) * 2023-07-25 2023-11-07 北京城建智控科技股份有限公司 网络流量控制方法、装置、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644085B2 (en) * 2003-11-26 2010-01-05 Agere Systems Inc. Directed graph approach for constructing a tree representation of an access control list
CN101158955A (zh) * 2007-11-15 2008-04-09 电子科技大学 一种中文词库的构造方法
CN101557312B (zh) * 2009-05-08 2012-07-04 中兴通讯股份有限公司 控制网络设备的访问控制列表的方法及装置

Also Published As

Publication number Publication date
CN102487374A (zh) 2012-06-06

Similar Documents

Publication Publication Date Title
CN102487374B (zh) 一种访问控制列表实现方法及装置
Gupta Algorithms for routing lookups and packet classification
US7630373B2 (en) Packet transfer apparatus
US7031320B2 (en) Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables
CN100433715C (zh) 给数据流提供不同的服务质量策略的方法
US20070171911A1 (en) Routing system and method for managing rule entry thereof
US10230639B1 (en) Enhanced prefix matching
CN103428093B (zh) 一种基于名字路由前缀存储、匹配及更新方法与装置
Warkhede et al. Multiway range trees: scalable IP lookup with fast updates
Wang et al. CoPTUA: Consistent policy table update algorithm for TCAM without locking
CN101035060A (zh) 一种三重内容可寻址存储器报文分类的统一处理方法
CN100488174C (zh) 流分类中基于硬件的差异化组织方法
Pao et al. A multi-pipeline architecture for high-speed packet classification
CN107276916A (zh) 基于协议无感知转发技术的交换机流表管理方法
Pao et al. Efficient packet classification using TCAMs
Li et al. A power-saving pre-classifier for TCAM-based IP lookup
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
Song et al. Scalable IP lookups using shape graphs
Kao et al. Dynamically updatable ternary segmented aging bloom filter for openflow-compliant low-power packet processing
Lim et al. Two-dimensional packet classification algorithm using a quad-tree
JP2006246488A (ja) ネットワーク・ルータ、アドレス処理方法及びコンピュータ・プログラム
CN109754021B (zh) 基于范围元组搜索的在线包分类方法
Chang et al. Dynamic segment trees for ranges and prefixes
CN104301227B (zh) 基于tcam的高速低功耗ip路由表查找方法
CN108494683A (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
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151123

Address after: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee after: ZTE Corp.

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corp.

TR01 Transfer of patent right

Effective date of registration: 20221130

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.

Patentee before: SANECHIPS TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right