CN100488173C - 对流分类算法进行自动选择的方法 - Google Patents

对流分类算法进行自动选择的方法 Download PDF

Info

Publication number
CN100488173C
CN100488173C CNB2006101453292A CN200610145329A CN100488173C CN 100488173 C CN100488173 C CN 100488173C CN B2006101453292 A CNB2006101453292 A CN B2006101453292A CN 200610145329 A CN200610145329 A CN 200610145329A CN 100488173 C CN100488173 C CN 100488173C
Authority
CN
China
Prior art keywords
acl
access control
algorithm
control list
characteristic value
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.)
Expired - Fee Related
Application number
CNB2006101453292A
Other languages
English (en)
Other versions
CN1964324A (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.)
ZTE Corp
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 CNB2006101453292A priority Critical patent/CN100488173C/zh
Publication of CN1964324A publication Critical patent/CN1964324A/zh
Application granted granted Critical
Publication of CN100488173C publication Critical patent/CN100488173C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种对流分类算法进行自动选择的方法。为解决现有技术中进行流分类的算法不能灵活应用的问题而发明。本发明方法包括以下步骤:用户在路由器上配置访问控制列表,并确定访问控制列表的实现算法;对于不是第一条规则的新增规则,判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内,如果判断结果为否,则根据该规则中新的匹配字段确定访问控制列表的算法后,将该规则按照算法和确定的先后顺序生成相应的表项;如果判断结果为是,则将该规则按照算法和确定的先后顺序生成相应的表项。本发明能够根据需要动态的选择流分类的算法生成新的访问控制列表表项,大大提高了ACL算法选择的灵活性。

Description

对流分类算法进行自动选择的方法
技术领域
本发明涉及数据通讯技术,特别涉及对流分类算法进行自动选择的方法。
背景技术
在普通的路由器中,进行流分类是一项重要的基本功能。流分类的设置可以通过ACL(访问控制列表)来完成。ACL为网络管理者提供更加灵活的管理方法。ACL大量应用在报文过滤、NAT(网络地址转换)、Qos(服务质量)、策略路由、uRPF(单播反向路径转发)等应用中。
一个ACL号对应若干条有优先级规则的集合,每条ACL规则描述对数据报文的头部中的几个域进行匹配的特征条件,以及相应的动作(PERMIT和DENY)来决定对报文的处理,常用的匹配域有:源IP地址、目的IP地址、源端口、目的端口、协议等。
在由软件实现的ACL匹配算法中,有多种实现算法,都有各自的优点和局限性。如基于TRIE(Trie结构是对关键码范围进行均分的结构,Trie结构主要基于两个原则:有一个固定的关键码集合和对于结点的分层标记。其内部结点仅作为占位符引导检索过程,数据记录只存储在叶结点中)算法流分类、基于递归流分类(RFC)、基于层次化空间分割(Hi-Cuts)算法、基于位向量(BV)算法等等。有些分类算法的分类速度随着分类规则集中规则数的增加而下降;有些算法需要配置很大的内存,系统成本较高;有些分类系统规则变化响应时间较长。在由网络处理器为主的路由器中,为保证系统性能,减少算法的复杂性。最常用的是基于TRIE算法流分类、基于递归流分类(RFC)算法。
基于TRIE表实现算法:
如图1所示,本算法利用TRIE的原理进行,将需要匹配的报文头部的多个域分为多个部分,分别建立多级索引表,根据匹配的域,逐级进行扩展。本算法的优点是算法简单,查找方便,空间可动态分配。对于匹配域较少或匹配域对应的BIT位数较少的应用极有优势,例如ACL标准表(只匹配源IP地址)、特殊应用(只匹配源端口或目的端口)的情况。缺点是当匹配域的个数或对应的BIT位数较多时,导致索引表的级数增多,空间快速膨胀。特别是当各级索引表的先后顺序确定后,如ACL规则中对报文头部的某一个或某几个域进行全匹配时,将引起所有有关的各级索引表全部进行扩展,对空间的需求无法进行有效的控制。
RFC算法:
应用较广泛、性能较好的是RFC(递归流分类)算法,RFC算法通过对ACL规则集进行递归分类,构造多个等价类及多级索引表,报文通过对索引表的逐级匹配,在最后一级索引表中得到所属等价类编号(EQID),以及该等价类中最先匹配的ACL规则的信息。
使用该方法,对于查找定位的过程,效率较高,但是在划分等价类时,存在效率低下的问题,必须将所有的规则全部集中在一起,而且使用CLASS BITMAP(CBM)(等价类位图)来进行等价类的划分。如果规则数目庞大,需要的BITMAP位数也相应加大,需要进行大量的逻辑“与”和比较工作,多次对内存进行读写,而且每增加/删除一条ACL规则,都需要重新进行计算,不适应实际应用中,要求快速生成等价类,使规则快速生效的需求。在ACL规则数目飞速增长时,需要的内存空间也飞速增长。
发明内容
为了克服现有技术的缺陷和不足,本发明的目的在于提供一种提高系统在访问控制列表上处理灵活性的对流分类算法进行自动选择的方法。
为了达到上述目的,本发明一种对流分类算法进行自动选择的方法,包括以下步骤:
(1)用户在路由器上配置访问控制列表,并确定访问控制列表的实现算法;
(2)判断新增规则是否是访问控制列表的第一条规则,如果判断结果为是,则进入步骤(3);如果判断结果为否,则进入步骤(4);
(3)根据该规则的匹配范围确定访问控制列表对应的特征值,并按特征码和表号确定实现的算法和各匹配字段的先后顺序生成相应的表项,步骤结束;
(4)判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内,如果判断结果为否,则进入步骤(5);如果判断结果为是,则进入步骤(6);
(5)根据该规则中新的匹配字段确定访问控制列表的算法,进入步骤(6);
(6)将该规则按照算法和确定的先后顺序生成相应的表项。
作为本发明的进一步改进,步骤(1)中所述配置访问控制列表,并确定访问控制列表的实现算法的方法为:
配置好访问控制列表表号中的规则,并将其配置到网络地址转换或服务质量的具体应用中来确定访问控制列表的实现算法。
作为本发明的进一步改进,步骤(1)中所述配置访问控制列表,并确定访问控制列表的实现算法的方法为:
将访问控制列表配置到网络地址转换或服务质量的具体应用中,并通过逐条配置表中的访问控制列表规则来选择实现算法。
作为本发明的进一步改进,步骤(4)中所述判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内的方法为:
将该规则的匹配字段和范围与访问控制列表的特征值进行比较,如果相符,则判定该规则的特征值包含在已有的访问控制列表特征值的范围内;如果不相符,则判定该规则的特征值没有包含在已有的访问控制列表特征值的范围内。
作为本发明的进一步改进,所述步骤(5)具体为:
(51)根据该规则中新出现的匹配字段判断访问控制列表算法是否需要修改,如果判断结果为是,则进入步骤(52);如果判断结果为否,则进入步骤(53);
(52)按照预先确定的策略选取新的生成算法,并将对应的特征值写入访问控制列表表号相应得结构中,进入步骤(6);
(53)对匹配顺序进行调整后,生成新的特征值,并将对应的特征值写入访问控制列表表号相应得结构中,进入步骤(6)。
采用上述的方法后,能够根据需要动态的选择流分类的算法生成新的访问控制列表表项,大大提高了ACL算法选择的灵活性,能够尽量避免单一算法的局限性,提高查找速度,减少空间浪费,简化了生成算法的复杂性。
附图说明
图1为TRIE表的实现结构图;
图2为本发明中动态确定流分类算法的流程图;
图3为本发明中路由器系统对数据包进行流分类的处理流程图。
具体实施方式
本发明中根据ACL应用的类型选择ACL生成算法的步骤如下:
确定ACL实现算法;
ACL相关的配置主要分为两种配置方式:第一种是先配置好ACL表号中的规则,然后将其配置到某一项具体应用中,如NAT(网络地址转换)或Qos(服务质量)中;另一种配置方式是先将ACL表号配置到具体应用中,然后逐条配置表中的ACL规则。这两种方式可以随时交替进行配置。
对于第一种配置方式,路由器流分类处理模块先保存表号中的规则,然后在确定将ACL表号配置到某一项具体应用时才确定ACL算法。然后将所有规则依次进行增加操作。
对于第二种配置方式,直接可以确定ACL算法,选择具体ACL算法的原则如下:
1)、对于ACL标准表,只匹配源IP地址32BIT,可选择Trie表的实现方式
2)、对于ACL在NAT上的应用,通常只匹配源IP地址,源端口和协议,可选择Tric表的实现方式,且其各级索引表的顺序为协议、源端口和源IP地址。
3)、对于ACL在Qos(服务质量)、策略路由上的应用,可匹配多条ACL表号,可将其进行聚合,按照一个特殊表号进行组织,提高查找效率。这些特殊表号的组织处理同普通的ACL表
4)、对于比较特殊的应用,可考虑单独实现。
5)、对于扩展表和其他的ACL应用,首先选择Trie表的实现方式,如Trie实现不适合,然后选择RFC和Hash或其他的实现方案。通常情况下,各项ACL应用中,规则的类型大致相同,或者大部分的规则类型相同,这就为将其按匹配域进行分类打下了基础。
确定ACL算法后,进行增加ACL规则的操作;
首先根据第一条规则,决定采用的算法:
如果第一条规则匹配的域较少,可将需要进行匹配的各个域,按照协议、源端口、目的端口、源IP地址、目的IP地址的顺序,每8个BIT一级的方式进行分级,每一级对应1个BIT。分别对应13个BIT。如果需要匹配的级数不超过6级,可采用TRIE表的实现方式,并以对应的13BIT作为ACL表号的特征值。
如果匹配的域较多,需要匹配的级数不超过6级,TRIE的实现无法满足时,则采用RFC算法;
当增加新规则时,根据对应的规则所匹配的特征,与ACL表号的特征值进行比较。
如果新规则的特征值包含在原有的特征值之内,直接采用原有的顺序进行处理。
如果新规则的特征值与ACL表号对应的特征值不相符,判断其对应的特征值中需要匹配的级数.如果其对应的级数与原有特征值对应的级数总数不超过6,则将原有的特征值与新特征值相“或”后作为新的特征值。并将原有的TRIE表重新组织,增加新出现的各级索引表。将新规则按新的索引表顺序插入到表中。
如果其对应的级数与原有特征值对应的级数总数超过6,直接将原有的TRIE组织的各级索引表删除,重新插入到RFC的实现中。
本发明当删除TRIE对应的规则时,先判断ACL表号下的所有空间大小,当大小超过阀值时,对所有规则的特征值重新计算,如果特征值有变化,可重新组织。否则直接删除,不重新进行组织;
本发明当删除RFC对应的规则时,先判断ACL表号下的所有空间大小,当大小超过阀值时,对所有规则的特征值重新计算,如果特征值中匹配的级数小于6时,可将其从RFC中删除(删除时要考虑其对应其他ACL表中规则的影响),重新按照TRIE的方式进行组织。否则直接删除,不重新进行组织;
本发明当进行ACL查询处理时,首先根据ACL表号及特征值,确定其查找方式
如果是按照TRIE的方式进行查找,根据特征值确定匹配的顺序,
如果是标准表,根据特征值确定的匹配顺序是32BIT源IP地址,从高到低每8位为一级:
如果是扩展表,按照特征值确定查找的顺序;然后按照查找的顺序每8位为一级,从高到低进行匹配;
如果是按照RFC算法进行查找,同样根据特征值确定一级表、二级表的组合情况,按照组合情况依次查找各级索引表;
如果是按照Hash算法进行查找,同样根据特征值确定需要进行匹配的键值以及键值的排列,按照组合情况确定Hash查找的键值,定位最终的条目。
下面结合附图对本发明的具体实施方式作进一步详细说明。
如图2所示,本发明动态确定流分类算法包括以下步骤:
(201)用户在路由器上配置ACL,并确定ACL的实现算法;
(202)判断新增规则是否是ACL的第一条规则,如果判断结果为是,则进入步骤(203):如果判断结果为否,则进入步骤(204);
(203)根据该规则的匹配范围确定访问控制列表对应的特征值,并按特征码和表号确定实现的算法和各匹配字段的先后顺序生成相应的表项,步骤结束;
(204)将该规则的匹配字段和范围与访问控制列表的特征值进行比较,如果不相符,则进入步骤(205);如果相符,则进入步骤(208);
(205)根据该规则中新出现的匹配字段判断访问控制列表算法是否需要修改,如果判断结果为是,则进入步骤(206);如果判断结果为否,则进入步骤(207);
(206)按照预先确定的策略选取新的生成算法,并将对应的特征值写入访问控制列表表号相应的结构中,进入步骤(208);
(207)对匹配顺序进行调整后,生成新的特征值,并将对应的特征值写入访问控制列表表号相应的结构中,进入步骤(208);
(208)将该规则按照算法和确定的先后顺序生成相应的表项。
如图3所示,为本发明路由器系统对数据包进行流分类的处理流程,包括以下步骤:
(301)根据业务类型确定ACL表号相关结构的地址;
(302)在相关地址中取得本ACL表号的实现算法和特征码,按特征码和表号确定实现的算法和各匹配字段的先后顺序;
(303)将本数据包头中的匹配字段按确定的顺序方法与ACL生成表进行查询和比较;
(304)按找到的规则动作确定相应的处理动作。
本发明能够根据需要动态的选择流分类的算法生成新的访问控制列表表项,大大提高了ACL算法选择的灵活性,能够尽量避免单一算法的局限性,提高查找速度,减少空间浪费,简化了生成算法的复杂性。

Claims (5)

1、一种对流分类算法进行自动选择的方法,其特征在于,包括以下步骤:
(1)用户在路由器上配置访问控制列表,并确定访问控制列表的实现算法;
(2)判断新增规则是否是访问控制列表的第一条规则,如果判断结果为是,则进入步骤(3);如果判断结果为否,则进入步骤(4);
(3)根据该规则的匹配范围确定访问控制列表对应的特征值,并按特征值和表号确定实现的算法和各匹配字段的先后顺序生成相应的表项,流程结束;
(4)判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内,如果判断结果为否,则进入步骤(5);如果判断结果为是,则进入步骤(6);
(5)根据该规则中新的匹配字段确定访问控制列表的算法,进入步骤(6);
(6)将该规则按照算法和确定的所述规则中各匹配字段的先后顺序生成相应的表项。
2、按照权利要求1所述的对流分类算法进行自动选择的方法,其特征在于,步骤(1)中所述配置访问控制列表,并确定访问控制列表的实现算法的方法为:
配置好访问控制列表表号中的规则,并将其配置到网络地址转换或服务质量的具体应用中来确定访问控制列表的实现算法。
3、按照权利要求1所述的对流分类算法进行自动选择的方法,其特征在于,步骤(1)中所述配置访问控制列表,并确定访问控制列表的实现算法的方法为:
将访问控制列表配置到网络地址转换或服务质量的具体应用中,并通过逐条配置表中的访问控制列表规则来选择实现算法。
4、按照权利要求1所述的对流分类算法进行自动选择的方法,其特征在于,步骤(4)中所述判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内的方法为:
将该规则的匹配字段和范围与访问控制列表的特征值进行比较,如果相符,则判定该规则的特征值包含在已有的访问控制列表特征值的范围内;如果不相符,则判定该规则的特征值没有包含在已有的访问控制列表特征值的范围内。
5、按照权利要求1所述的对流分类算法进行自动选择的方法,其特征在于,所述步骤(5)具体为:
(51)根据该规则中新出现的匹配字段判断访问控制列表算法是否需要修改,如果判断结果为是,则进入步骤(52);如果判断结果为否,则进入步骤(53);
(52)按照预先确定的策略选取新的生成算法,并将对应的特征值写入访问控制列表表号相应的结构中,进入步骤(6);
(53)对所述规则中各匹配字段的匹配顺序进行调整后,生成新的特征值,并将对应的特征值写入访问控制列表表号相应的结构中,进入步骤(6)。
CNB2006101453292A 2006-11-24 2006-11-24 对流分类算法进行自动选择的方法 Expired - Fee Related CN100488173C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101453292A CN100488173C (zh) 2006-11-24 2006-11-24 对流分类算法进行自动选择的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101453292A CN100488173C (zh) 2006-11-24 2006-11-24 对流分类算法进行自动选择的方法

Publications (2)

Publication Number Publication Date
CN1964324A CN1964324A (zh) 2007-05-16
CN100488173C true CN100488173C (zh) 2009-05-13

Family

ID=38083219

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101453292A Expired - Fee Related CN100488173C (zh) 2006-11-24 2006-11-24 对流分类算法进行自动选择的方法

Country Status (1)

Country Link
CN (1) CN100488173C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571531B (zh) * 2010-12-16 2016-08-24 上海博达数据通信有限公司 一种访问控制列表的分类匹配方法
CN103384222B (zh) * 2013-06-26 2016-09-14 汉柏科技有限公司 一种数据流匹配acl的方法
CN103986667B (zh) * 2014-05-07 2017-10-10 华为技术有限公司 选择数据包分类算法的方法和装置
CN106131086B (zh) * 2016-08-31 2019-10-11 迈普通信技术股份有限公司 一种访问控制列表的匹配方法及装置
CN111444159B (zh) * 2020-03-03 2024-05-03 中国平安人寿保险股份有限公司 精算数据处理方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
快速路由器的路由查找和流分类算法研究. 姚兴苗,李乐民,胡光岷.电子科技大学学报,第6期. 2004
快速路由器的路由查找和流分类算法研究. 姚兴苗,李乐民,胡光岷.电子科技大学学报,第6期. 2004 *

Also Published As

Publication number Publication date
CN1964324A (zh) 2007-05-16

Similar Documents

Publication Publication Date Title
Dong et al. Packet classifiers in ternary CAMs can be smaller
CN104580027B (zh) 一种OpenFlow报文转发方法及设备
US6775737B1 (en) Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
CN102281196B (zh) 决策树生成方法及设备、基于决策树报文分类方法及设备
Hu et al. Power conservative multi-attribute queries on data broadcast
CN101242362B (zh) 查找键值生成装置及方法
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
CN102754394B (zh) 一种哈希表存储、查找方法以及装置
CN104462328B (zh) 一种基于哈希表与双循环链表的混合数据管理方法及装置
CN100488173C (zh) 对流分类算法进行自动选择的方法
CN101369267B (zh) 一种基于内存库的模糊查询方法
CN101841546A (zh) 一种规则匹配方法、装置及系统
CN108681603B (zh) 数据库中快速搜索树形结构数据的方法、存储介质
US20080133494A1 (en) Method and apparatus for searching forwarding table
CN1897564B (zh) 基于递归流分类算法的策略路由匹配方法
CN102780574A (zh) 面向业务的局数据的配置方法、装置以及核查方法、装置
CN105335402A (zh) 基于静态Cache的搜索方法、索引数据生成方法以及装置
CN115310945A (zh) 一种多维度流程分组审批的方法和系统
CN105357334B (zh) 一种基于ipv6地址划分的ipv6地址存储及快速查询方法
CN104253754A (zh) 一种acl快速匹配的方法和设备
CN109754021B (zh) 基于范围元组搜索的在线包分类方法
CN103457855A (zh) 无类域间路由表建立、以及报文转发的方法和装置
CN107291875B (zh) 一种基于元数据图的元数据组织管理方法和系统
CN110362577A (zh) 一种数据插入方法、装置、设备和储存介质
CN100425039C (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090513