一种访问控制列表的配置方法和装置制造方法

文档序号:7808077阅读:379来源:国知局
一种访问控制列表的配置方法和装置制造方法
【专利摘要】本发明提出一种访问控制列表的配置方法和装置,包括:将多个ACL中相同的ACL规则作为ACL共享段进行单独加载;在所述多个ACL中的所述ACL共享段的被引用位置分别预设用于跳转到所述ACL共享段的第一跳转规则;在所述ACL共享段的最末端预设用于跳转到本次ACL查找的父ACL的第二跳转规则;当业务在所述多个ACL中任一父ACL中进行ACL查找时,根据所述第一跳转规则跳转到所述ACL共享段中进行ACL查找,并在完成所述ACL共享段中的ACL查找后,根据所述第二跳转规则跳转到所述父ACL中,以继续完成针对所述父ACL的ACL查找;通过本发明能节约内存空间的占用,同时提高ACL的可阅读性。
【专利说明】一种访问控制列表的配置方法和装置

【技术领域】
[0001] 本发明涉及通信【技术领域】,尤其涉及一种ACL配置方法和装置。

【背景技术】
[0002] ACL(Access Control List,访问控制列表)可以应用在诸多领域,目前最基本的 应用就是利用ACL进行报文过滤;此外,ACL还可应用于诸如路由、安全、QoS(Quality of Service,服务质量)等业务中。
[0003] 所谓ACL,是指一条或多条规则的集合,用于识别报文流。所述规则是指描述报文 匹配条件的判断语句,所述匹配条件可以是报文的源地址、目的地址、端口号等,网络设备 依照这些规则识别出特定的报文,并根据预先设定的策略对该报文进行处理。
[0004] ACL中的每条规则都有自己的编号,该编号在该ACL中是唯一的。在创建规则时, 可以手工为其指定一个编号,如未手工指定编号,则由系统为其自动分配一个默认编号。当 一个ACL中包含多条规则时,报文会按照一定的顺序与这些规则进行匹配,一旦匹配上某 条规则便结束匹配过程。当前通用的匹配顺序多为按照配置顺序,即按照规则编号由小到 大进行匹配。
[0005] ACL实际上是对数据流的一种分类方法,通过ACL的定义,把数据流分为不同的类 型,对每种类型的数据流分别进行不同的业务处理。设备启动后,ACL规则会加载到内存中, 调用ACL的业务模块可使用对应的内存地址来访问该ACL。
[0006] 然而,由于设备启动后ACL是常驻内存的,并且随着ACL广泛的应用于安全、QoS、 路由模块等各种业务,设备上的ACL以及每个列表中的ACL规则数越来越多,因此ACL占用 内存空间也就越来越大。


【发明内容】

[0007] 有鉴于此,本发明提出一种ACL配置方法,应用在网络设备上,其特征在于,所述 方法包括:
[0008] 将多个ACL中相同的ACL规则作为ACL共享段进行单独加载;
[0009] 在所述多个ACL中的所述ACL共享段的被引用位置分别预设用于跳转到所述ACL 共享段的第一跳转规则;
[0010] 在所述ACL共享段的最末端预设用于跳转到本次ACL查找的父ACL的第二跳转规 则;
[0011] 当业务在所述多个ACL中任一父ACL中进行ACL查找时,根据所述第一跳转规则 跳转到所述ACL共享段中进行ACL查找,并在完成所述ACL共享段中的ACL查找后,根据所 述第二跳转规则跳转到所述父ACL中,以继续完成针对所述父ACL的ACL查找。
[0012] 优选地,所述ACL共享段中还包括可渗透规则;所述可渗透规则为所述ACL共享段 中的预留规则,在设备启动时需要加载到父ACL中的对应位置;
[0013] 所述方法还包括:
[0014] 当所述多个ACL中相同的ACL规则中包括隐式规则时,将所述隐式规则作为所述 可渗透规则加载到父ACL中的对应位置;
[0015] 其中,所述可渗透规则作为所述ACL共享段中的最后一条规则加载在所述第二跳 转规则之后。
[0016] 优选地,所述根据所述第一跳转规则跳转到所述ACL共享段中包括:
[0017] 调用所述ACL共享段起始位置的第一内存地址,根据所述第一内存地址跳转到所 述ACL共享段中;
[0018] 所述根据所述第二跳转规则跳转到所述父ACL中包括:
[0019] 调用所述被引用位置的下一条ACL规则起始位置的第二内存地址,根据所述第二 内存地址跳转到所述父ACL中。
[0020] 优选地,所述方法还包括:
[0021] 所述父ACL以及所述ACL共享段中的ACL规则均按照预设步长独立的进行编号。
[0022] 优选地,所述多个ACL中的所述ACL共享段的被引用位置可以不同。
[0023] 本发明还提出一种ACL配置装置,应用在网络设备上,其特征在于,所述装置包 括:
[0024] 加载单元,用于将多个ACL中相同的ACL规则作为ACL共享段进行单独加载;
[0025] 第一预设单元,用于在所述多个ACL中的所述ACL共享段的被引用位置分别预设 用于跳转到所述ACL共享段的第一跳转规则;
[0026] 第二预设单元,用于在所述ACL共享段的最末端预设用于跳转到本次ACL查找的 父ACL的第二跳转规则;
[0027] 查找单元,当业务在所述多个ACL中任一父ACL中进行ACL查找时,根据所述第一 跳转规则跳转到所述ACL共享段中进行ACL查找,并在完成所述ACL共享段中的ACL查找 后,根据所述第二跳转规则跳转到所述父ACL中,以继续完成针对所述父ACL的ACL查找。
[0028] 优选地,所述ACL共享段中还包括可渗透规则;所述可渗透规则为所述ACL共享段 中的预留规则,在设备启动时需要加载到父ACL中的对应位置;
[0029] 所述加载单元进一步用于在所述多个ACL中相同的ACL规则中包括隐式规则时, 将所述隐式规则作为所述可渗透规则加载到父ACL中的对应位置;其中,所述可渗透规则 作为所述ACL共享段中的最后一条规则加载在所述第二跳转规则之后。
[0030] 优选地,所述查找单元进一步用于在根据所述第一跳转规则跳转到所述ACL共享 段中时,调用所述ACL共享段起始位置的第一内存地址,根据所述第一内存地址跳转到所 述ACL共享段中;
[0031] 所述查找单元进一步用于在根据所述第二跳转规则跳转到所述父ACL中时,调用 所述被引用位置的下一条ACL规则起始位置的第二内存地址,根据所述第二内存地址跳转 到所述父ACL中。
[0032] 优选地,所述父ACL以及所述ACL共享段中的ACL规则均按照预设步长独立的进 行编号。
[0033] 优选地,所述多个ACL中的所述ACL共享段的被引用位置可以不同。
[0034] 本发明通过将多个ACL中相同的ACL规则作为ACL共享段在内存中单独加载,同 时在引用该ACL共享段的父ACL以及ACL共享段中分别预设跳转规则,通过所述跳转规则 完成针对父ACL的ACL顺序查找,从而使得引用所述ACL共享段的父ACL均不需要单独重 复加载所述ACL共享段,减少了 ACL对内存空间的占用;同时,本发明将ACL从一维的链表 结构扩展为嵌套的树型结构,大大简化了配置以及维护工作量,提高了 ACL的可阅读性。

【专利附图】

【附图说明】
[0035] 图1是本发明一种实施方式中一种ACL配置方法的流程图;
[0036] 图2是现有技术中ACL占用设备内存的不意图;
[0037] 图3是本发明一种实施方式中引入ACL共享段后父ACL中进行ACL查找的示意 图;
[0038] 图4是本发明一种实施方式中一种ACL配置装置的框图;
[0039] 图5是本发明一种实施方式中一种承载所述ACL配置装置的网络设备的硬件结构 图。

【具体实施方式】
[0040] 本发明通过将多个ACL中相同的ACL规则作为ACL共享段在内存中单独加载,同 时在引用该ACL共享段的父ACL以及ACL共享段中分别设置跳转规则,通过跳转规则的跳 转完成针对父ACL的ACL顺序查找,从而使得引用所述ACL共享段的父ACL均不需要单独 重复加载所述ACL共享段,减少了 ACL对内存空间的占用。
[0041] 下面结合附图并举实施例,对本发明进行详细描述。
[0042] 请参见图1,本发明提出一种ACL配置方法,应用在网络设备上,所述方法执行如 下步骤:
[0043] 步骤S101、将多个ACL中相同的ACL规则作为ACL共享段进行单独加载;
[0044] 步骤S102、在所述多个ACL中的所述ACL共享段的被引用位置分别预设用于跳转 到所述ACL共享段的第一跳转规则;
[0045] 步骤S103、在所述ACL共享段的最末端预设用于跳转到本次ACL查找的父ACL的 第二跳转规则;
[0046] 步骤S104、当业务在所述多个ACL中任一父ACL中进行ACL查找时,根据所述第一 跳转规则跳转到所述ACL共享段中进行ACL查找,并在完成所述ACL共享段中的ACL查找 后,根据所述第二跳转规则跳转到所述父ACL中,以继续完成针对所述父ACL的ACL查找。 [0047] 其中,所述网络设备可以是需要通过端口对进出报文进行控制的路由器或者交换 机;例如,所述网络设备,可以是具有防火墙功能的网关路由器,在实际应用中可以通过在 所述网关路由器上设置ACL规则,来实现对用户报文中的非法或者攻击报文进行过滤的功 能。
[0048] 在本实施例中,网络设备中预加载的多个ACL中,通常包括一些相同的ACL规则; 例如,具有防火墙业务的网关路由器的不同接口上,通常设置了用于进行防火墙业务的多 个不同的ACL,在这些ACL中,除了一些需要被不同接口调用的与具体业务相关的ACL规则 以外,其余的ACL规则通常是用于丢弃一些已知流量的通用ACL规则,这部分的ACL规则往 往相同。因此,可以将所述多个ACL中相同的ACL规则,作为一个ACL共享段进行单独加载。
[0049] 具体地,设备首先需要为所述多个ACL在内存中分别划分存储空间;其次,还需要 在内存中再单独划分一段固定内存用于存储所述ACL共享段;然后将所述相同的ACL规则 作为ACL共享段单独加载到预先分配的所述固定内存中;同时,将各ACL中互不相同的其他 ACL规则作为父ACL规则也加载到预先为所述多个ACL分别划分的内存存储空间中。
[0050] 此时,所述多个ACL已经通过划分ACL共享段被分别拆分成两段,分别为父ACL和 ACL共享段,并且所述父ACL以及所述ACL共享段被分别加载在内存中不同的存储空间中。
[0051] 在本实施例中,所述ACL共享段中还包括可渗透规则;所述可渗透规则通常为所 述ACL共享段中的预留规则,在设备启动时需要加载到父ACL中的对应位置。
[0052] 在具体应用中,所述多个ACL中通常还包括隐式规则,由于不同的ACL中的隐式规 则通常均相同,因此所述隐式规则会被作为所述可渗透规则加载到所述ACL共享段中。其 中,所谓隐式规则通常为ACL中最后一条或者最后几条包含诸如Permit tcp,Deny udp或 者Deny ip等语句的ACL规则,用于防止ACL的意外误配置。例如,所述隐式规则在具体应 用中通常包括诸如Deny ip等语句的隐式拒绝规则,所述隐式拒绝规则表示当收到的报文 与该列表中隐式拒绝规则之前的任何一条ACL规则均不匹配时,则丢弃该报文。因此,当设 备启动后,还需要将所述ACL共享段中的隐式规则作为可渗透规则分别拷贝并加载到所述 父ACL中。
[0053] 在本实施例中,由于ACL共享段以及所述多个ACL分别被加载在内存中不同的存 储空间中,因此为了使报文针对所述多个ACL中任一父ACL进行ACL查找时,保持所述父 ACL中ACL规则查找的顺序性和完整性,可以在所述父ACL以及所述ACL共享段中分别设置 特殊的跳转规则;
[0054] -方面,可以在父ACL中设置一个第一跳转规则;当设备针对任一父ACL进行ACL 查找时,如果查找到所述第一跳转规则,则自动调用所述第一跳转规则所指向的地址跳转 到ACL共享段中继续进行ACL查找;其中所述第一跳转规则指向的地址为所述ACL共享段 起始位置的内存地址;所述第一跳转规则在所述父ACL中的位置,为所述ACL共享段在所述 父ACL中的被引用位置,所述ACL共享段在所述父ACL中的被引用位置取决于实际的业务 需求;例如,如果业务需要在ACL查找时首先进行ACL共享段的匹配,那么可以将所述第一 跳转规则作为第一条ACL规则设置在所述父ACL中。其中,值得说明的是,所述ACL共享段 在所述多个ACL中的被引用位置可以不同;例如,当所述ACL共享段被第一以及第二ACL分 别引用时,所述被引用位置在第一 ACL中可以作为第一条ACL规则ruleO,在第二ACL中可 以作为第二条ACL规则rule5 (以规则编号的默认步长为5为例)。
[0055] 另一方面,还可以在所述ACL共享段中设置一个第二跳转规则,用于在完成了 ACL 共享段的ACL查找后跳转到所述父ACL中继续进行ACL查找;当在ACL共享段中进行ACL 查找时,如果查找到所述第二跳转规则,则立即调用所述第二跳转规则所指向的地址跳转 至IJ本次ACL查找的父ACL中继续进行ACL查找;其中,所述第二跳转规则指向的地址为所述 父ACL中所述ACL共享段的被引用位置的下一条ACL规则起始位置的内存地址。例如,假 设设备当前针对父ACL3001进行ACL查找,父ACL3001中在ruleO中引用了 ACL共享段,当 根据所述引用位置加载的所述第一跳转规则跳转到ACL共享段后,继续在ACL共享段中进 行ACL查找;如果在ACL共享段中查找到了所述第二跳转规则,则自动调用父ACL3001中 ruleO的下一条规则rule5起始位置的内存地址(仍以默认步长为5为例),跳转到本次 ACL查找的父ACL3001中继续进行ACL查找。
[0056] 在本实施例中,所述ACL共享段中的可渗透规则不参与ACL共享段中的ACL查找; 因此为了在ACL共享段中进行ACL查找时,使得所述可渗透规则不参与ACL查找,可以将所 述第二跳转规则作为倒数第二条ACL规则加载在所述ACL共享段中的隐式拒绝规则之前。 当所述第一跳转规则以及所述第二跳转规则均设置完毕后,此时针对任一父ACL进行ACL 查找时,可根据所述第一跳转规则跳转到所述ACL共享段中继续进行ACL查找,如果在所述 ACL共享段中仍然没有查找到匹配的ACL规则,则再次通过第二跳转规则跳转到所述父ACL 中继续进行ACL查找。
[0057] 在本实施例中,所述ACL共享段中ACL规则的命名可以不受父ACL中的限制,即将 不同的父ACL中相同的ACL规则加载到所述ACL共享段中时,可以根据ACL共享段中的默 认步长重新为ACL共享段中的ACL规则进行序号命名。例如,当父ACL中的rulel5, rule20 和rule25作为与其他ACL相同的ACL规则加载到ACL共享段中时,这三条ACL规则在ACL 共享段中的序号可以重新命名为rule5, rulelO和rulel5,即父ACL中ACL规则的命名与 ACL共享段中的命名可以互不影响。从而,在将ACL共享段中的可渗透规则拷贝到父ACL中 时,所述可渗透规则需要按照父ACL中的默认步长根据其在父ACL中所处位置重新进行命 名,因此在具体实现时所述可渗透规则在ACL共享段中以及父ACL中的编号可能不同。
[0058] 当然,在具体实现时,如果希望所述可渗透规则在所述ACL共享段中以及所述父 ACL中为统一的编号,可以在ACL的配置阶段就根据所述可渗透规则在所述ACL共享段和 所述父ACL中的位置,以及所述ACL共享段以及所述父ACL中所支持的最大ACL规则数量, 提前为所述可渗透规则规划一个比较大的编号。例如,如果所述ACL共享段和所述父ACL 中ACL规则编号的默认步长均为5,所支持最大ACL规则为10的话,那么所述ACL共享段 和所述父ACL中ACL规则编号的最大值可以达到45 ;那么可以将所述可渗透规则的编号在 ACL的配置阶段就统一命名为rUle50,从而保证了将所述可渗透规则从ACL共享段中拷贝 并加载到父ACL中时,即不会跟已有ACL规则的编号冲突,同时遵从了 ACL共享段以及所述 父ACL对ACL规则进行独立编号的原则。
[0059] 值得说明的是,在具体实现时,在将多个ACL中的相同的ACL规则加载到ACL共享 段中时,也可以将所述多个ACL中的可渗透规则保留在父ACL中,只将除了可渗透规则之外 的其他相同的ACL规则加载到ACL共享段中,其【具体实施方式】与上述实施方式相同,不再赘 述。
[0060] 以下通过一个具体的应用实例,来详细描述本发明;
[0061] 以下所示为2个用于防火墙业务的ACL3001和3002 ;
[0062]

【权利要求】
1. 一种访问控制列表ACL的配置方法,应用在网络设备上,其特征在于,所述方法包 括: 将多个访问控制列表ACL中相同的ACL规则作为ACL共享段进行单独加载; 在所述多个ACL中的所述ACL共享段的被引用位置分别预设用于跳转到所述ACL共享 段的第一跳转规则; 在所述ACL共享段的最末端预设用于跳转到本次ACL查找的父ACL的第二跳转规则; 当业务在所述多个ACL中任一父ACL中进行ACL查找时,根据所述第一跳转规则跳转 到所述ACL共享段中进行ACL查找,并在完成所述ACL共享段中的ACL查找后,根据所述第 二跳转规则跳转到所述父ACL中,以继续完成针对所述父ACL的ACL查找。
2. 如权利要求1所述的方法,其特征在于,所述ACL共享段中还包括可渗透规则;所述 可渗透规则为所述ACL共享段中的预留规则,在设备启动时需要加载到父ACL中的对应位 置; 所述方法还包括: 当所述多个ACL中相同的ACL规则中包括隐式规则时,将所述隐式规则作为所述可渗 透规则加载到父ACL中的对应位置; 其中,所述可渗透规则作为所述ACL共享段中的最后一条规则加载在所述第二跳转规 则之后。
3. 如权利要求1所述的方法,其特征在于, 所述根据所述第一跳转规则跳转到所述ACL共享段中包括: 调用所述ACL共享段起始位置的第一内存地址,根据所述第一内存地址跳转到所述 ACL共享段中; 所述根据所述第二跳转规则跳转到所述父ACL中包括: 调用所述被引用位置的下一条ACL规则起始位置的第二内存地址,根据所述第二内存 地址跳转到所述父ACL中。
4. 如权利要求1所述的方法,其特征在于,所述方法还包括: 所述父ACL以及所述ACL共享段中的ACL规则均按照预设步长独立的进行编号。
5. 如权利要求1所述的方法,其特征在于,所述多个ACL中的所述ACL共享段的被引用 位置可以不同。
6. -种访问控制列表ACL的配置装置,应用在网络设备上,其特征在于,所述装置包 括: 加载单元,用于将多个ACL中相同的ACL规则作为ACL共享段进行单独加载; 第一预设单元,用于在所述多个ACL中的所述ACL共享段的被引用位置分别预设用于 跳转到所述ACL共享段的第一跳转规则; 第二预设单元,用于在所述ACL共享段的最末端预设用于跳转到本次ACL查找的父ACL 的第二跳转规则; 查找单元,当业务在所述多个ACL中任一父ACL中进行ACL查找时,根据所述第一跳转 规则跳转到所述ACL共享段中进行ACL查找,并在完成所述ACL共享段中的ACL查找后,根 据所述第二跳转规则跳转到所述父ACL中,以继续完成针对所述父ACL的ACL查找。
7. 如权利要求6所述的装置,其特征在于,所述ACL共享段中还包括可渗透规则;所述 可渗透规则为所述ACL共享段中的预留规则,在设备启动时需要加载到父ACL中的对应位 置; 所述加载单元进一步用于在所述多个ACL中相同的ACL规则中包括隐式规则时,将所 述隐式规则作为所述可渗透规则加载到父ACL中的对应位置; 其中,所述可渗透规则作为所述ACL共享段中的最后一条规则加载在所述第二跳转规 则之后。
8. 如权利要求7所述的装置,其特征在于, 所述查找单元进一步用于在根据所述第一跳转规则跳转到所述ACL共享段中时,调用 所述ACL共享段起始位置的第一内存地址,根据所述第一内存地址跳转到所述ACL共享段 中; 所述查找单元进一步用于在根据所述第二跳转规则跳转到所述父ACL中时,调用所述 被引用位置的下一条ACL规则起始位置的第二内存地址,根据所述第二内存地址跳转到所 述父ACL中。
9. 如权利要求6所述的装置,其特征在于,所述父ACL以及所述ACL共享段中的ACL规 则均按照预设步长独立的进行编号。
10. 如权利要求6所述的装置,其特征在于,所述多个ACL中的所述ACL共享段的被引 用位置可以不同。
【文档编号】H04L29/06GK104092678SQ201410312937
【公开日】2014年10月8日 申请日期:2014年7月2日 优先权日:2014年7月2日
【发明者】朱皓 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1