一种访问控制列表ACL的检测方法及网络设备技术

技术编号:27806802 阅读:20 留言:0更新日期:2021-03-30 09:22
一种访问控制列表ACL的检测方法及网络设备,应用于网络设备,该方法包括:根据第一ACL中包括的至少一个参数信息,生成第一ACL对应的第一二元决策图BDD,所述第一BDD是针对所述第一ACL中包括的至少一个参数信息分别构造的子BDD生成的;根据第二ACL中包括的至少一个参数信息,生成所述第二ACL对应的第二BDD,所述第二BDD是针对所述第二ACL中包括的至少一个参数信息分别构造的子BDD生成的;基于所述第一BDD和所述第二BDD,对所述第一ACL和所述第二ACL进行检测。本申请提供的ACL检测方法可快速的检测出不同ACL之间的关系,提高了ACL的检测效率。测效率。测效率。

【技术实现步骤摘要】
一种访问控制列表ACL的检测方法及网络设备


[0001]本申请涉及通信
,尤其涉及一种访问控制列表ACL的检测方法及网络设备。

技术介绍

[0002]随着网络规模的扩大和流量的增加,对网络安全的控制和对带宽的分配成为网络管理的重要内容。通过对数据包进行过滤,可以有效防止非法用户对网络的访问,同时也可以控制流量,节约网络资源。
[0003]目前,访问控制列表(acces control list,ACL)中通常包括用于控制网络设备(例如路由器、交换机等)对数据包进行分类处理的一系列ACL规则,这样网络设备就可以根据ACL列表中包括的一系列ACL规则对接收到的数据包执行相应的过滤、分类处理以及转发处理,从而达到控制流量、节约网络资源的目的。
[0004]而一个网络设备中可能存储有多个不同的ACL,不同的ACL中可能会存在多条ACL包括的信息之间存在冗余或冲突的情况。目前,针对ACL之间冗余或冲突的检测方法通常为对不同条的ACL中包括的字段和动作逐条逐字段的进行比较,例如,分别比较ACL中包括的源地址、目的地址、源端口、目的端口、动作等是否相同或相反,从而确定ACL之间是否存在冗余或者冲突,显然这种检测方法的检测效率比较低。

技术实现思路

[0005]本申请提供一种访问控制列表ACL的检测方法及网络设备,用以解决现有技术中ACL检测效率比较低的问题。
[0006]第一方面,提供一种访问控制列表ACL的检测方法,该方法应用于网络设备,所述方法包括:根据第一ACL中包括的至少一个参数信息,生成所述第一ACL对应的第一二元决策图BDD,所述第一BDD是针对所述第一ACL中包括的至少一个参数信息分别构造的子BDD生成的;根据第二ACL中包括的至少一个参数信息,生成所述第二ACL对应的第二BDD,所述第二BDD是针对所述第二ACL中包括的至少一个参数信息分别构造的子BDD生成的;基于所述第一BDD和所述第二BDD,对所述第一ACL和所述第二ACL进行检测。通过上述技术方案,可以快速的对不同ACL之间的关系进行检测,提高ACL的检测效率。
[0007]在一种可能的设计中,所述参数信息包括如下信息中的至少一项:源地址、目的地址、源端口号、目的端口号、协议类型、动作信息。通过对上述参数信息中的至少一项分别构造子BDD,可得到每条ACL对应的BDD数据结构,这样能够根据不同的BDD数据结构确定不同ACL之间的关系。
[0008]在一种可能的设计中,所述第一BDD是针对所述第一ACL中包括的至少一个参数信息分别构造的子BDD生成的,包括:将第一ACL中包括的至少一个参数信息分别转化为二进制信息;根据每个参数信息对应的二进制信息,分别构造每个参数信息对应的子BDD;对每个参数信息对应的子BDD分别进行压缩处理;对每个参数信息分别对应的压缩处理后的子
BDD执行与操作,得到所述第一BDD。
[0009]在一种可能的设计中,所述第二BDD是针对所述第二ACL中包括的至少一个参数信息分别构造的子BDD生成的,包括:将第二ACL中包括的至少一个参数信息分别转化为二进制信息;根据每个参数信息对应的二进制信息,分别构造每个参数信息对应的子BDD;对每个参数信息对应的子BDD分别进行压缩处理;对每个参数信息分别对应的压缩处理后的子BDD执行与操作,得到所述第二BDD。
[0010]在上述技术方案中,可以对至少一个参数信息对应的子BDD进行压缩处理,从而得到每一个参数信息对应的简化的子BDD,然后对简化的子BDD进行与操作,可以方便确定每条ACL对应的BDD数据结构,进而快速的对不同的ACL进行检测,得到检测结果。
[0011]一种可能的设计中,基于所述第一BDD和所述第二BDD,对所述第一ACL和所述第二ACL进行检测,包括:当所述第一BDD与所述第二BDD之间满足第一子条件和第二子条件时,确定所述第一ACL与所述第二ACL之间完全冗余;或者当所述第一BDD与所述第二BDD之间满足第一子条件、且不满足第二子条件时,确定所述第一ACL与所述第二ACL之间部分冗余。其中,所述第一子条件为:对所述第一BDD与所述第二BDD执行与操作得到的第三BDD中存在叶子节点为1的路径;所述第二子条件为:对所述第一BDD取反后得到的第四BDD与所述第二BDD之间执行与操作得到的第五BDD中存在叶子节点为0的路径。
[0012]在本申请的方案中,ACL的冗余检测包括部分冗余和完全冗余,通过BDD数据结构之间的与操作,可以直接通过与操作之后的BDD数据结构确定出不同ACL之间的冗余关系。
[0013]在一种可能的设计中,基于所述第一BDD和所述第二BDD,对所述第一ACL和所述第二ACL进行检测,包括:当所述第一BDD与所述第二BDD之间满足第三子条件和第四子条件时,确定所述第一ACL与所述第二ACL之间完全冲突;或者当所述第一BDD与所述第二BDD之间满足第三子条件、且不满足第四子条件时,确定所述第一ACL与所述第二ACL之间部分冲突。其中,所述第三子条件为:对所述第一BDD取反后得到的第四BDD与所述第二BDD之间执行与操作得到的第五BDD中存在叶子节点为1的路径;所述第四子条件为:对所述第一BDD与所述第二BDD执行与操作得到的第三BDD中存在叶子节点为0的路径。
[0014]在本申请的方案中,ACL的冲突检测可包括部分冲突和完全冲突,通过BDD数据结构之间的与操作可直接确定出不同ACL之间的冲突关系,这样能够提高ACL的检测效率。
[0015]第二方面,提供一种装置,该装置可以为网络设备或者为网络设备中的处理芯片,该装置具有实现第一方面或第一方面任一种可能实现方式中的ACL检测方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。
[0016]在一种可能的设计中,所述装置包括处理单元和检测单元,这些单元可以执行上述第一方面或第一方面任一种可能实现方式中的相应功能,具体参见方法示例中的详细描述。
[0017]在另一种可能的设计中,所述装置包括通信接口、处理器和存储器,所述通信接口用于接收和发送数据,所述处理器被配置为支持所述装置执行上述第一方面或第一方面任一种可能实现方式中相应的功能。所述存储器与所述处理器耦合,其保存所述装置必要的程序指令。
[0018]第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指
令,当其在计算机上运行时,使得计算机执行上述第一方面及各实施方式中的方法。
[0019]第四方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面及各实施方式中的方法。
[0020]第五方面,提供一种芯片,所述芯片中的逻辑用于执行上述第一方面及各实施方式中的方法。
附图说明
[0021]图1为本申请实施例提供的一种BDD数据结构的示意图;
[0022]图2为本申请实施例提供的一种AC本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种访问控制列表ACL的检测方法,应用于网络设备,其特征在于,包括:根据第一ACL中包括的至少一个参数信息,生成所述第一ACL对应的第一二元决策图BDD,所述第一BDD是针对所述第一ACL中包括的至少一个参数信息分别构造的子BDD生成的;根据第二ACL中包括的至少一个参数信息,生成所述第二ACL对应的第二BDD,所述第二BDD是针对所述第二ACL中包括的至少一个参数信息分别构造的子BDD生成的;基于所述第一BDD和所述第二BDD,对所述第一ACL和所述第二ACL进行检测。2.如权利要求1所述的方法,其特征在于,所述参数信息包括如下信息中的至少一项:源地址、目的地址、源端口号、目的端口号、协议类型、动作信息。3.如权利要求1或2所述的方法,其特征在于,所述第一BDD是针对所述第一ACL中包括的至少一个参数信息分别构造的子BDD生成的,包括:将第一ACL中包括的至少一个参数信息分别转化为二进制信息;根据每个参数信息对应的二进制信息,分别构造每个参数信息对应的子BDD;对每个参数信息对应的子BDD分别进行压缩处理;对每个参数信息分别对应的压缩处理后的子BDD执行与操作,得到所述第一BDD。4.如权利要求1或2所述的方法,其特征在于,所述第二BDD是针对所述第二ACL中包括的至少一个参数信息分别构造的子BDD生成的,包括:将第二ACL中包括的至少一个参数信息分别转化为二进制信息;根据每个参数信息对应的二进制信息,分别构造每个参数信息对应的子BDD;对每个参数信息对应的子BDD分别进行压缩处理;对每个参数信息分别对应的压缩处理后的子BDD执行与操作,得到所述第二BDD。5.如权利要求1~4任一所述的方法,其特征在于,基于所述第一BDD和所述第二BDD,对所述第一ACL和所述第二ACL进行检测,包括:当所述第一BDD与所述第二BDD之间满足第一子条件和第二子条件时,确定所述第一ACL与所述第二ACL之间完全冗余;或者当所述第一BDD与所述第二BDD之间满足第一子条件、且不满足第二子条件时,确定所述第一ACL与所述第二ACL之间部分冗余;其中,所述第一子条件为:对所述第一BDD与所述第二BDD执行与操作得到的第三BDD中存在叶子节点为1的路径;所述第二子条件为:对所述第一BDD取反后得到的第四BDD与所述第二BDD之间执行与操作得到的第五BDD中存在叶子节点为0的路径。6.如权利要求1~4任一所述的方法,其特征在于,基于所述第一BDD和所述第二BDD,对所述第一ACL和所述第二ACL进行检测,包括:当所述第一BDD与所述第二BDD之间满足第三子条件和第四子条件时,确定所述第一ACL与所述第二ACL之间完全冲突;或者当所述第一BDD与所述第二BDD之间满足第三子条件、且不满足第四子条件时,确定所述第一ACL与所述第二ACL之间部分冲突;其中,所述第三子条件为:对所述第一BDD取反后得到的第四BDD与所述第二BDD之间执行与操作得到的第五BDD中存在叶子节点为1的路径;
所述第四子条件为:对所述第一BDD与所述第二BDD执行与操作得到的第三BDD中存在叶子节点为0的路径。7.一种网络设备,其特征在于,包括:存储器,用于存储指令;通信接口,用于接收和发送数据;处理器,用于调用所述存储器中的程序指令以执行:根据第一ACL中包括的至少一个参数信息,生成所述第一ACL对应的第一二元决策图BDD,所述第一BDD是针对所述第一ACL中包括的至少一个参数信息分别构造的子BDD生成的;根据第二ACL中包...

【专利技术属性】
技术研发人员:陈一峰陈颖
申请(专利权)人:华为数字技术苏州有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1