一种表项管理方法、装置、设备及机器可读存储介质与流程

文档序号:21719743发布日期:2020-08-05 01:09阅读:122来源:国知局
一种表项管理方法、装置、设备及机器可读存储介质与流程

本公开涉及通信技术领域,尤其是涉及一种表项管理方法、装置、设备及机器可读存储介质。



背景技术:

访问控制列表(accesscontrollists,acl)是应用在网络设备的指令列表。这些指令列表用来告诉网络设备哪些数据包可以收、哪些数据包需要拒绝。至于数据包是被接收还是拒绝,可以由类似于源地址、目的地址、端口号等的特定指示条件来决定。

访问控制列表具有许多作用,如限制网络流量、提高网络性能;通信流量的控制,例如acl可以限定或简化路由更新信息的长度,从而限制通过路由器某一网段的通信流量;提供网络安全访问的基本手段;在路由器端口处决定哪种类型的通信流量被转发或被阻塞,例如,用户可以允许e-mail通信流量被路由,拒绝所有的telnet通信流量等。

tcam(ternarycontentaddressablememory)是一种三态内容寻址存储器,主要用于快速查找acl、路由等表项。它是从cam的基础上发展而来的。一般的cam存储器中每个bit位的状态只有两个,“0”或“1”,而tcam中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’tcare”状态,所以称为“三态”,它是通过掩码来实现的,正是tcam的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找,而cam没有第三种状态,所以只能进行精确匹配查找。

当前调整访问控制列表的方法是每一条表项下发插入时,均需要将其后的所有表项位置向后迁移,导致当下发的表项频繁且数量较多时,表项的迁移量十分庞大,占用设备的运行资源。



技术实现要素:

有鉴于此,本公开提供一种表项管理方法、装置及电子设备、机器可读存储介质,以改善上述表项迁移量庞大的问题。

本公开提供了一种表项管理方法,应用于网络设备,所述方法包括:获取待插入表项组,待插入表项组包括需要插入预先建立的访问控制列表的待插入表项;获取待插入表项组的各待插入表项的插入位置;根据待插入表项组的各待插入表项的插入位置,调整访问控制列表;在访问控制列表中插入待插入表项组的待插入表项。

作为一种技术方案,所述方法包括:在访问控制列表中插入待插入表项组的待插入表项前,缓存待插入表项组的待插入表项。

作为一种技术方案,所述根据待插入表项组的各待插入表项的插入位置,调整访问控制列表,包括:调整访问控制列表时,若接收到新增待插入表项,则将新增待插入表项加入待插入表项组;更新待插入表项组的各待插入表项的插入位置;根据更新后的待插入表项组的各待插入表项的插入位置,调整访问控制列表。

作为一种技术方案,所述获取待插入表项组的各待插入表项的插入位置,包括:根据待插入表项的优先级,确定待插入表项的插入位置。

本公开同时提供了一种表项管理装置,应用于网络设备,所述装置包括:处理模块,用于获取待插入表项组,待插入表项组包括需要插入预先建立的访问控制列表的待插入表项,处理模块还用于获取待插入表项组的各待插入表项的插入位置;表项模块,用于根据待插入表项组的各待插入表项的插入位置,调整访问控制列表,表项模块还用于在访问控制列表中插入待插入表项组的待插入表项。

作为一种技术方案,所述装置还包括存储模块,用于在访问控制列表中插入待插入表项组的待插入表项前,缓存待插入表项组的待插入表项。

作为一种技术方案,所述根据待插入表项组的各待插入表项的插入位置,调整访问控制列表,包括:表项模块调整访问控制列表时,处理模块若接收到新增待插入表项,则将新增待插入表项加入待插入表项组;处理模块更新待插入表项组的各待插入表项的插入位置;表项模块根据更新后的待插入表项组的各待插入表项的插入位置,调整访问控制列表。

作为一种技术方案,所述获取待插入表项组的各待插入表项的插入位置,包括:根据待插入表项的优先级,确定待插入表项的插入位置。

本公开同时提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的表项管理方法。

本公开同时提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的表项管理方法。

本公开提供的上述技术方案至少带来了以下有益效果:

通过获取待插入表项的多条待插入表项的信息,一次性迁移需要调整的访问控制列表中的已有表项,然后一次性插入多条待插入表项,从而减少访问控制列表内的表项的迁移量,改善上述表项迁移量庞大的问题。

附图说明

为了更加清楚地说明本公开实施方式或者现有技术中的技术方案,下面将对本公开实施方式或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施方式,对于本领域普通技术人员来讲,还可以根据本公开实施方式的这些附图获得其他的附图。

图1是本公开一种实施方式中的表项管理方法的流程图;

图2是本公开一种实施方式中的表项管理装置的结构图;

图3是本公开一种实施方式中的表项管理装置的结构图;

图4是本公开一种实施方式中的电子设备的硬件结构图。

具体实施方式

在本公开实施方式使用的术语仅仅是出于描述特定实施方式的目的,而非限制本公开。本公开和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开实施方式可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

tcam存放表项,是根据地址决定的,按照预先设定的方向,按优先级排序,例如地址越低优先级越高或地址越高优先级越高等。tcam的查找表项时,可以与多条表都匹配,但是根据匹配的优先级,返回优先级高的表项结果,返回查询的地址或者对应的内容。此时如果只有一条表项可以匹配,则只返回一个结果;但是如果有多条可以匹配,则返回所有匹配表项中优先级最高的表项,低优先级的表不会返回结果。

在以太网产品、安全产品等网络设备中经常会用到acl匹配,所以需要对此类表项进行管理,让需要的表项放到对应的优先级内,否则就可能出现返回错误,所以需要管理所有表项对应优先级。在当前acl访问控制列表中间插入一些表项,则需要搬移空闲位置来存放这些新插入的表项。

当前,想要把一条待插入表项x1插入到总长度为a1到am共计m条表项的访问控制列表中,且位置在an之后an+1之前,则需要将an+1到am共计m-n条表项逐个往后迁移一条表项的空间,然后插入表项x1。若存在待插入表项x2则将在完成插入后重复以上操作,故若存在多条待插入表项,则需要重复迁移已有表项多次,这种方式表项迁移操作数量很庞大。

有鉴于此,本公开提供一种表项管理方法、装置及电子设备、机器可读存储介质,以改善上述表项迁移量庞大的问题。

具体地技术方案如后述。

在一种实施方式中,本公开提供了一种表项管理方法,应用于网络设备,所述方法包括:获取待插入表项组,待插入表项组包括需要插入预先建立的访问控制列表的待插入表项;获取待插入表项组的各待插入表项的插入位置;根据待插入表项组的各待插入表项的插入位置,调整访问控制列表;在访问控制列表中插入待插入表项组的待插入表项。

本实施方式以总长度为a1到am共计m条表项的访问控制列表,以及两条待插入表项x1、x2为例。当待插入表项多于两条时,使用相同或相似的方式实施即可完成表项插入。

若仅存在一条待插入表项,也可以使用本公开提供的技术方案,但在实际应用中,仅一条待插入表项的应用场景,不使用本公开提供的技术方案,表项的迁移量也仅为一次,故在此不作详述。

具体地,如图1,本实施方式包括以下步骤:

步骤s11,获取待插入表项组,待插入表项组包括需要插入预先建立的访问控制列表的待插入表项。

首先获取待插入表项组,待插入表项组由若干个待插入表项构成,这若干条待插入表项可以是连续的,也可以是不连续的。

步骤s12,获取待插入表项组的各待插入表项的插入位置。

这里按照两种情况说明,获取到的待插入表项的插入位置表明,x1、x2为连续的两条待插入表项,且插入位置在an之后an+1之前,或者,若x1、x2为不连续的两条待插入表项,x1的插入位置在ap之后ap+1之前,x2的插入位置在aq之后aq+1之前。

步骤s13,根据待插入表项组的各待插入表项的插入位置,调整访问控制列表。

若x1、x2为连续的两条待插入表项,且插入位置在an之后an+1之前,则获取到an+1到am共计m-n条表项需要向后迁移,迁移量为两条表项的空间。

若x1、x2为不连续的两条待插入表项,x1的插入位置在ap之后ap+1之前,x2的插入位置在aq之后aq+1之前,则获取到ap+1到am共计m-p条表项需要向后迁移,其中,ap+1到aq共计q-p条表项的迁移量为一条表项的空间,aq+1到am共计m-q条表项的迁移量为两条表项的空间。在本方案中,由于设定q大于p,若p大于q则以上相反即可,不影响方案实施,由于x1、x2是不连续的,固p不等于q。

以上实施方式中m、n、p、q均为正整数。

根据以上,将访问控制列表中已有表项,根据需要一次性完成迁移。

步骤s14,在访问控制列表中插入待插入表项组的待插入表项。

在访问控制列表中已有表项根据需要完成迁移后,一次性将x1、x2两条表项插入到留出的列表空间中。

以上就完成了表项管理,无论x1、x2两条表项是否连续,an+1到am共计m-n条表项或ap+1到am共计m-p条表项中,每条表项均只迁移了一次。

而若不采用本实施方式的技术方案,则若x1、x2两条表项连续时,an+1到am共计m-n条表项中每条表项需要迁移两次,若x1、x2两条表项部连续时,ap+1到aq共计q-p条表项中每条表项需要迁移一次,aq+1到am共计m-q条表项中每条表项需要迁移两次。

综上,本实施方式使表项迁移量庞大的问题得到改善。

在一种实施方式中,所述方法包括:在访问控制列表中插入待插入表项组的待插入表项前,缓存待插入表项组的待插入表项。

缓存各待插入表项,同时可以在缓存空间中根据需要调整顺序及编辑,为后续一次性插入提供便利。

在一种实施方式中,所述根据待插入表项组的各待插入表项的插入位置,调整访问控制列表,包括:调整访问控制列表时,若接收到新增待插入表项,则将新增待插入表项加入待插入表项组;更新待插入表项组的各待插入表项的插入位置;根据更新后的待插入表项组的各待插入表项的插入位置,调整访问控制列表。

若在根据前述实施方式调整访问控制列表的过程中,新增了一条待插入表项,则重新计算获取各待插入表项的插入位置,及访问控制列表中已有表项需要迁移的位置,并比对已经迁移的表项,然后根据结果继续调整访问控制列表。

在一种实施方式中,所述获取待插入表项组的各待插入表项的插入位置,包括:根据待插入表项的优先级,确定待插入表项的插入位置。

根据待插入表项的优先级,与其他待插入表项的优先级以及访问控制列表中的已有表项的优先级进行比较,然后排列得到各待插入表项的插入位置及顺序。

在一种实施方式中,本公开同时提供了一种表项管理装置,应用于网络设备,所述装置包括:处理模块,用于获取待插入表项组,待插入表项组包括需要插入预先建立的访问控制列表的待插入表项,处理模块还用于获取待插入表项组的各待插入表项的插入位置;表项模块,用于根据待插入表项组的各待插入表项的插入位置,调整访问控制列表,表项模块还用于在访问控制列表中插入待插入表项组的待插入表项。

本实施方式以总长度为a1到am共计m条表项的访问控制列表,以及两条待插入表项x1、x2为例。当待插入表项多于两条时,使用相同或相似的方式实施即可完成表项插入。

若仅存在一条待插入表项,也可以使用本公开提供的技术方案,但在实际应用中,仅一条待插入表项的应用场景,不使用本公开提供的技术方案,表项的迁移量也仅为一次,故在此不作详述。

具体的,如图2,本实施方式提供的装置如下:

处理模块21,用于获取待插入表项组,待插入表项组包括需要插入预先建立的访问控制列表的待插入表项,处理模块还用于获取待插入表项组的各待插入表项的插入位置。

表项模块22,用于根据待插入表项组的各待插入表项的插入位置,调整访问控制列表,表项模块还用于在访问控制列表中插入待插入表项组的待插入表项。

首先获取待插入表项组,待插入表项组由若干个待插入表项构成,这若干条待插入表项可以是连续的,也可以是不连续的。

这里按照两种情况说明,获取到的待插入表项的插入位置表明,x1、x2为连续的两条待插入表项,且插入位置在an之后an+1之前,或者,若x1、x2为不连续的两条待插入表项,x1的插入位置在ap之后ap+1之前,x2的插入位置在aq之后aq+1之前。

若x1、x2为连续的两条待插入表项,且插入位置在an之后an+1之前,则获取到an+1到am共计m-n条表项需要向后迁移,迁移量为两条表项的空间。

若x1、x2为不连续的两条待插入表项,x1的插入位置在ap之后ap+1之前,x2的插入位置在aq之后aq+1之前,则获取到ap+1到am共计m-p条表项需要向后迁移,其中,ap+1到aq共计q-p条表项的迁移量为一条表项的空间,aq+1到am共计m-q条表项的迁移量为两条表项的空间。在本方案中,由于设定q大于p,若p大于q则以上相反即可,不影响方案实施,由于x1、x2是不连续的,固p不等于q。

以上实施方式中m、n、p、q均为正整数。

根据以上,将访问控制列表中已有表项,根据需要一次性完成迁移。

在访问控制列表中已有表项根据需要完成迁移后,一次性将x1、x2两条表项插入到留出的列表空间中。

以上就完成了表项管理,无论x1、x2两条表项是否连续,an+1到am共计m-n条表项或ap+1到am共计m-p条表项中,每条表项均只迁移了一次。

而若不采用本实施方式的技术方案,则若x1、x2两条表项连续时,an+1到am共计m-n条表项中每条表项需要迁移两次,若x1、x2两条表项部连续时,ap+1到aq共计q-p条表项中每条表项需要迁移一次,aq+1到am共计m-q条表项中每条表项需要迁移两次。

综上,本实施方式使表项迁移量庞大的问题得到改善。

在一种实施方式中,如图3,所述装置还包括存储模块23,用于在访问控制列表中插入待插入表项组的待插入表项前,缓存待插入表项组的待插入表项。

缓存各待插入表项,同时可以在缓存空间中根据需要调整顺序及编辑,为后续一次性插入提供便利。

在一种实施方式中,所述根据待插入表项组的各待插入表项的插入位置,调整访问控制列表,包括:表项模块调整访问控制列表时,处理模块若接收到新增待插入表项,则将新增待插入表项加入待插入表项组;处理模块更新待插入表项组的各待插入表项的插入位置;表项模块根据更新后的待插入表项组的各待插入表项的插入位置,调整访问控制列表。

若在根据前述实施方式调整访问控制列表的过程中,新增了一条待插入表项,则重新计算获取各待插入表项的插入位置,及访问控制列表中已有表项需要迁移的位置,并比对已经迁移的表项,然后根据结果继续调整访问控制列表。

在一种实施方式中,所述获取待插入表项组的各待插入表项的插入位置,包括:根据待插入表项的优先级,确定待插入表项的插入位置。

根据待插入表项的优先级,与其他待插入表项的优先级以及访问控制列表中的已有表项的优先级进行比较,然后排列得到各待插入表项的插入位置及顺序。

在一种实施方式中,本公开提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的表项管理方法,从硬件层面而言,硬件架构示意图可以参见图4所示。

在一种实施方式中,本公开提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的表项管理方法。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施方式阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本公开时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本公开的实施方式可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本公开实施方式可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施方式的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域技术人员应明白,本公开的实施方式可提供为方法、系统或计算机程序产品。因此,本公开可以采用完全硬件实施方式、完全软件实施方式、或者结合软件和硬件方面的实施方式的形式。而且,本公开可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本公开的实施方式而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1