本发明专利技术公开了一种ACL快速匹配的方法和设备,该方法包括:网络设备在对报文进行ACL匹配时,获得所述报文中的多个匹配选项;所述网络设备分别确定每个匹配选项对应的规则集合;所述网络设备判断规则集合与匹配规则的对应关系中,是否存在当前确定的多个规则集合所对应的匹配规则;当存在当前确定的多个规则集合所对应的匹配规则时,所述网络设备确定所述匹配规则为所述报文的匹配规则。本发明专利技术实施例中,提高报文的处理速度和匹配性能,并提高网络设备的处理效率。
【技术实现步骤摘要】
-种ACL快速匹配的方法和设备
本专利技术涉及通信
,尤其涉及一种ACL快速匹配的方法和设备。
技术介绍
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, 以此类推,其它匹配规则不再赘述。 网络设备每次接收到报文时,均通过报文中携带的信息(如源IP地址和目的IP 地址)查询ACL中的匹配规则,以判断报文是否能够匹配到ACL中的匹配规则。当ACL中 的匹配规则很多时,网络设备通过报文中携带的信息查询ACL中的匹配规则时,网络设备 的处理效率很低,处理速度很慢。
技术实现思路
本专利技术实施例提供一种访问控制列表ACL快速匹配的方法,该方法包括:网络设 备在对报文进行ACL匹配时,获得所述报文中的多个匹配选项;所述网络设备分别确定每 个匹配选项对应的规则集合;所述网络设备判断规则集合与匹配规则的对应关系中,是否 存在当前确定的多个规则集合所对应的匹配规则;当存在当前确定的多个规则集合所对应 的匹配规则时,则所述网络设备确定所述匹配规则为所述报文的匹配规则。 所述网络设备判断对应关系中,是否存在当前确定的多个规则集合所对应的匹配 规则,之后还包括:当不存在当前确定的多个规则集合所对应的匹配规则时,则所述网络设 备对当前确定的多个规则集合取交集,得到匹配规则交集,从所述匹配规则交集中选择一 个匹配规则为所述报文的匹配规则,并在所述对应关系中存储当前确定的多个规则集合与 当前选择的匹配规则。 所述方法进一步包括: 所述网络设备构建用于存储规则集合与匹配规则的对应关系的伸展树; 所述网络设备将规则集合与匹配规则的对应关系存储在所述伸展树上; 所述网络设备利用所述伸展树上存储的规则集合与匹配规则的对应关系,判断所 述伸展树上是否存在当前确定的多个规则集合所对应的匹配规则。 所述方法进一步包括: 所述网络设备在将当前确定的多个规则集合与当前选择的匹配规则之间的对应 关系存储在伸展树后,所述网络设备通过单旋操作将当前确定的多个规则集合与当前选择 的匹配规则之间的对应关系移动到伸展树的根节点。 当所述网络设备包括多个中央处理器CPU时,每个CPU对应一个伸展树,所述方法 进一步包括: 所述网络设备利用报文的五元组信息对报文进行hash,以得到该报文对应的 CPU,并将该报文发送给该CPU,由该CPU对报文进行ACL匹配。 本专利技术实施例提供一种网络设备,所述网络设备具体包括: 获得模块,用于在对报文进行访问控制列表ACL匹配时,获得所述报文中的多个 匹配选项;确定模块,用于分别确定每个匹配选项对应的规则集合;判断模块,用于判断规 则集合与匹配规则的对应关系中,是否存在所述确定模块当前确定的多个规则集合所对应 的匹配规则;选择模块,用于当存在所述当前确定的多个规则集合所对应的匹配规则时,选 择所述多个规则集合所对应的匹配规则为所述报文的匹配规则。 所述选择模块,还用于当不存在所述当前确定的多个规则集合所对应的匹配规则 时,对当前确定的多个规则集合取交集,得到匹配规则交集,从所述匹配规则交集中选择一 个匹配规则为所述报文的匹配规则; 所述网络设备还包括:存储模块,用于在所述规则集合与匹配规则的对应关系中, 存储当前确定的多个规则集合与当前选择的匹配规则。 所述存储模块,用于构建用于存储规则集合与匹配规则的对应关系的伸展树,并 将规则集合与匹配规则的对应关系存储在所述伸展树上; 所述判断模块,具体用于利用所述伸展树上存储的规则集合与匹配规则的对应关 系,判断所述伸展树上是否存在当前确定的多个规则集合所对应的匹配规则。 所述存储模块,进一步用于在将当前确定的多个规则集合与当前选择的匹配规则 之间的对应关系存储在伸展树后,通过单旋操作将当前确定的多个规则集合与当前选择的 匹配规则之间的对应关系移动到伸展树的根节点。 当所述网络设备包括多个CPU时,每个CPU对应一个伸展树;所述获得模块,还用 于利用报文的五元组信息对报文进行hash,以得到所述报文对应的CPU,并将所述报文发 送给该CPU,由该CPU对所述报文进行ACL匹配。 基于上述技术方案,本专利技术实施例中,通过记录规则集合与匹配规则的对应关系, 针对数据流的非首个报文,在对报文进行ACL匹配时,能够直接通过规则集合与匹配规则 的对应关系,得到报文的匹配规则,并利用报文的匹配规则对应的策略对报文进行处理,从 而不需要执行对规则集合取交集的过程,提高报文的处理速度和匹配性能,并提高网络设 备的处理效率。 【附图说明】 图1是本专利技术实施例提出的一种ACL快速匹配的方法流程示意图; 图2-图4是本专利技术实施例中提出的伸展树的结构示意图; 图5是本专利技术实施例提出的一种网络设备的结构示意图。 【具体实施方式】 针对现有技术中存在的问题,本专利技术实施例提供一种ACL快速匹配的方法,该方 法用于快速匹配到ACL中的匹配规则。其中,ACL中的一条匹配规则通常包括多个匹配选 项,如匹配规则为{:源IP地址,目的IP地址}时,该匹配规则包括的匹配选项为源IP地址 和目的IP地址。当报文中携带的源IP地址与匹配规则中的源IP地址相匹配,且报文中携 带的目的IP地址与该匹配规则中的目的IP地址相匹配时,则说明该报文能够匹配到该匹 配规则。进一步的,ACL中的不同匹配规则之间是有优先级关系的,当报文中携带的信息匹 配到ACL中的多个匹配规则时,确定该报文匹配到优先级最高的匹配规则。 如图1所示,该ACL快速匹配的方法具体可以包括以下步骤: 步骤101,网络设备在对报文进行ACL匹配时,获得报文中的多个匹配选项。其中, 多个匹配选项具体包括但不限于以下中的任意几种:源IP地址、目的IP地址、源端口号、目 的端口号、协议类型等。为了方便描述,本专利技术实施例中,以ACL中的匹配规则为{:源IP地 址,目的IP地址}为例,基于此,则获得报文中的匹配选项具体包括源IP地址和目的IP地 址。 具体的,网络设备在接收到报文时,如果ACL中的匹配规则为{:源IP地址,目的 IP地址},则需要通过ACL对该报文的多个匹配选项(如源IP地址和目的IP地址)进行 匹配,因此,网络设备需要提取该报文中携带的源IP地址和目的IP地址,假设源IP地址为 1. 1. 1. 1,目的 IP 地址为 2. 2. 0. 0。本文档来自技高网...
【技术保护点】
一种访问控制列表ACL快速匹配的方法,其特征在于,该方法包括:网络设备在对报文进行ACL匹配时,获得所述报文中的多个匹配选项;所述网络设备分别确定每个匹配选项对应的规则集合;所述网络设备判断规则集合与匹配规则的对应关系中,是否存在当前确定的多个规则集合所对应的匹配规则;当存在当前确定的多个规则集合所对应的匹配规则时,则所述网络设备确定所述匹配规则为所述报文的匹配规则。
【技术特征摘要】
1. 一种访问控制列表ACL快速匹配的方法,其特征在于,该方法包括: 网络设备在对报文进行ACL匹配时,获得所述报文中的多个匹配选项; 所述网络设备分别确定每个匹配选项对应的规则集合; 所述网络设备判断规则集合与匹配规则的对应关系中,是否存在当前确定的多个规则 集合所对应的匹配规则; 当存在当前确定的多个规则集合所对应的匹配规则时,则所述网络设备确定所述匹配 规则为所述报文的匹配规则。2. 如权利要求1所述的方法,其特征在于,所述网络设备判断对应关系中,是否存在当 前确定的多个规则集合所对应的匹配规则,之后还包括: 当不存在当前确定的多个规则集合所对应的匹配规则时,则所述网络设备对当前确定 的多个规则集合取交集,得到匹配规则交集,从所述匹配规则交集中选择一个匹配规则为 所述报文的匹配规则,并在所述对应关系中存储当前确定的多个规则集合与当前选择的匹 配规则。3. 如权利要求1或2所述的方法,其特征在于,所述方法进一步包括: 所述网络设备构建用于存储规则集合与匹配规则的对应关系的伸展树; 所述网络设备将规则集合与匹配规则的对应关系存储在所述伸展树上; 所述网络设备利用所述伸展树上存储的规则集合与匹配规则的对应关系,判断所述伸 展树上是否存在当前确定的多个规则集合所对应的匹配规则。4. 如权利要求3所述的方法,其特征在于,所述方法进一步包括: 所述网络设备在将当前确定的多个规则集合与当前选择的匹配规则之间的对应关系 存储在伸展树后,所述网络设备通过单旋操作将当前确定的多个规则集合与当前选择的匹 配规则之间的对应关系移动到伸展树的根节点。5. 如权利要求3所述的方法,其特征在于,当所述网络设备包括多个中央处理器CPU 时,每个CPU对应一个伸展树,所述方法进一步包括: 所述网络设备利用报文的五元组信息对报文进行hash,以得到该报文对应的CPU,并 将该报文发送给该CPU,由该CPU对报文进行ACL匹配...
【专利技术属性】
技术研发人员:李玮,
申请(专利权)人:杭州华三通信技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。