CN1897564B - 基于递归流分类算法的策略路由匹配方法 - Google Patents
基于递归流分类算法的策略路由匹配方法 Download PDFInfo
- Publication number
- CN1897564B CN1897564B CN2005100827532A CN200510082753A CN1897564B CN 1897564 B CN1897564 B CN 1897564B CN 2005100827532 A CN2005100827532 A CN 2005100827532A CN 200510082753 A CN200510082753 A CN 200510082753A CN 1897564 B CN1897564 B CN 1897564B
- Authority
- CN
- China
- Prior art keywords
- acl
- rule
- access control
- list
- control list
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于递归流分类算法的策略路由匹配方法,在控制层面对路由映射表中的访问控制列表规则进行聚合,构造等价类索引表以及等价类的动作属性表,在转发层面,使用所述递归流分类算法查找过程,进行策略匹配,获取匹配信息。本发明通过整合路由映射表中的所有ACL规则,使得仅需进行一次RFC算法查找,就可以定位到匹配的序列信息,避免单独匹配路由映射表中的每个序列中的每个访问控制列表,大大加快了策略匹配速度,提高了报文进行策略路由转发的性能。
Description
技术领域
本发明涉及互联网路由技术,具体地说,涉及一种在实现策略路由功能时,加快报文进行策略匹配速度的方法。
背景技术
策略路由,是网络转发设备的一项重要功能。策略路由为网络管理者提供了较传统路由协议更强的对报文的转发控制能力。
传统上,路由器用从路由协议派生出来的路由表,根据目的地址进行报文的转发。而策略路由不但能够根据目的地址而且能够根据IP报文源地址或应用信息来选择转发路径。策略路由可以在一定程度上实现流量工程,使不同服务质量的流或者不同性质的数据(语音、FTP)走不同的路径,也可以通过修改报文的ToS(Type of Service,服务类型)字段,实现QoS(Qualityof Service,服务质量)。策略路由使网络管理者能根据它提供的机制,制定一个报文采取的具体路径。在当今高性能的网络中,这种选择的自由性是很必要的。
策略路由的设置可以通过使用路由映射表(路由映射表)来完成,一个路由映射表包含多个序列(sequence),每个序列都有一个编号,序列按编号自小到大顺序排列;每个序列又可以包含多个match(匹配)语句和set(设置)语句;match语句通过指定ACL(Access Control List,访问控制列表)号来定义该序列的匹配条件,一个ACL号对应若干条有优先级的规则的序列,规则按优先级自高到低排列,每条规则描述数据包头部的若干特征条件;set语句则指定了下一跳、出接口以及ToS值等信息,用以指明当满足该序列的匹配条件时,报文应该选择的转发路径及标记的ToS值等。
根据路由映射表对报文进行策略路由的规则如下:
报文按照路由映射表的序列顺序进行匹配,若报文匹配某个序列,则根据该序列的set动作对报文进行策略路由,否则报文继续匹配下一个序列。若报文不能匹配该路由映射表的所有序列,则不做策略路由,按普通的基于目的地址的路由转发。
所谓的报文匹配某个序列,是指报文匹配序列中的某个ACL编号中具有最高优先级的规则(所谓匹配是指报文符合该规则的描述的若干特征),且该规则的action(动作)属性为permit(允许)。需要说明的是,一个序列可以包含多个ACL号,这些ACL是并列的,并没有先后顺序,当报文不能匹配其中某个ACL时,或者报文匹配某个ACL,但匹配的规则的action属性为deny(禁止)时,可能会匹配另一个ACL,且匹配的规则的action属性为permit,则报文匹配该序列。当序列中不包含任何ACL时,也认为报文匹配该序列。
在由软件实现的ACL匹配算法中,应用较广泛,性能较好的是RFC(递归流分类)算法。RFC算法通过对ACL规则集进行递归分类,构造多个等价类及多级索引表;报文通过对索引表的逐级匹配,可以得到所属的等价类标识(EQID),并根据该EQID在等价类的action属性表中得到匹配的优先级最高的ACL规则的action属性。
在策略路由的报文匹配过程中使用RFC算法,可以采取如下方法:依次对每个序列中的每个ACL进行RFC算法匹配查找,当找到某一个匹配的ACL,且匹配的规则的action属性为permit后,就可以确定该报文满足该序列的匹配条件,进行下一步的set语句处理。
但是使用上述方法存在效率上的问题,即,最坏情况下需要对每个序列中的每个ACL都进行RFC算法查找,而每次RFC算法查找都要多次访问内存,效率低下。
发明内容
本发明所要解决的技术问题在于提供一种基于递归流分类算法的策略路由匹配方法,在实现策略路由时,可以加快报文进行策略匹配的速度,提升效率。
本发明提供一种基于递归流分类算法的策略路由匹配方法,包括如下步骤:
在控制层面对路由映射表中的访问控制列表规则进行聚合,、构造等价类索引表以及等价类的动作属性表;及
在转发层面,使用所述递归流分类算法查找过程,进行策略匹配,获取匹配信息。
本发明通过整合路由映射表中的所有ACL规则,使得仅需进行一次RFC算法查找,就可以定位到匹配的序列信息,避免单独匹配路由映射表中的每个序列中的每个访问控制列表,大大加快了策略匹配速度,提高了报文进行策略路由转发的性能。
附图说明
图1为本发明所述的基于递归流分类算法的策略路由匹配方法流程示意图;
图2为本发明所述的在控制层面进行预处理部分的流程示意图;
图3为本发明所述的对策略路由使用的路由映射表中的ACL规则进行整合的流程示意图;
图4为本发明所述的构造某个等价类标识对应的动作属性表项的流程示意图。
具体实施方式
如图1所示,为本发明所述的基于递归流分类算法的策略路由匹配方法流程示意图,首先在控制层面对路由映射表中的访问控制列表规则进行聚合,构造等价类索引表以及等价类的动作属性表(步骤101);然后在转发层面,使用所述递归流分类算法查找过程,进行策略匹配,获取匹配信息(步骤102)。
其中,对步骤101,控制层面的预处理部分,可以通过以下步骤完成,参见图2,首先合并路由映射表中所有单独的访问控制列表为一整体的规则列表(步骤201);然后使用所述递归流分类算法对所述整体规则列表进行递归分类,得到所有等价类标识及其对应的位图,并生成各级索引表(步骤202);根据所述等价类标识及其对应的位图,构造等价类的动作属性表(步骤203)。
通过步骤201,对路由映射表中的所有ACL规则进行整合,使得一个路由映射表中的所有ACL规则合并为一个大的规则列表,并可以在规则的排列和规则的内容中包含规则在该路由映射表中所处位置的信息。
通过步骤202,利用RFC算法对新的规则列表进行递归分类,得到所有等价类标识(EQID)及其对应的位图(Class Bitmap,简称CBM),并生成各级索引表。
通过步骤203,构造最后一级索引表,也就是等价类的action属性表,在每个等价类标识对应的CBM中选择合适的置1的比特(bit)位,将其对应的规则的action属性填入action属性表中。
如图3所示,为对策略路由使用的路由映射表中的ACL规则进行整合的方法流程图,首先生成一个空的ACL规则列表S(步骤301);依次遍历路由映射表中的序列(步骤302、311);再依次遍历序列中的ACL(步骤303、310);判断序列中ACL是否为空(步骤304)?如果某个序列中没有配置匹配ACL,则需要为该序列号增加一条permit any any的默认规则(步骤305),确保可以匹配到该序列;依次遍历ACL中的规则(步骤306、309);修改每个ACL规则的action属性(步骤307),使之不仅包含原来的permit/deny属性,而且包含该规则所属序列编号和ACL号的信息;将当前规则加入规则列表S中(步骤308);所有的遍历结束后,还可以在规则列表S的最后加入一条deny any any的规则,action属性设为特殊值,以匹配那些不满足上述ACL的报文(图中未示)。
根据上述过程,将一个路由映射表中所有ACL规则序列合并为一个大的规则列表。所处序列编号小的ACL规则位于规则列表S的前面,所处序列编号大的ACL规则位于规则列表S的后面,所处序列编号相同的ACL不分顺序,每个ACL中的规则顺序保持不变。
对于调用RFC算法对新的规则列表S进行递归分类,得到多个等价类标识及其对应的CBM,生成索引表,该过程可以参见中国专利:02136647.0,一种数据包递归流分类方法。
在构造等价类action属性表时,可以与传统的RFC算法有所不同,RFC算法在最后一级索引表中选择存放的是某等价类中最先匹配的ACL规则的信息。而在本方法中,为了遵循策略路由的规则,选择匹配规则时需要综合考虑规则的permit/deny属性以及其所属的序列信息。
因此,构造某个等价类标识对应的action属性表项的具体步骤,如图4所示,首先根据等价类标识获得该等价类对应的CBM(步骤401);然后设置CBM扫描的起始位CbmScanBit为最低位0,对应规则列表S中的第一条规则。设置上次匹配的序列号号和ACL号为无效值(步骤402);从CBM的扫描起始位开始向高位扫描,到CBM的最高位结束,寻找第一个置1的bit位(步骤403),即寻找第一个匹配的规则,(根据前述的构造方法,在规则列表S中最后一条规则是deny any any,必能得到置1的bit位),将CbmScanBit设置为当前bit位位置加1;判断置1的bit位是否为CBM的最后一位(步骤404);如果置1的bit位为CBM的最后一位,即对应第一步中最后加入的deny any any规则,则将该规则的aciton填入对应的action属性表项中(步骤405),结束本次构造;否则,根据找到的置1的bit位的位置可以得到列表S中对应的规则,从该规则的action属性中可以得到该规则所属的序列编号(SeqNo)和ACL编号(AclNo),以及该规则的permit/deny属性P(步骤406);判断P是否为permit(步骤407);如果该规则不为permit属性,而为deny属性,说明不能满足策略匹配,则将当前的序列号和ACL号记录为上次匹配的序列号(LastSeqNo)和上次匹配的ACL号(LastAclNo)(步骤408),转执行步骤403;如果该规则为permit属性,则判断该规则的序列编号和ACL编号是否与上次匹配的序列号和ACL号相同(步骤409);如果序列号相同且ACL号也相同,则说明当前匹配的规则与上次匹配的规则在同一个序列的同一个ACL号中,不是该ACL号匹配的第一个规则,不满足策略匹配,直接转步骤403执行;否则,如果序列号或ACL号有一个不同,则说明当前规则满足策略匹配,将该规则的action属性写入对应的action属性表项中(步骤405),结束本次构造。
这样,报文进行策略匹配只需要进行一次RFC算法查找,就可以从所属的等价类的action属性表中获得报文匹配到的序列号,从而可以进行相应的策略映射了。
另外,为加快控制层面的构造过程,可以在对路由映射表中的ACL规则进行整合的过程中,若某个ACL规则的action属性为deny(不包括最后加入的deny any any规则),则为其增加附加信息,在其中写入下一个ACL的起始规则的位置信息。这样,在进行CBM扫描时,若发现当前匹配规则为deny,则可以从其附加信息中取得下一次扫描的起始位置,从而加快了扫描过程。
Claims (8)
1.一种基于递归流分类算法的策略路由匹配方法,其特征在于包括如下步骤:
在控制层面对路由映射表中的访问控制列表规则进行聚合,构造等价类索引表以及等价类的动作属性表;具体包括:合并路由映射表中所有单独的访问控制列表为一整体的规则列表;使用所述递归流分类算法对所述整体规则列表进行递归分类,得到所有等价类标识及其对应的位图,并生成各级索引表;根据所述等价类标识及其对应的位图,构造等价类的动作属性表;
其中,合并路由映射表中所有单独的访问控制列表为一整体的规则列表具体包括:生成一个空的规则列表;依次遍历路由映射表中的序列;依次遍历序列中的访问控制列表;如果某个序列中没有配置匹配访问控制列表,则为该序列编号增加一条“permit any any”的默认规则;依次遍历访问控制列表中的规则;修改每个访问控制列表规则的动作属性,使之不仅包含原来的允许/禁止属性,而且包含该规则所属序列编号和访问控制列表编号的信息;将当前规则加入所述规则列表中;所有的遍历结束后,在所述规则列表的最后加入一条“deny any any”的规则,动作属性设为特殊值;在转发层面,使用所述递归流分类算法查找过程,进行策略匹配,获取匹配信息。
2.如权利要求1所述的方法,其特征在于,所述构造等价类的动作属性表步骤,是在每个所述等价类标识对应的位图中选择置1的比特位,将其对应的规则的动作属性填入动作属性表中。
3.如权利要求2所述的方法,其特征在于,所述的选择置1的比特位步骤,是根据路由映射表的配置与对应访问控制列表规则的动作属性,选取合适的置1比特位。
4.如权利要求1所述的方法,其特征在于,所述的规则聚合步骤,包括记录规则在所述路由映射表中所处位置的信息。
5.如权利要求4所述的方法,其特征在于,所述的记录步骤中,在规则的排列和规则的内容中包含规则在该路由映射表中所处位置的信息。
6.如权利要求1所述的方法,其特征在于,所述的将当前规则加入规则列表步骤,序列编号小的访问控制列表规则位于所述规则列表的前面,序列编号大的访问控制列表规则位于所述规则列表的后面,序列编号相同的访问控制列表不分顺序,每个访问控制列表中的规则顺序保持不变。
7.如权利要求1所述的方法,其特征在于,所述的构造等价类的动作属性表步骤,包括如下步骤:
1)根据等价类标识获得该等价类对应的位图;
2)设置位图扫描的起始位为最低位0,对应所述规则列表中的第一条规则,设置上次匹配的序列编号和访问控制列表编号为无效值;
3)从位图的扫描起始位开始向高位扫描,到位图的最高位结束,寻找第一个置1的比特位,将位图扫描的起始位设置为当前比特位位置加1,如果置1的比特位为位图的最后一位,则将该规则的动作属性填入对应的动作属性表项中,结束本次构造;
4)根据找到的置1的比特位的位置可以得到所述规则列表中对应的规则,从该规则的动作属性中可以得到该规则所属的序列编号和访问控制列表编号,以及该规则的允许/禁止属性;
5)如果该规则为禁止属性,则将当前的序列编号和访问控制列表编号记录为上次匹配的序列编号和访问控制列表编号,转步骤3);
6)如果该规则为允许属性,则判断该规则的序列编号和访问控制列表编号是否与上次匹配的序列编号和访问控制列表编号相同,如果序列编号相同且访问控制列表编号也相同,则转步骤3),否则,将该规则的动作属性写入对应的动作属性表项中,结束本次构造。
8.如权利要求7所述的方法,其特征在于,所述的对路由映射表中的访问控制列表规则进行合并的过程中,如果某个访问控制列表规则的动作属性为禁止,则为其增加附加信息,在其中写入下一个访问控制列表的起始规则的位置信息,在进行位图扫描时,如果发现当前匹配规则为禁止,则从其附加信息中取得下一次扫描的起始位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005100827532A CN1897564B (zh) | 2005-07-11 | 2005-07-11 | 基于递归流分类算法的策略路由匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005100827532A CN1897564B (zh) | 2005-07-11 | 2005-07-11 | 基于递归流分类算法的策略路由匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1897564A CN1897564A (zh) | 2007-01-17 |
CN1897564B true CN1897564B (zh) | 2010-04-14 |
Family
ID=37609945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100827532A Active CN1897564B (zh) | 2005-07-11 | 2005-07-11 | 基于递归流分类算法的策略路由匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1897564B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011000144A1 (zh) * | 2009-06-30 | 2011-01-06 | Shi Wen | 信息项目集合目录的聚合方法和系统 |
CN102457430B (zh) * | 2010-10-20 | 2015-04-08 | 正文科技股份有限公司 | 网络封包处理方法及路由设备 |
CN102035745B (zh) * | 2010-12-23 | 2012-08-15 | 北京星网锐捷网络技术有限公司 | 策略路由实现方法、装置及网络设备 |
CN103023817B (zh) * | 2012-11-23 | 2016-04-20 | 汉柏科技有限公司 | 一种基于acl的数据包处理方法 |
CN105744010A (zh) * | 2014-12-12 | 2016-07-06 | 中兴通讯股份有限公司 | 一种网络地址转换与访问控制列表规则聚合方法和装置 |
CN106209635B (zh) * | 2015-04-30 | 2019-06-11 | 深圳市中兴微电子技术有限公司 | 一种加权多路径wcmp的路由控制方法、装置和系统 |
CN108881216B (zh) * | 2018-06-14 | 2020-12-22 | 浙江远望信息股份有限公司 | 一种以同类同配置物联网设备合规数据包并集形成数据包通信白名单的方法 |
CN113839891B (zh) * | 2021-09-24 | 2023-02-21 | 新华三信息安全技术有限公司 | 一种流分类管理方法、装置、电子设备及存储介质 |
CN114401222B (zh) * | 2021-12-28 | 2024-03-26 | 网络通信与安全紫金山实验室 | 一种基于策略路由的数据转发方法、装置及存储介质 |
CN117319343A (zh) * | 2022-06-22 | 2023-12-29 | 中兴通讯股份有限公司 | 策略路由实现方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1414757A (zh) * | 2002-05-08 | 2003-04-30 | 华为技术有限公司 | 自动按序配置访问控制列表规则的方法及其应用 |
CN1477494A (zh) * | 2002-08-20 | 2004-02-25 | 深圳市中兴通讯股份有限公司上海第二 | 一种数据包递归流分类方法 |
CN1545285A (zh) * | 2003-11-11 | 2004-11-10 | 中兴通讯股份有限公司 | 访问控制列表和安全策略数据库的方法 |
-
2005
- 2005-07-11 CN CN2005100827532A patent/CN1897564B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1414757A (zh) * | 2002-05-08 | 2003-04-30 | 华为技术有限公司 | 自动按序配置访问控制列表规则的方法及其应用 |
CN1477494A (zh) * | 2002-08-20 | 2004-02-25 | 深圳市中兴通讯股份有限公司上海第二 | 一种数据包递归流分类方法 |
CN1545285A (zh) * | 2003-11-11 | 2004-11-10 | 中兴通讯股份有限公司 | 访问控制列表和安全策略数据库的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1897564A (zh) | 2007-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100920518B1 (ko) | 패킷 분류 장치 및 방법 | |
US8750144B1 (en) | System and method for reducing required memory updates | |
US7872993B2 (en) | Method and system for classifying data packets | |
US6341130B1 (en) | Packet classification method and apparatus employing two fields | |
US8090901B2 (en) | TCAM management approach that minimize movements | |
US6289013B1 (en) | Packet filter method and apparatus employing reduced memory | |
CN100385880C (zh) | 分组分类装置和使用字段级特里结构的方法 | |
CN108234318B (zh) | 报文转发隧道的选取方法及装置 | |
JP2001274837A (ja) | データ・パケットを分類する方法および手段 | |
CN1897564B (zh) | 基于递归流分类算法的策略路由匹配方法 | |
US20060045088A1 (en) | Method of using Patricia tree and longest prefix match for policy-based route look-up | |
US20030128243A1 (en) | Tree-structured diagram output method and program | |
CA2355980A1 (en) | Method and system for determining and graphically representing frame classification rule relationships | |
US10193804B2 (en) | Method of forwarding data packets, method of creating merged FIB key entry and method of creating a search key | |
US8316151B1 (en) | Maintaining spatial ordering in firewall filters | |
US8249067B2 (en) | Separation of fabric and packet processing source in a system | |
US7590112B2 (en) | Packet forwarding apparatus of high speed routing system and routing lookup method using the same | |
CN100488173C (zh) | 对流分类算法进行自动选择的方法 | |
US7299317B1 (en) | Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure | |
CN109754021B (zh) | 基于范围元组搜索的在线包分类方法 | |
US7392349B1 (en) | Table management within a policy-based routing system | |
CN115834340B (zh) | 一种规则存储方法、装置、电子设备及存储介质 | |
CN106656850A (zh) | 一种自动识别网络流量并做限速的芯片实现方法 | |
CN113992580B (zh) | 一种修改策略路由的方法及设备 | |
KR100662254B1 (ko) | 라우팅 시스템에서의 패킷 분류 장치 및 이를 위한 룰 구축 방법 |
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 |