CN105939271A - 查找acl表项的方法及装置 - Google Patents

查找acl表项的方法及装置 Download PDF

Info

Publication number
CN105939271A
CN105939271A CN201610145013.7A CN201610145013A CN105939271A CN 105939271 A CN105939271 A CN 105939271A CN 201610145013 A CN201610145013 A CN 201610145013A CN 105939271 A CN105939271 A CN 105939271A
Authority
CN
China
Prior art keywords
acl table
block
table item
section
acl
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.)
Granted
Application number
CN201610145013.7A
Other languages
English (en)
Other versions
CN105939271B (zh
Inventor
符志清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201610145013.7A priority Critical patent/CN105939271B/zh
Publication of CN105939271A publication Critical patent/CN105939271A/zh
Application granted granted Critical
Publication of CN105939271B publication Critical patent/CN105939271B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种查找ACL表项的方法及装置,所述方法应用在网络交换设备上,所述网络交换设备上存储多条ACL表项,所有的ACL表项被划分为若干个片区,每个片区包括若干条ACL表项;所述方法包括:根据所述目标ACL表项的表项位置,以及预设的块中包含的块表项数,计算所述表项位置的目标ACL表项所属的块的块标识,所述块是将所有的ACL表项重新划分得到的单位,划分得到的各个块的块表项数相同,且同一个块中的ACL表项属于同一个片区;根据所述块标识,确定与所述块标识对应的片区。应用本申请实施例,实现了降低根据ACL表项的位置确定其所属片区的算法的时间复杂度,提高了网络交换设备的效率。

Description

查找ACL表项的方法及装置
技术领域
本申请涉及网络通信技术领域,尤其涉及查找ACL表项的方法及装置。
背景技术
网络交换设备,比如交换机、防火墙等,可以使用ACL(Access ControlList,访问控制列表)表项对接收到的报文进行特征匹配并进行相应处理。单个ACL表项可支持的匹配条件有限,为了实现快速匹配,可根据不同的匹配条件将ACL表项划分为不同的模式,例如支持匹配IPv4报文特征的ACL表项属于IPv4模式,且将属于同一模式的ACL表项存储在同一片区中。当对ACL表项做资源管理时,由于对属于不同模式的ACL表项实行不同的操作方式,因此,当对某个ACL表项做操作时,需要在该ACL表项所属模式的片区中查找到该ACL表项,例如,查找某个属于IPv4模式的ACL表项时,只能从IPv4或MAC/IPv4模式的片区中查找到该ACL表项。
当用户通过网络交换设备提供的ACL配置页面,对指定的ACL表项进行操作时,网络交换设备可以根据该指定ACL表项的标识以及其所属模式,查找所有片区中的ACL表项,由于不同片区上的ACL表项可能具有相同的标识,因此,可以查找到至少一条ACL表项。之后,根据所查找到的ACL表项的位置,继续获取ACL表项所属的片区,从而确定指定模式的片区,最终查找到该指定的ACL表项。现有技术中,在每片区上的ACL表项数都相同的情况下,为了根据ACL表项的位置确定其所属的片区,可以根据该ACL表项的位置整除每片区上的ACL表项数,得到的商即为该位置的ACL表项所属片区的片区号,该算法的时间复杂度为O(1)。在每片区上的ACL表项数不相同的情况下,为了根据ACL表项的位置确定其所属的片区,可以采取两种方式,在一种方式中,网络交换设备在初始化时,即创建片区信息,其中包括片区号、各片区表项数的对应关系。网络交换设备遍历该片区信息,依次累加片区表项数,当累加值大于该位置时,可以确定该位置的ACL表项即位于所遍历到的片区信息所对应的片区中;在另一种方式中,上述片区信息中还包括,每个片区所存储的ACL表项的起始位置和结束位置。网络交换设备可以从第一个片区信息处开始遍历,当所遍历到的结束位置大于等于该位置时,可以确定该位置的ACL表项即位于所遍历到的片区信息所对应的片区中;或者,网络交换设备从最后一个片区信息处开始遍历,当所遍历到的起始位置小于等于该位置时,可以确定该位置的ACL表项即位于所遍历到的片区信息所对应的片区中。在这种情况下,两种算法的时间复杂度均为O(n)(n为片区数)。
由于网络交换设备所应用的算法应兼容每片区上的ACL表项数都相同和不相同这两种情况,因此网络交换设备可以采用上述针对于每片区上的ACL表项数不相同时所描述的两种算法中的一种。那么,对于在每片区上的ACL表项数相同的情况下,将使原本的时间复杂度由O(1)上升至O(n),从而影响了网络交换设备的效率,且当频繁地管理ACL表项时,该算法将被频繁执行,由于该算法的时间复杂度较高,从而影响网络交换设备的整体效率。
发明内容
有鉴于此,本申请提供一种查找ACL表项的方法及装置,以降低根据ACL表项的位置确定其所属片区的算法的时间复杂度,提高网络交换设备的效率。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种查找访问控制列表ACL表项的方法,所述方法应用在网络交换设备上,所述网络交换设备上存储多条ACL表项,所有的ACL表项被划分为若干个片区,每个片区包括若干条ACL表项;所述方法用于确定待查找的目标ACL表项所属的片区;所述方法包括:
根据所述目标ACL表项的表项位置,以及预设的块中包含的块表项数,计算所述表项位置的目标ACL表项所属的块的块标识,所述块是将所有的ACL表项重新划分得到的单位,划分得到的各个块的块表项数相同,且同一个块中的ACL表项属于同一个片区;
根据所述块标识,确定与所述块标识对应的片区。
在一个实施例中,所述方法还包括:
根据各个片区包括的ACL表项数量,确定各个片区的ACL表项数量之间的最大公约数M,并保存所述最大公约数M;
将所述最大公约数M作为所述块的块表项数,并根据所述块表项数,分别将每个片区上的ACL表项划分为至少一个块,并为所述每个块分配块标识;
存储每个片区划分得到的块的块标识与所述片区之间的对应关系。
在另一个实施例中,所述根据目标ACL表项的表项位置,以及预设的块中包含的块表项数,计算所述表项位置的目标ACL表项所属的块的块标识,包括:
将所述块表项数M整除所述表项位置,所得到的商即为所述表项位置的ACL表项所属块的块标识。
在另一个实施例中,所述ACL表项被划分得到的若干个片区中,各个片区包括的ACL表项的数量相同,或者,各个片区包括的ACL表项的数量不相同。
在另一个实施例中,所述方法还包括:
当各个片区包括的ACL表项的数量相同时,所述块表项数即为所述每个片区的ACL表项的表项数。
根据本申请实施例的第二方面,提供一种查找ACL表项的装置,所述装置应用在网络交换设备上,所述网络交换设备上存储多条ACL表项,所有的ACL表项被划分为若干个片区,每个片区包括若干条ACL表项;所述装置用于确定待查找的目标ACL表项所属的片区;所述装置包括:
计算单元,用于根据所述目标ACL表项的表项位置,以及预设的块中包含的块表项数,计算所述表项位置的目标ACL表项所属的块的块标识,所述块是将所有的ACL表项重新划分得到的单位,划分得到的各个块的块表项数相同,且同一个块中的ACL表项属于同一个片区;
第一确定单元,用于根据所述块标识,确定与所述块标识对应的片区。
在一个实施例中,所述装置还包括:
第二确定单元,用于根据各个片区包括的ACL表项数量,确定各个片区的ACL表项数量之间的最大公约数M,并保存所述最大公约数M;
划分单元,用于将所述最大公约数M作为所述块的块表项数,并根据所述块表项数,分别将每个片区上的ACL表项划分为至少一个块,并为所述每个块分配块标识;
存储单元,用于存储每个片区划分得到的块的块标识与所述片区之间的对应关系。
在另一个实施例中,所述计算单元用于,将所述块表项数M整除所述表项位置,所得到的商即为所述表项位置的ACL表项所属块的块标识。
在另一个实施例中,所述ACL表项被划分得到的若干个片区中,各个片区包括的ACL表项的数量相同,或者,各个片区包括的ACL表项的数量不相同。
在另一个实施例中,当所述各个片区包括的ACL表项的数量相同时,所述块表项数即为所述每个片区的ACL表项的表项数。
应用本实施例的方法,根据目标ACL表项的表项位置,通过一次计算,即可以得出目标ACL表项所属块的块标识,继而根据该块标识从预先保存的块标识与片区的对应关系中,获取该块标识对应的片区。由于本实施例方法中所描述的查找ACL表项的算法与片区数并无关系,因此,该算法的时间复杂度,相较于现有技术中查找ACL表项的算法而言,由O(n)降为了O(1),从而提高了网络交换设备的效率;即使频繁地查找ACL表项,该算法被频繁执行时,也由于该算法的时间复杂度为O(1),从而降低了影响网络交换设备整体效率的可能性。
附图说明
图1为本申请ACL配置界面的一种示例。
图2示例了本申请查找ACL表项的方法的一个实施例流程图。
图3示例了本申请实施例中实现对交换芯片中的ACL表项进行重新划分的一个实施例流程图。
图4示例了本申请查找ACL表项的方法的另一个实施例流程图。
图5为本申请查找ACL表项的装置所在网络交换设备的一种硬件结构图。
图6示例了本申请查找ACL表项的装置的一个实施例框图。
图7示例了本申请查找ACL表项的装置的另一个实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
ACL功能是指能够匹配符合指定特征的报文并进行相应处理的功能,其由若干个ACL表项组成,每个ACL表项携带指定的报文特征和相应动作信息。网络交换设备,例如交换机、防火墙等,在接收到报文时,可以根据自身保存的ACL表项对该报文进行特征匹配,并进行相应处理。上述ACL表项的功能一般由网络交换设备中的交换芯片实现,通常将该类ACL称为芯片ACL。
通常情况下,在芯片ACL中,单个ACL表项可支持的匹配条件是有限的,为了便于ACL表项的资源管理,可以规定支持匹配不同报文特征的ACL表项属于不同的模式,例如,支持匹配IPv4报文特征的ACL表项属于IPv4模式。且每条ACL表项可以有其对应的标识,例如,标识为“1”。在同一交换芯片中,属于同一模式的每条ACL表项的标识各不相同,属于不同模式的ACL表项的标识可以相同。
在网络交换设备的一个交换芯片中,可以保存若干条ACL表项,例如可以保存1024条至8192条ACL表项。通常情况下,在交换芯片中,可以根据ACL表项所属的模式对ACL表项进行存储,例如,属于相同的模式的ACL表项,在交换芯片中可以连续顺序存放,且可以根据每条ACL表项在交换芯片中所存储的物理位置对每条ACL表项以位置进行区别。该位置可以从0开始,且为连续自然数,例如,交换芯片中共保存1025条ACL表项,该1025条ACL表项的表项位置依次为位置0至位置1024。
为了对接收到的报文进行快速匹配,还可以根据ACL表项的位置,将交换芯片上所保存的若干条ACL表项划分为若干个片区,属于不同模式的ACL表项划分到不同的片区中。划分后的每个片区可以包括若干条ACL表项,每个片区上的ACL表项的数量可以相同,也可以不相同。每个片区均可以有对应的片区号,例如,该片区号从0开始,且为连续自然数。网络交换设备在对接收到的报文进行匹配时,可以同时对每个片区中的ACL表项进行匹配,将这种匹配方式称为多路顺序匹配,从而提高了ACL表项的查找速率。
有些网络交换设备中,例如一体化分布式网关设备(带多块板卡的框式设备),每块板卡中可以包括一个交换芯片,位于不同板卡上的交换芯片中的ACL表项是相互独立的,对不同板卡的交换芯片上的ACL表项管理时也互不影响,例如,仅在某个交换芯片中查找指定的ACL表项。本申请提出的查找ACL表项的方法及装置即针对于在一个交换芯片中查找指定的ACL表项,并非在网络交换设备上所有的交换芯片中查找指定的ACL表项。
为了实现对ACL表项的管理,网络交换设备中可以包括ACL管理模块,该ACL管理模块可以拥有独立的内存资源,该ACL管理模块可以在自身拥有的独立内存中,存储每个交换芯片上的ACL表项信息,该ACL表项信息可以包括片区号、每一片区的表项数、每一片区的ACL表项的起始位置和结束位置,以及每一片区的模式等信息。如下的表1,示例了该ACL管理模块所保存的一个交换芯片上的ACL表项的ACL表项信息:
表1
可以理解的是,上述表1仅仅为ACL表项信息的一种示例,实际应用中的ACL表项信息所包括的内容可以与上述表1不同,例如,ACL表项信息仅包括片区号、每一片区的表项数、每一片区的模式,而不包括每一片区的ACL表项的起始位置和结束位置。并且,由于网络交换设备上可能具有多个交换芯片,那么,该ACL管理模块中可以保存多个如表1所示的ACL表项信息。
为了让设备管理员可以根据实际需要对网络交换设备所保存的ACL表项进行管理,例如,进行配置、修改、删除、移动等操作,ACL管理模块可以提供一个ACL配置界面,以及ACL管理机制。如下图1所示,为本申请ACL配置界面的一种示例。
当设备管理员根据该图1所示的ACL配置界面对指定ACL表项进行操作时,例如,删除该指定ACL表项,该ACL管理模块可以根据设备管理员的操作指令,获取待操作的目标ACL表项的标识以及所属模式。后续,该ACL管理模块可以根据ACL管理机制所提供的算法,在网络交换设备中查找到该指定ACL表项,以实现对该指定ACL表项进行操作。
当在网络交换设备中根据ACL表项的标识查找指定ACL表项时,由于不同模式的ACL表项位于不同片区,且不同模式的ACL表项的标识可以相同,那么,可以查找到至少一个拥有该标识的ACL表项,本申请中,可以将所查找到的拥有该标识的ACL表项称为目标ACL表项,即可以获取至少一个目标ACL表项的表项位置,例如,获取到3个目标ACL表项的表项位置。后续,可以根据所获取到的表项位置分别获取目标ACL表项所属的片区,从而获取目标ACL表项所属的模式,以根据模式确定唯一的目标ACL表项。
为了实现通过目标ACL表项的位置快速获取ACL表项所属的片区,本申请提供了查找ACL表项的方法。如下的图2,示例了本申请查找ACL表项的方法的一个实施例流程图。该流程仅限于在一个交换芯片上进行查找,包括以下步骤:
步骤S201:根据所述目标ACL表项的表项位置,以及预设的块中包含的块表项数,计算所述表项位置的目标ACL表项所属的块的块标识,所述块是将所有的ACL表项重新划分得到的单位,划分得到的各个块的块表项数相同,且同一个块中的ACL表项属于同一个片区。
本申请实施例中,在ACL管理模块初始化时,例如,网络交换设备刚启动时,即可以根据所述保存的ACL表项信息,将交换芯片上所有的ACL表项进行重新划分,划分后的ACL表项以块(Block)为单位,且每个块的块表项数(该块表项数即每个块中包括的ACL表项的数量)相同,同一个块中的ACL表项属于同一个片区。并为每个块分配一个唯一的块标识,例如,该块标识可以从0开始,且为连续自然数。本申请实施例中,还可以存储该块标识与片区的对应关系。本申请实施例中是如何对交换芯片上所有的ACL表项进行重新划分的,可以参见下面实施例的相关描述,在此先不作详述。
当获取到目标ACL表项的表项位置后,可以根据该表项位置和预设的块表项数,计算得出块标识。
在一个例子中,可以将目标ACL表项的表项位置整除预设的块表项数,所得到的商即为块标识。例如,假设表项位置为700,块表项数为128,则按照上述算法,块标识=700/128=5。
步骤S202:根据所述块标识,确定与所述块标识对应的片区。
由步骤S201中所述,存储了块标识与片区的对应关系。那么,当执行完步骤S201,获取到块标识之后,在本步骤中,即可以根据该块标识,以及块标识与片区的对应关系,确定获取的到块标识所对应的片区,从而可以根据片区所属的模式确定目标ACL表项所属的模式,以根据模式确定唯一的待操作的目标ACL表项。
应用本实施例的方法,根据目标ACL表项的表项位置,通过一次计算,即可以得出目标ACL表项所属块的块标识,继而根据该块标识从预先保存的块标识与片区的对应关系中,获取该块标识对应的片区。由于本实施例方法中所描述的查找ACL表项的算法与片区数并无关系,因此,该算法的时间复杂度,相较于现有技术中查找ACL表项的算法而言,由O(n)降为了O(1),从而提高了网络交换设备的效率;即使频繁地查找ACL表项,该算法被频繁执行时,也由于该算法的时间复杂度为O(1),从而降低了影响网络交换设备整体效率的可能性。
由上述图2所示的实施例可知,为了实现本申请实施例查找ACL表项的方法,可以将交换芯片中的ACL表项进行重新划分,且划分后的ACL表项以块为单位。因此,本申请中,还可以针对如何对交换芯片中的ACL表项进行重新划分进行详细描述,以使本领域的技术人员可以通过本申请实施例所描述的,对本申请查找ACL表项的方法有更为直观、清楚的了解。如下的图3,示例了本申请实施例中实现对交换芯片中的ACL表项进行重新划分的一个实施例流程图,该实施例仅以对同一个交换芯片上的ACL表项进行重新划分为例,包括以下步骤:
步骤S301:根据各个片区包括的ACL表项数量,确定各个片区的ACL表项数量之间的最大公约数M,并保存所述最大公约数M。
本实施例中,可以在ACL管理模块初始化时,例如,网络交换设备刚启动时,即对交换芯片上的ACL表项进行重新划分,且划分后的ACL表项以块为单位。
具体地,根据所保存的ACL表项信息,确定各个片区的ACL表项的数量之间的最大公约数,例如,如上述表1所示的一个交换芯片上的ACL表项信息可以确定,各个片区的ACL表项的数量之间的最大公约数为128。为了后续使用方便,本实施例中可以保存该最大公约数。
步骤S302:将所述最大公约数M作为块的块表项数,并根据所述块表项数,分别将每个片区上的ACL表项划分为至少一个块,并为所述每个块分配块标识。
在一个例子中,可以将步骤S301中所获取到的最大公约数作为块表项数,从而根据该块表项数,将每个片区的ACL表项划分为至少一个块,并分别为每个块分配一个块标识,例如,该块标识可以从0开始,且为连续自然数。
如下表2,以上述表1所示的ACL表项信息为基础,示例了按照步骤S301和步骤S302重新划分ACL表项之后的块表项信息:
表2
块标识 0 1 2 3 4 5 6 7 8
起始位置 0 128 256 384 512 640 768 896 1024
结束位置 127 255 383 511 639 767 895 1023 1151
片区号 0 1 2 2 3 3 4 4 5
续表2
块标识 9 10 11 12 13 14 15 16 17
起始位置 1152 1280 1408 1536 1664 1792 1920 2048 2176
结束位置 1279 1407 1535 1663 1791 1919 2047 2175 2303
片区号 5 6 6 6 6 7 7 7 7
可以理解的是,在实际操作中,对交换芯片上的ACL表项进行重新划分后,网络交换设备中可以并不存储如上述表2所示的块表项信息中的起始位置和结束位置,而只存储块标识和片区号的对应关系即可。该表2所示的块表项信息,仅仅作为示例,使本领域技术人员,可以对重新划分ACL表项所得到的块有直观的了解。
此外,由上述步骤S301和步骤S302的描述可知,当交换芯片中,每个片区所包括的ACL表项的数量均相同时,那么,步骤S301中所得出的最大公约数即为每个片区所包括的ACL表项的数量,块表项数也即为每个片区中所包括的ACL表项的数量。
步骤S303:存储每个片区划分得到的块的块标识与所述片区之间的对应关系。
本实施例中,为了后续查找方便,可以存储块标识与片区的对应关系。
在一个例子中,可以采用数组形式的数据结构对块标识与片区的对应关系进行存储。具体地,假设存储块标识与片区的对应关系的数组的数组名为“a”,且以块标识作为该数组的下标,以片区号作为该数组所保存的内容,例如:a[5]=3,即可以表示,块标识5所对应片区的片区号为3。
应用本实施例的方法,通过在ACL管理模块初始化时,即对交换芯片中所保存的ACL表项进行重新划分,并保存重新划分后所得到的块的块标识与片区的对应关系,以方便后续使用本申请查找ACL表项的方法,根据目标ACL表项的位置快速查找到该目标ACL表项所属的片区。该实施例中对交换芯片中所保存的ACL表项进行重新划分的算法,可以仅执行一次,因此,通常不会对网络交换设备的效率造成影响。
在上述图2和图3所示实施例的基础上,如下的图4,示例了本申请查找ACL表项的方法的另一个实施例流程图,包括以下步骤:
步骤S401:将预先设置的块表项数M整除目标ACL表项的表项位置,所得到的商即为所述表项位置的ACL表项所属块的块标识。
关于块表项数M以及块标识的预先设置,可以参见上述图3所示实施例中步骤S301和步骤S302的相关描述,在此不再详细赘述。
步骤S402:根据所述块标识以及预先设置的块标识与片区的对应关系,确定与所述块标识对应的片区。
关于块标识与片区对应关系的预先设置,可以参见上述图3所示实施例中步骤S303的相关描述,在此不再详细赘述。
当执行完步骤S401,获取到块标识后,可以根据该块标识获取其对应的片区。
在一个例子中,若块标识与片区的对应关系以数组形式的数据结构进行存储,那么,该步骤中,即可以以该块标识作为下标,直接从存储块标识与片区对应关系的数组中,查找到该块标识对应的片区。例如,假设计算得到的块标识为5,以及a[5]=3,则可以得出块标识5所对应片区的片区号为3。
应用本实施例的方法,由于预先对交换芯片中的ACL表项进行了以块为单位的重新划分,后续,则可以根据目标ACL表项的表项位置,通过一次计算,即可以得出目标ACL表项所属块的块标识,继而根据该块标识从预先保存的块标识与片区的对应关系中,获取该块标识对应的片区。由于本实施例方法中所描述的查找ACL表项的算法与片区数并无关系,因此,该算法的时间复杂度,相较于现有技术中查找ACL表项的算法而言,由O(n)降为了O(1),从而提高了网络交换设备的效率;即使频繁地查找ACL表项,该算法被频繁执行时,也由于该算法的时间复杂度为O(1),从而降低了影响网络交换设备整体效率的可能性。
与前述查找ACL表项的方法的实施例相对应,本申请还提供了查找ACL表项的装置的实施例。
本申请查找ACL表项的装置的实施例可以应用在网络交换设备上,例如,交换机、防火墙等。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络交换设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请查找ACL表项的装置所在网络交换设备的一种硬件结构图,除了图5所示的处理器51、内存52、网络接口53、以及非易失性存储器54之外,实施例中装置所在的网络交换设备通常根据该网络交换设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图6,示例了本申请查找ACL表项的装置的一个实施例框图,该装置应用在网络交换设备上,该网络交换设备上存储多条ACL表项,所有的ACL表项被划分为若干个片区,每个片区包括若干条ACL表项;该装置用于确定待查找的目标ACL表项所属的片区;该装置可以包括:计算单元61、第一确定单元62。
其中,所述计算单元61,可以用于根据所述目标ACL表项的表项位置,以及预设的块中包含的块表项数,计算所述表项位置的目标ACL表项所属的块的块标识,所述块是将所有的ACL表项重新划分得到的单位,划分得到的各个块的块表项数相同,且同一个块中的ACL表项属于同一个片区;
所述第一确定单元62,可以用于根据所述块标识,确定与所述块标识对应的片区。
请参考图7,示例了本申请查找ACL表项的装置的另一个实施例框图,该图7所示的装置在上述图6所示装置的基础上,还可以包括:第二确定单元63、划分单元64、存储单元65。
其中,所述第二确定单元63,可以用于根据各个片区包括的ACL表项数量,确定各个片区的ACL表项数量之间的最大公约数M,并保存所述最大公约数M;
所述划分单元64,可以用于将所述最大公约数M作为所述块的块表项数,并根据所述块表项数,分别将每个片区上的ACL表项划分为至少一个块,并为所述每个块分配块标识;
所述存储单元65,可以用于存储每个片区划分得到的块的块标识与所述片区之间的对应关系。
在一个例子中,在图6和图7所示装置的基础上,所述计算单元61,可以用于将所述块表项数M整除所述表项位置,所得到的商即为所述表项位置的ACL表项所属块的块标识。
所述ACL表项被划分得到的若干个片区中,各个片区包括的ACL表项的数量相同,或者,各个片区包括的ACL表项的数量不相同。
当所述各个片区包括的ACL表项的数量相同时,所述块表项数即为所述每个片区的ACL表项的表项数。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种查找访问控制列表ACL表项的方法,其特征在于,所述方法应用在网络交换设备上,所述网络交换设备上存储多条ACL表项,所有的ACL表项被划分为若干个片区,每个片区包括若干条ACL表项;所述方法用于确定待查找的目标ACL表项所属的片区;所述方法包括:
根据所述目标ACL表项的表项位置,以及预设的块中包含的块表项数,计算所述表项位置的目标ACL表项所属的块的块标识,所述块是将所有的ACL表项重新划分得到的单位,划分得到的各个块的块表项数相同,且同一个块中的ACL表项属于同一个片区;
根据所述块标识,确定与所述块标识对应的片区。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据各个片区包括的ACL表项数量,确定各个片区的ACL表项数量之间的最大公约数M,并保存所述最大公约数M;
将所述最大公约数M作为所述块的块表项数,并根据所述块表项数,分别将每个片区上的ACL表项划分为至少一个块,并为所述每个块分配块标识;
存储每个片区划分得到的块的块标识与所述片区之间的对应关系。
3.根据权利要求2所述的方法,其特征在于,所述根据目标ACL表项的表项位置,以及预设的块中包含的块表项数,计算所述表项位置的目标ACL表项所属的块的块标识,包括:
将所述块表项数M整除所述表项位置,所得到的商即为所述表项位置的ACL表项所属块的块标识。
4.根据权利要求1所述的方法,其特征在于,所述ACL表项被划分得到的若干个片区中,各个片区包括的ACL表项的数量相同,或者,各个片区包括的ACL表项的数量不相同。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当各个片区包括的ACL表项的数量相同时,所述块表项数即为所述每个片区的ACL表项的表项数。
6.一种查找ACL表项的装置,其特征在于,所述装置应用在网络交换设备上,所述网络交换设备上存储多条ACL表项,所有的ACL表项被划分为若干个片区,每个片区包括若干条ACL表项;所述装置用于确定待查找的目标ACL表项所属的片区;所述装置包括:
计算单元,用于根据所述目标ACL表项的表项位置,以及预设的块中包含的块表项数,计算所述表项位置的目标ACL表项所属的块的块标识,所述块是将所有的ACL表项重新划分得到的单位,划分得到的各个块的块表项数相同,且同一个块中的ACL表项属于同一个片区;
第一确定单元,用于根据所述块标识,确定与所述块标识对应的片区。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二确定单元,用于根据各个片区包括的ACL表项数量,确定各个片区的ACL表项数量之间的最大公约数M,并保存所述最大公约数M;
划分单元,用于将所述最大公约数M作为所述块的块表项数,并根据所述块表项数,分别将每个片区上的ACL表项划分为至少一个块,并为所述每个块分配块标识;
存储单元,用于存储每个片区划分得到的块的块标识与所述片区之间的对应关系。
8.根据权利要求7所述的装置,其特征在于,所述计算单元用于,将所述块表项数M整除所述表项位置,所得到的商即为所述表项位置的ACL表项所属块的块标识。
9.根据权利要求6所述的装置,其特征在于,所述ACL表项被划分得到的若干个片区中,各个片区包括的ACL表项的数量相同,或者,各个片区包括的ACL表项的数量不相同。
10.根据权利要求9所述的装置,其特征在于,当所述各个片区包括的ACL表项的数量相同时,所述块表项数即为所述每个片区的ACL表项的表项数。
CN201610145013.7A 2016-03-14 2016-03-14 查找acl表项的方法及装置 Active CN105939271B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610145013.7A CN105939271B (zh) 2016-03-14 2016-03-14 查找acl表项的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610145013.7A CN105939271B (zh) 2016-03-14 2016-03-14 查找acl表项的方法及装置

Publications (2)

Publication Number Publication Date
CN105939271A true CN105939271A (zh) 2016-09-14
CN105939271B CN105939271B (zh) 2019-04-09

Family

ID=57151399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610145013.7A Active CN105939271B (zh) 2016-03-14 2016-03-14 查找acl表项的方法及装置

Country Status (1)

Country Link
CN (1) CN105939271B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110896380A (zh) * 2019-11-28 2020-03-20 迈普通信技术股份有限公司 流表筛查方法、装置、电子设备及可读存储介质
CN111431798A (zh) * 2020-03-31 2020-07-17 新华三信息安全技术有限公司 一种路由切换方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272550B2 (en) * 2002-04-23 2007-09-18 International Business Machines Corporation System and method for configurable binding of access control lists in a content management system
CN101345694A (zh) * 2007-07-11 2009-01-14 上海未来宽带技术及应用工程研究中心有限公司 一种快速查找定位和匹配访问控制列表的方法
US20090125470A1 (en) * 2007-11-09 2009-05-14 Juniper Networks, Inc. System and Method for Managing Access Control Lists
CN103001793A (zh) * 2012-10-26 2013-03-27 杭州迪普科技有限公司 一种acl管理方法及装置
CN104579940A (zh) * 2013-10-10 2015-04-29 杭州华三通信技术有限公司 查找访问控制列表的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272550B2 (en) * 2002-04-23 2007-09-18 International Business Machines Corporation System and method for configurable binding of access control lists in a content management system
CN101345694A (zh) * 2007-07-11 2009-01-14 上海未来宽带技术及应用工程研究中心有限公司 一种快速查找定位和匹配访问控制列表的方法
US20090125470A1 (en) * 2007-11-09 2009-05-14 Juniper Networks, Inc. System and Method for Managing Access Control Lists
CN103001793A (zh) * 2012-10-26 2013-03-27 杭州迪普科技有限公司 一种acl管理方法及装置
CN104579940A (zh) * 2013-10-10 2015-04-29 杭州华三通信技术有限公司 查找访问控制列表的方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110896380A (zh) * 2019-11-28 2020-03-20 迈普通信技术股份有限公司 流表筛查方法、装置、电子设备及可读存储介质
CN110896380B (zh) * 2019-11-28 2021-09-17 迈普通信技术股份有限公司 流表筛查方法、装置、电子设备及可读存储介质
CN111431798A (zh) * 2020-03-31 2020-07-17 新华三信息安全技术有限公司 一种路由切换方法及装置
CN111431798B (zh) * 2020-03-31 2022-07-12 新华三信息安全技术有限公司 一种路由切换方法及装置

Also Published As

Publication number Publication date
CN105939271B (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
US8412809B2 (en) Method, apparatus and computer program product implementing multi-tenancy for network monitoring tools using virtualization technology
US8750144B1 (en) System and method for reducing required memory updates
CN104504003A (zh) 图数据的搜索方法和装置
CN109981493B (zh) 一种用于配置虚拟机网络的方法和装置
CN107896169A (zh) 一种acl的管理方法及装置
CN106339181B (zh) 存储系统中数据处理方法和装置
CN103825976A (zh) 分布式系统架构中的nat处理方法及装置
CN106878482A (zh) 网络地址转换方法及装置
WO2016175768A1 (en) Map tables for hardware tables
CN108762949A (zh) 集中调度方法、系统、计算机设备和存储介质
CN112766646A (zh) 任务流程的生成、处理方法、装置、设备和存储介质
CN105447151A (zh) 访问分布式数据库的方法、数据源代理装置及应用服务器
CN105939271A (zh) 查找acl表项的方法及装置
CN108418752B (zh) 一种聚合组的创建方法和装置
CN104836738A (zh) 路由硬件表项资源管理方法、装置及网络设备
CN108920105A (zh) 基于社区结构的图数据分布式存储方法及装置
CN103379179A (zh) 一种规划网络ip地址的方法及系统
CN101534218B (zh) 一种开放应用架构的管理方法、装置和系统
US11683316B2 (en) Method and device for communication between microservices
CN105959226A (zh) 建立转发表项的方法及装置
CN111131049B (zh) 路由表项的处理方法及装置
CN109768909A (zh) 报文转发方法和装置
CN108153494A (zh) 一种io请求处理方法及装置
CN101335737B (zh) 一种网络处理器及其数据处理方法
CN110471968A (zh) Etl任务的发布方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building

Applicant after: Hangzhou Dipu Polytron Technologies Inc

Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building

Applicant before: Hangzhou Dipu Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant