一种acl快速匹配的方法和设备的制作方法

文档序号:7813997阅读:560来源:国知局
一种acl快速匹配的方法和设备的制作方法
【专利摘要】本发明公开了一种ACL快速匹配的方法和设备,该方法包括:网络设备在对报文进行ACL匹配时,获得所述报文中的多个匹配选项;所述网络设备分别确定每个匹配选项对应的规则集合;所述网络设备判断规则集合与匹配规则的对应关系中,是否存在当前确定的多个规则集合所对应的匹配规则;当存在当前确定的多个规则集合所对应的匹配规则时,所述网络设备确定所述匹配规则为所述报文的匹配规则。本发明实施例中,提高报文的处理速度和匹配性能,并提高网络设备的处理效率。
【专利说明】-种ACL快速匹配的方法和设备

【技术领域】
[0001] 本发明涉及通信【技术领域】,尤其涉及一种ACL快速匹配的方法和设备。

【背景技术】
[0002] ACL (Access Control List,访问控制列表)是一条或者多条匹配规则的集合。当 ACL的匹配规则为{:源IP地址,目的IP地址}时,匹配规则用于对报文的源IP地址和目的 IP地址进行匹配。其中,源IP地址和目的IP地址均以IP主机地址/掩码位数形式表示。 例如,ACL 中包括如下 4 条匹配规则,R1 = {1. 0· 0· 0/8, 2. 2. 2. 2/32},R2 = {1. 1. 0· 0/16, 2. 2. 2. 0/24},R3 = {1. 1. 1. 0/24, 2. 2. 0· 0/16},R4 = {1. 1. 1. 1/32, 2. 0· 0· 0/8}。对于源 IP地址为1. 0. 0. 0/8,目的IP地址为2. 2. 2. 2/32的报文,将匹配到ACL中的匹配规则R1, 以此类推,其它匹配规则不再赘述。
[0003] 网络设备每次接收到报文时,均通过报文中携带的信息(如源IP地址和目的IP 地址)查询ACL中的匹配规则,以判断报文是否能够匹配到ACL中的匹配规则。当ACL中 的匹配规则很多时,网络设备通过报文中携带的信息查询ACL中的匹配规则时,网络设备 的处理效率很低,处理速度很慢。


【发明内容】

[0004] 本发明实施例提供一种访问控制列表ACL快速匹配的方法,该方法包括:网络设 备在对报文进行ACL匹配时,获得所述报文中的多个匹配选项;所述网络设备分别确定每 个匹配选项对应的规则集合;所述网络设备判断规则集合与匹配规则的对应关系中,是否 存在当前确定的多个规则集合所对应的匹配规则;当存在当前确定的多个规则集合所对应 的匹配规则时,则所述网络设备确定所述匹配规则为所述报文的匹配规则。
[0005] 所述网络设备判断对应关系中,是否存在当前确定的多个规则集合所对应的匹配 规则,之后还包括:当不存在当前确定的多个规则集合所对应的匹配规则时,则所述网络设 备对当前确定的多个规则集合取交集,得到匹配规则交集,从所述匹配规则交集中选择一 个匹配规则为所述报文的匹配规则,并在所述对应关系中存储当前确定的多个规则集合与 当前选择的匹配规则。
[0006] 所述方法进一步包括:
[0007] 所述网络设备构建用于存储规则集合与匹配规则的对应关系的伸展树;
[0008] 所述网络设备将规则集合与匹配规则的对应关系存储在所述伸展树上;
[0009] 所述网络设备利用所述伸展树上存储的规则集合与匹配规则的对应关系,判断所 述伸展树上是否存在当前确定的多个规则集合所对应的匹配规则。
[0010] 所述方法进一步包括:
[0011] 所述网络设备在将当前确定的多个规则集合与当前选择的匹配规则之间的对应 关系存储在伸展树后,所述网络设备通过单旋操作将当前确定的多个规则集合与当前选择 的匹配规则之间的对应关系移动到伸展树的根节点。
[0012] 当所述网络设备包括多个中央处理器CPU时,每个CPU对应一个伸展树,所述方法 进一步包括:
[0013] 所述网络设备利用报文的五元组信息对报文进行hash,以得到该报文对应的 CPU,并将该报文发送给该CPU,由该CPU对报文进行ACL匹配。
[0014] 本发明实施例提供一种网络设备,所述网络设备具体包括:
[0015] 获得模块,用于在对报文进行访问控制列表ACL匹配时,获得所述报文中的多个 匹配选项;确定模块,用于分别确定每个匹配选项对应的规则集合;判断模块,用于判断规 则集合与匹配规则的对应关系中,是否存在所述确定模块当前确定的多个规则集合所对应 的匹配规则;选择模块,用于当存在所述当前确定的多个规则集合所对应的匹配规则时,选 择所述多个规则集合所对应的匹配规则为所述报文的匹配规则。
[0016] 所述选择模块,还用于当不存在所述当前确定的多个规则集合所对应的匹配规则 时,对当前确定的多个规则集合取交集,得到匹配规则交集,从所述匹配规则交集中选择一 个匹配规则为所述报文的匹配规则;
[0017] 所述网络设备还包括:存储模块,用于在所述规则集合与匹配规则的对应关系中, 存储当前确定的多个规则集合与当前选择的匹配规则。
[0018] 所述存储模块,用于构建用于存储规则集合与匹配规则的对应关系的伸展树,并 将规则集合与匹配规则的对应关系存储在所述伸展树上;
[0019] 所述判断模块,具体用于利用所述伸展树上存储的规则集合与匹配规则的对应关 系,判断所述伸展树上是否存在当前确定的多个规则集合所对应的匹配规则。
[0020] 所述存储模块,进一步用于在将当前确定的多个规则集合与当前选择的匹配规则 之间的对应关系存储在伸展树后,通过单旋操作将当前确定的多个规则集合与当前选择的 匹配规则之间的对应关系移动到伸展树的根节点。
[0021] 当所述网络设备包括多个CPU时,每个CPU对应一个伸展树;所述获得模块,还用 于利用报文的五元组信息对报文进行hash,以得到所述报文对应的CPU,并将所述报文发 送给该CPU,由该CPU对所述报文进行ACL匹配。
[0022] 基于上述技术方案,本发明实施例中,通过记录规则集合与匹配规则的对应关系, 针对数据流的非首个报文,在对报文进行ACL匹配时,能够直接通过规则集合与匹配规则 的对应关系,得到报文的匹配规则,并利用报文的匹配规则对应的策略对报文进行处理,从 而不需要执行对规则集合取交集的过程,提高报文的处理速度和匹配性能,并提高网络设 备的处理效率。

【专利附图】

【附图说明】
[0023] 图1是本发明实施例提出的一种ACL快速匹配的方法流程示意图;
[0024] 图2-图4是本发明实施例中提出的伸展树的结构示意图;
[0025] 图5是本发明实施例提出的一种网络设备的结构示意图。

【具体实施方式】
[0026] 针对现有技术中存在的问题,本发明实施例提供一种ACL快速匹配的方法,该方 法用于快速匹配到ACL中的匹配规则。其中,ACL中的一条匹配规则通常包括多个匹配选 项,如匹配规则为{:源IP地址,目的IP地址}时,该匹配规则包括的匹配选项为源IP地址 和目的IP地址。当报文中携带的源IP地址与匹配规则中的源IP地址相匹配,且报文中携 带的目的IP地址与该匹配规则中的目的IP地址相匹配时,则说明该报文能够匹配到该匹 配规则。进一步的,ACL中的不同匹配规则之间是有优先级关系的,当报文中携带的信息匹 配到ACL中的多个匹配规则时,确定该报文匹配到优先级最高的匹配规则。
[0027] 如图1所示,该ACL快速匹配的方法具体可以包括以下步骤:
[0028] 步骤101,网络设备在对报文进行ACL匹配时,获得报文中的多个匹配选项。其中, 多个匹配选项具体包括但不限于以下中的任意几种:源IP地址、目的IP地址、源端口号、目 的端口号、协议类型等。为了方便描述,本发明实施例中,以ACL中的匹配规则为{:源IP地 址,目的IP地址}为例,基于此,则获得报文中的匹配选项具体包括源IP地址和目的IP地 址。
[0029] 具体的,网络设备在接收到报文时,如果ACL中的匹配规则为{:源IP地址,目的 IP地址},则需要通过ACL对该报文的多个匹配选项(如源IP地址和目的IP地址)进行 匹配,因此,网络设备需要提取该报文中携带的源IP地址和目的IP地址,假设源IP地址为 1. 1. 1. 1,目的 IP 地址为 2. 2. 0. 0。
[0030] 步骤102,网络设备分别确定每个匹配选项对应的规则集合。
[0031] 本发明实施例中,ACL是一条或者多条匹配规则的集合,假设ACL中包括如下 4 条匹配规则,R1 = {1. 0· 0· 0/8, 2. 2. 2. 2/32},R2 = {1. 1. 0· 0/16, 2. 2. 2. 0/24},R3 = {1. 1. 1. 0/24, 2. 2. 0· 0/16},R4 = {1. 1. 1. 1/32, 2. 0· 0· 0/8}。
[0032] 网络设备在从报文中提取源IP地址为1. 1. 1. 1 (匹配选项)之后,确定源IP地 址(1. 1. 1. 1)对应的规则集合S1。首先,网络设备查询报文中携带的源IP地址(1. 1. 1. 1) 与匹配规则R1中的源IP地址(1.0. 0.0/8)是否匹配;由于源IP地址(1. 1. 1. 1)是源IP 地址(1.0. 0.0/8)的子集,因此二者相匹配,规则集合S1中包含匹配规则R1。其次,网络 设备查询报文中携带的源IP地址(1. 1. 1. 1)与匹配规则R2中的源IP地址(1. 1. 0. 0/16) 是否匹配;由于源IP地址(1. 1. 1. 1)是源IP地址(1. 1. 0. 0/16)的子集,因此二者相匹 配,规则集合S1中包含匹配规则R2。以此类推,由于源IP地址(1. 1. 1. 1)是源IP地址 (1. 1. 1. 0/24)的子集,因此规则集合S1中包含匹配规则R3 ;由于源IP地址(1. 1. 1. 1)是 源IP地址(1. 1. 1. 1/32)的子集,因此,规则集合S1中包含匹配规则R4。因此,网络设备确 定规则集合S1为{Rl,R2, R3, R4}。
[0033] 网络设备在从报文中提取目的IP地址为2.2.0.0(匹配选项)之后,确定目的 IP地址(2. 2. 0. 0)对应的规则集合S2。首先,网络设备查询报文中携带的目的IP地址 (2. 2. 0.0)与匹配规则R1中的目的IP地址(2. 2. 2. 2/32)是否匹配;由于目的IP地址 (2. 2. 0. 0)不是目的IP地址(2. 2. 2. 2/32)的子集,因此二者不匹配,规则集合S2中不包含 匹配规则R1。以此类推,由于目的IP地址(2. 2. 0. 0)不是目的IP地址(2. 2. 2. 0/24)的子 集,因此,规则集合S2中不包含匹配规则R2。由于目的IP地址(2. 2. 0. 0)是目的IP地址 (2. 2. 0. 0/16)的子集,因此,规则集合S2中包含匹配规则R3。由于目的IP地址(2. 2. 0. 0) 是目的IP地址(2. 0. 0. 0/8)的子集,因此,规则集合S2中包含匹配规则R4。因此,网络设 备确定规则集合S2为{R3, R4}。
[0034] 步骤103,网络设备判断规则集合与匹配规则的对应关系中,是否存在当前确定的 多个规则集合(即步骤102中确定的每个匹配选项对应的规则集合)所对应的匹配规则; 如果否,则执行步骤104 ;如果是,则执行步骤105。其中,在规则集合与匹配规则的对应关 系中,匹配规则只为一个匹配规则。
[0035] 本发明实施例中,网络设备上会维护规则集合与匹配规则的对应关系,如网络设 备通过表1所示的对应关系表存储规则集合与匹配规则的对应关系。基于此规则集合与匹 配规则的对应关系,网络设备在确定每个匹配选项对应的规则集合之后,判断对应关系表 中是否有当前确定的多个规则集合所对应的匹配规则。其中,匹配规则是指ACL中的一条 匹配规则,如匹配规则R1、或匹配规则R2、或匹配规则R3、或匹配规则R4等。例如,如表1 所示的对应关系表,在当前确定的多个规则集合为31为出1,1?2,1?3,1?4},53为{1?2,1?4}时, 则说明规则集合与匹配规则的对应关系中,存在当前确定的多个规则集合(S1、S3)所对应 的匹配规则0?2)。在当前确定的多个规则集合为31为出1,1?2,1?3,1?4},52为{1?3,1?4}时, 则说明规则集合与匹配规则的对应关系中,不存在当前确定的多个规则集合(SI、S2)所对 应的匹配规则。
[0036] 表 1
[0037]

【权利要求】
1. 一种访问控制列表ACL快速匹配的方法,其特征在于,该方法包括: 网络设备在对报文进行ACL匹配时,获得所述报文中的多个匹配选项; 所述网络设备分别确定每个匹配选项对应的规则集合; 所述网络设备判断规则集合与匹配规则的对应关系中,是否存在当前确定的多个规则 集合所对应的匹配规则; 当存在当前确定的多个规则集合所对应的匹配规则时,则所述网络设备确定所述匹配 规则为所述报文的匹配规则。
2. 如权利要求1所述的方法,其特征在于,所述网络设备判断对应关系中,是否存在当 前确定的多个规则集合所对应的匹配规则,之后还包括: 当不存在当前确定的多个规则集合所对应的匹配规则时,则所述网络设备对当前确定 的多个规则集合取交集,得到匹配规则交集,从所述匹配规则交集中选择一个匹配规则为 所述报文的匹配规则,并在所述对应关系中存储当前确定的多个规则集合与当前选择的匹 配规则。
3. 如权利要求1或2所述的方法,其特征在于,所述方法进一步包括: 所述网络设备构建用于存储规则集合与匹配规则的对应关系的伸展树; 所述网络设备将规则集合与匹配规则的对应关系存储在所述伸展树上; 所述网络设备利用所述伸展树上存储的规则集合与匹配规则的对应关系,判断所述伸 展树上是否存在当前确定的多个规则集合所对应的匹配规则。
4. 如权利要求3所述的方法,其特征在于,所述方法进一步包括: 所述网络设备在将当前确定的多个规则集合与当前选择的匹配规则之间的对应关系 存储在伸展树后,所述网络设备通过单旋操作将当前确定的多个规则集合与当前选择的匹 配规则之间的对应关系移动到伸展树的根节点。
5. 如权利要求3所述的方法,其特征在于,当所述网络设备包括多个中央处理器CPU 时,每个CPU对应一个伸展树,所述方法进一步包括: 所述网络设备利用报文的五元组信息对报文进行hash,以得到该报文对应的CPU,并 将该报文发送给该CPU,由该CPU对报文进行ACL匹配。
6. -种网络设备,其特征在于,所述网络设备具体包括: 获得模块,用于在对报文进行访问控制列表ACL匹配时,获得所述报文中的多个匹配 选项; 确定模块,用于分别确定每个匹配选项对应的规则集合; 判断模块,用于判断规则集合与匹配规则的对应关系中,是否存在所述确定模块当前 确定的多个规则集合所对应的匹配规则; 选择模块,用于当存在所述当前确定的多个规则集合所对应的匹配规则时,选择所述 多个规则集合所对应的匹配规则为所述报文的匹配规则。
7. 如权利要求6所述的网络设备,其特征在于, 所述选择模块,还用于当不存在所述当前确定的多个规则集合所对应的匹配规则时, 对当前确定的多个规则集合取交集,得到匹配规则交集,从所述匹配规则交集中选择一个 匹配规则为所述报文的匹配规则; 所述网络设备还包括:存储模块,用于在所述规则集合与匹配规则的对应关系中,存储 当前确定的多个规则集合与当前选择的匹配规则。
8. 如权利要求7所述的网络设备,其特征在于, 所述存储模块,用于构建用于存储规则集合与匹配规则的对应关系的伸展树,并将规 则集合与匹配规则的对应关系存储在所述伸展树上; 所述判断模块,具体用于利用所述伸展树上存储的规则集合与匹配规则的对应关系, 判断所述伸展树上是否存在当前确定的多个规则集合所对应的匹配规则。
9. 如权利要求8所述的网络设备,其特征在于, 所述存储模块,进一步用于在将当前确定的多个规则集合与当前选择的匹配规则之间 的对应关系存储在伸展树后,通过单旋操作将当前确定的多个规则集合与当前选择的匹配 规则之间的对应关系移动到伸展树的根节点。
10. 如权利要求8所述的网络设备,其特征在于,当所述网络设备包括多个中央处理器 CPU时,每个CPU对应一个伸展树;所述获得模块,还用于利用报文的五元组信息对报文进 行hash,以得到所述报文对应的CPU,并将所述报文发送给该CPU,由该CPU对所述报文进行 ACL匹配。
【文档编号】H04L12/741GK104253754SQ201410460519
【公开日】2014年12月31日 申请日期:2014年9月11日 优先权日:2014年9月11日
【发明者】李玮 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1