一种配置ACL表项的方法和装置与流程

文档序号:11250818
一种配置ACL表项的方法和装置与流程
本申请涉及网络通信
技术领域
,特别涉及一种配置ACL表项的方法和装置。
背景技术
:在网络通信中,报文经过网络设备时,网络设备需要对报文进行检测。当检测成功后才会将报文进行转发处理。在现有技术中,通常可以在网络设备上配置ACL表项,将报文与ACL表项进行匹配,如果报文匹配到ACL表项,则基于匹配到的ACL表项进行处理,如果报文与所有ACL表项均不匹配,则将该报文丢弃。其中,网络设备上配置的若干ACL表项存在先后顺序。基于所述先后顺序,各ACL表项存在优先级,越先匹配的ACL表项的优先级越高。报文与所述若干ACL表项进行匹配时按照先后顺序顺次匹配,一旦报文匹配中ACL表项,则不再继续与剩下的ACL表项进行匹配,即使剩下的ACL表项中存在与该报文同样匹配的ACL表项。当所述若干ACL表项中存在多条与该报文匹配的ACL表项时,该报文按照先匹配到的ACL表项进行处理。如果改变这多条ACL表项的优先级,则该报文将匹配到不同的ACL表项,并进行不同的处理。在网络设备上配置ACL表项时,用户可以基于ACL表项配置页面进行ACL表项配置。用户可以对ACL表项进行追加、插入、修改、删除、移动。当用户对ACL表项进行插入、移动和删除时,会改变部分ACL表项的优先级。如果在同一时段内,多个用户均在配置ACL表项,那么,会出现用户刚开始配置ACL表项时,通过ACL表项配置页面知悉的所述若干ACL表项的优先级,与该用户下发ACL表项配置数据时,所述若干ACL表项的优先级不一样的情况。当所述若干ACL表项的优先级发生变化时,由于报文匹配到错误表项,造成报文错误转发。技术实现要素:有鉴于此,本申请提供一种配置ACL表项的方法和装置,应用于ACL管理模块,用于解决多个用户在同一时段内进行ACL表项配置时,造成ACL芯片中ACL表项错乱的问题。具体地,本申请是通过如下技术方案实现的:一种配置ACL表项的方法,应用于网络设备,所述网络设备包括ACL芯片,包括:接收目标用户通过用户配置页面下发的ACL表项以及页面魔术字;其中,所述页面魔术字为目标用户在启动所述用户配置页面开始配置ACL表项的时刻,所述用户配置页面向本设备请求的内存魔术字;其中,所述内存魔术字为本设备中保存的用于标识ACL芯片中ACL表项是否发生变化的数值;所述内存魔术字在本设备在ACL芯片中完成ACL表项的配置时,基于预配置的更新策略进行更新;比较所述页面魔术字与本设备当前保存的内存魔术字是否相同;如果相同,在所述ACL芯片中配置所述ACL表项。一种配置ACL表项的装置,应用于网络设备,所述网络设备包括ACL芯片,包括:接收单元,用于接收目标用户通过用户配置页面下发的ACL表项以及页面魔术字;其中,所述页面魔术字为目标用户在启动所述用户配置页面开始配置ACL表项的时刻,所述用户配置页面向本设备请求的内存魔术字;其中,所述内存魔术字为本设备中保存的用于标识ACL芯片中ACL表项是否发生变化的数值;所述内存魔术字在本设备在ACL芯片中完成ACL表项的配置时,基于预配置的更新策略进行更新;比较单元,用于比较所述页面魔术字与本设备当前保存的内存魔术字是否相同;配置单元,用于如果相同,在所述ACL芯片中配置所述ACL表项。由于在网络设备中保存了内存魔术字,其中,所述内存魔术字为用于标识所述ACL芯片中的ACL表项是否发生变化的数值。每当网络设备在ACL芯片中对ACL表项完成配置时,所述内存魔术字就会发生更新。当目标用户启动用户配置页面开始配置ACL表项时,所述用户配置页面可以向网络设备请求网络设备当时保存的内存魔术字,并保存于所述用户配置页面,作为页面魔术字。当目标用户完成ACL表项的配置时,所述用户配置页面可以将完成配置的ACL表项和页面魔术字下发至本网络设备,通过比较页面魔术字和网络设备当前保存的内存魔术字是否相同,来判断从所述目标用户启动ACL表项配置页面开始配置ACL表项的时刻,到该目标用户将配置完成的ACL表项下发至网络设备的时刻所对应的时间段内,是否有其它用户在ACL芯片中已经完成了ACL表项的配置。只有在所述页面魔术字和网络设备当前保存的内存魔术字相同的时候,即从所述目标用户启动ACL表项配置页面开始配置ACL表项的时刻,到该目标用户将配置完成的ACL表项下发至网络设备的时刻的这段时间内,只有所述目标用户完成ACL表项的配置,网络设备才会基于所述目标用户下发的ACL表项对应的操作类型,在ACL芯片中对所述ACL表项进行配置。因此,可以保证所述ACL芯片中ACL表项的分布情况和所述目标用户预想的分布情况一样,从而可以避免报文匹配到错误的ACL表项而被错误处理。附图说明图1为本申请实施例示出的一种配置ACL表项的方法流程图;图2为本申请实施例示出的用户配置页面的示意图;图3为本申请一种配置ACL表项的装置所在网络设备的一种硬件结构图;图4为本申请实施例示例性示出的一种配置ACL表项的装置。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在现有技术中,在网络设备上完成ACL表项配置的任务主要通过三个模块来实现。所述三个模块包括ACL表项配置模块、ACL表项管理模块、ACL表项存放模块。其中,所述ACL表项配置模块主要为针对ACL表项配置开发的ACL表项配置页面,用于输入所需要配置的ACL表项的参数。所述ACL表项配置页面可以是Web页面,也可以是命令行终端。所述ACL表项管理模块为CPU中配置的逻辑程序,用于接收ACL表项模块下发的ACL表项以及ACL表项对应的操作类型,并将所述ACL表项下发至ACL表项存放模块。所述ACL表项存放模块用于存放ACL表项,其中,所述ACL表项以列表的形式存放,当所述网络设备上的ACL功能通过软件的方式实现时,所述ACL表项存放于系统内存中。当所述网络设备上的ACL功能通过硬件的方式实现时,所述ACL表项存放于ACL芯片上。通常,选择ACL芯片来存在ACL表项,节省内存。用户在ACL表项配置页面中可以对ACL表项执行的操作包括:ACL表项的追加、ACL表项的插入、ACL表项的删除、ACL表项的移动、ACL表项的修改。1)、ACL表项的追加其中,所述ACL表项的追加是指在ACL芯片中所有ACL表项之后添加ACL表项。例如,在表1所示的ACL芯片中追加一条ID为f的表项,所述ACL芯片就会变成表2所示的情况。表1、表2均为本申请示例性示出的一种ACL芯片示意表。ACL表项ID优先级a1b2c3d4e5表1ACL表项ID优先级a1b2c3d4e5f6表2当在所述ACL芯片中追加ACL表项时,ACL表项管理模块可以基于所述ACL芯片中已经存在的ACL表项的优先级,自动为待添加的ACL表项配置优先级。需要说明的是,在所述ACL芯片中追加ACL表项时,不会改变所述ACL芯片中其它ACL表项的优先级。2)、ACL表项的插入所述ACL表项的插入是指在ACL芯片中任意一条ACL表项之前添加一条ACL表项。所述ACL表项在添加时基于待添加ACL表项的优先级来实现的。比如,待添加ACL表项的优先级为N,则添加该ACL表项时,从ACL芯片的起始位置开始遍历,查找优先级为N-1的ACL表项,然后在该条ACL表项之后添加所述待添加ACL表项。例如,在表1所示的ACL芯片中插入ACL表项ID为f,优先级为3的一条ACL表项,所述ACL芯片就会变成表3所示的情况。表3为本申请示例性示出的一种ACL芯片示意表。ACL表项ID优先级a1b2f3c4d5e6表3当在所述ACL芯片中插入ACL表项时,在该待插入ACL表项添加至所述ACL芯片中后,ACL表项管理模块可以改变该插入的ACL表项后的所有ACL表项的优先级。3)、ACL表项的删除所述ACL表项的删除是指删除ACL芯片中已经存在的ACL表项。在删除ACL表项时,基于所述待删除的ACL表项的ID,在所述ACL芯片查找与该ID对应的ACL表项,然后删除该查找到的ACL表项。例如,将表1所示的ACL芯片中ACL表项ID为d的ACL表项删除,所述ACL芯片就会变成表4所示的情况。表4为本申请示例性试示出的一种ACL芯片示意表。ACL表项ID优先级a1b2c3e4表4当在所述ACL芯片中删除了待删除的ACL表项后,如果该待删除的ACL表项后还存在其它ACL表项,ACL表项管理模块可以改变该待删除ACL表项后存在的其它ACL表项的优先级。4)、ACL表项的移动所述ACL表项的移动是指修改所述ACL芯片中需要移动的ACL表项的优先级,然后将该ACL表项插入到所述ACL芯片中。在移动ACL表项时,ACL表项管理模块可以基于该ACL表项修改完的优先级,查找该ACL表项的新的添加位置,然后将该ACL表项添加至该新的添加位置。例如,将所述表1所示的ACL芯片中ACL表项ID为d的ACL表项移动到ACL表项ID为b之前,所述ACL芯片就会变成表5所示的情况。表5为本申请实施例示例性示出的一种ACL芯片示意表。ACL表项ID优先级a1d2b3c4e5表5当对所述ACL芯片中的ACL表项进行移动时,ACL表项管理模块可以将该ACL表项的优先级进行修改。当该待移动的ACL表项完成移动后,ACL表项管理模块可以将该待移动的ACL表项所在的原来的添加位置,与该待移动的ACL表项完成移动后该ACL表项所在的新的添加位置之间的ACL表项的优先级进行修改。5)、ACL表项的修改所述ACL表项的修改是指所述ACL芯片中需要修改的ACL表项在不改变添加位置的情况下,修改该ACL表项的其它参数。比如,修改ACL表项的ID。例如,将表1所示的ACL芯片中ID为e的ACL表项修改为ID为f的ACL表项,所述ACL芯片就会变成表6所示的情况。表6为本申请实施例示例性示出的一种ACL芯片示意表。ACL表项ID优先级a1d2b3c4f5表6当对所述ACL芯片中的ACL表项进行修改时,ACL表项管理模块不会改变需要修改的ACL表项的添加位置,换言之,所述ACL芯片中的ACL表项的优先级不会发生变化。然而,在现有技术中,多个用户可能在同一时段内进行ACL表项的配置。从目标用户启动ACL表项配置页面开始配置ACL表项的时刻,到该目标用户将配置完成的ACL表项下发至网络设备的时刻的这段时间内,可能有其它用户在ACL芯片中已经完成了ACL表项的配置。在这样的情况下,网络设备再将该目标用户配置完成的ACL表项下发至ACL芯片中时,所述ACL芯片中的ACL表项的分布情况已经发生了改变,所述ACL表项下发至所述ACL芯片后,所述ACL芯片中的ACL表项的分布情况已经不是该目标用户所预想的分布情况。因此,所述ACL芯片中的ACL表项已经发生了错乱,从而通过ACL芯片对接收到的报文进行匹配时,会导致报文匹配到错误的ACL表项而被错误处理。为了解决现有技术中的问题,本申请提出了一种配置ACL表项的方法,应用于网络设备,所述网络设备中包含ACL芯片。所述方法包括:接收目标用户通过用户配置页面下发的ACL表项以及页面魔术字;其中,所述页面魔术字为目标用户在启动所述用户配置页面开始配置ACL表项的时刻,所述用户配置页面向本设备请求的内存魔术字;其中,所述内存魔术字为本设备中保存的用于标识ACL芯片中ACL表项是否发生变化的数值;所述内存魔术字在本设备在ACL芯片中完成ACL表项的配置时,基于预配置的更新策略进行更新;比较所述页面魔术字与本设备当前保存的内存魔术字是否相同;如果相同,在所述ACL芯片中配置所述ACL表项。由于在网络设备中保存了内存魔术字,其中,所述内存魔术字为用于标识所述ACL芯片中的ACL表项是否发生变化的数值。每当网络设备在ACL芯片中对ACL表项完成配置时,所述内存魔术字就会发生更新。当目标用户启动用户配置页面开始配置ACL表项时,所述用户配置页面可以向网络设备请求网络设备当时保存的内存魔术字,并保存于所述用户配置页面,作为页面魔术字。当目标用户完成ACL表项的配置时,所述用户配置页面可以将完成配置的ACL表项和页面魔术字下发至本网络设备,通过比较页面魔术字和网络设备当前保存的内存魔术字是否相同,来判断从所述目标用户启动ACL表项配置页面开始配置ACL表项的时刻,到该目标用户将配置完成的ACL表项下发至网络设备的时刻所对应的时间段内,是否有其它用户在ACL芯片中已经完成了ACL表项的配置。只有在所述页面魔术字和网络设备当前保存的内存魔术字相同的时候,即从所述目标用户启动ACL表项配置页面开始配置ACL表项的时刻,到该目标用户将配置完成的ACL表项下发至网络设备的时刻的这段时间内,只有所述目标用户完成ACL表项的配置,网络设备才会基于所述目标用户下发的ACL表项对应的操作类型,在ACL芯片中对所述ACL表项进行配置。因此,可以保证所述ACL芯片中ACL表项的分布情况和所述目标用户预想的分布情况一样,从而可以避免报文匹配到错误的ACL表项而被错误处理。以下通过具体的实施例和示意图对本申请提出的技术方法进行描述。请参见图1,图1为本申请实施例示出的一种配置ACL表项的方法流程图,应用于网络设备。具体执行以下步骤:步骤101:接收目标用户通过用户配置页面下发的ACL表项以及页面魔术字;其中,所述页面魔术字为目标用户在启动所述用户配置页面开始配置ACL表项的时刻,所述用户配置页面向本设备请求的内存魔术字;其中,所述内存魔术字为本设备中保存的用于标识ACL芯片中ACL表项是否发生变化的数值;所述内存魔术字在本设备在ACL芯片中完成ACL表项的配置时,基于预配置的更新策略进行更新;步骤102:比较所述页面魔术字与本设备当前保存的内存魔术字是否相同;步骤103:如果相同,在所述ACL芯片中配置所述ACL表项。在本申请中,本设备接收到目标用户下发的ACL表项以及页面魔术字,然后,本设备可以将所述页面魔术字和本设备当前保存的内存魔术字进行比较,判断所述页面魔术字和本设备当前保存的内存魔术字是否相同,如果相同,根据所述ACL表项的操作类型,在ACL芯片中对所述ACL表项进行配置。如果不相同,获取从所述目标用户启动ACL表项配置页面开始配置ACL表项的时刻,到该目标用户将配置完成的ACL表项下发至网络设备的时刻所对应的目标时间段内,本设备保存的其它用户的下发的ACL表项的操作类型,然后比较所述目标用户下发的所述ACL表项对应的操作类型与获取到的操作类型是否有冲突,如果没有冲突,在ACL芯片中对所述ACL表项进行配置。如果有冲突,获取所述目标时间段内,本设备记录的发生变化的优先级区间,以及预判将所述目标用户下发的ACL表项进一步在所述ACL芯片中进行配置后,发生变化的优先级区间。然后确定预判出的发生变化的优先级区间,与获取到的所述目标时间段内发生变化的优先级区间是否存在交集。如果不存在交集,本设备可以在所述ACL芯片中配置所述ACL表项。如果存在,本设备可以向所述目标用户的用户配置页面发送ACL表项配置失败的消息。在具体实现时,本申请提供的技术方法可以通过三个模块来实现。所述三个模块包括ACL表项配置模块、ACL表项管理模块、ACL表项存放模块。其中,所述ACL表项配置模块主要为针对ACL表项配置开发的ACL表项配置页面,用于输入所需要配置的ACL表项的参数。所述ACL表项配置页面可以是Web页面,也可以是命令行终端。所述ACL表项管理模块为网络设备的CPU中配置的逻辑程序,用于接收ACL表项模块下发的ACL表项以及ACL表项对应的操作类型等,并将所述ACL表项下发至ACL表项存放模块。所述ACL表项存放模块用于存放ACL表项,其中,所述ACL表项以列表的形式存放,当所述网络设备上的ACL功能通过软件的方式实现时,所述ACL表项存放于系统内存中。当所述网络设备上的ACL功能通过硬件的方式实现时,所述ACL表项存放于ACL芯片上。通常,选择ACL芯片来存在ACL表项,节省内存。在本申请中,所述ACL表项的存放模块为ACL芯片。其中,所述ACL表项管理模块和所述ACL表项存放模块均在网络设备中。在本申请示出的实施方式中,网络设备中保存了内存魔术字;其中,所述内存魔术字为用于标识ACL芯片中ACL表项是否发生变化的数值。每当网络设备在ACL芯片中完成ACL表项的配置时,所述内存魔术字都会基于预配置的更新策略进行更新,并记录内存魔术字发生更新的时刻。其中,所述更新策略用户可以自行制定,比如,每当网络设备在ACL芯片中完成ACL表项的配置时,所述ACL芯片中的ACL表项就会发生变化,网络设备就可以将所述内存魔术字增加1。在本申请中,对所述更新策略不进行限定。当目标用户启动用户配置页面开始配置ACL表项时,所述用户配置页面可以向网络设备中的ACL表项管理模块发送获取内存魔术字的请求。所述ACL表项管理模块接收到所述请求后,可以从本地内存中获取内存魔术字,然后将获取到的内存魔术字发送至所述目标用户的用户配置页面。当所述目标用户的用户配置页面接收到内存魔术字时,所述用户配置页面可以保存所述内存魔术字。在本申请中,保存于所述用户配置页面的内存魔术字定义为页面魔术字。当所述用户配置页面保存完所述页面魔术字时,所述用户配置页面可以记录接收到所述页面魔术字的时刻。请参见图2,图2为本申请实施例示出的用户配置页面的示意图。在申请中,当所述用户配置页面保存完所述页面魔术字后,所述目标用户可以在所述用户配置页面中,进行ACL表项的配置。所述目标用户可以在所述用户配置页面对ACL表项执行的操作包括:ACL表项的追加、ACL表项的插入、ACL表项的删除、ACL表项的移动、ACL表项的修改。所述目标用户可以在所述用户配置页面中输入配置的ACL表项ID、优先级、操作类型等。当目标用户在所述用户配置页面完成ACL表项的配置后,所述目标用户可以在所述用户配置页面中执行ACL表项完成配置的操作(比如,点击完成或者下发按钮等),触发所述用户配置页面将目标用户配置完成的所述ACL表项、所述页面魔术字、所述ACL表项对应的操作类型等数据下发至所述ACL表项管理模块。在本申请中,当所述ACL表项管理模块接收到所述目标用户的用户配置页面下发的所述ACL表项、所述页面魔术字、所述ACL表项对应的操作类型等数据时,所述ACL表项管理模块可以从本地获取网络设备当前保存的内存魔术字,然后比较接收到所述用户配置页面下发的页面魔术字,与获取到网络设备当前保存的内存魔术字是否相同。如果所述页面魔术字与所述网络设备当前保存的内存魔术字相同,说明从所述目标用户启动ACL表项配置页面开始配置ACL表项的时刻,到该目标用户将配置完成的ACL表项下发至网络设备的时刻所对应的目标时间段内,没有其它用户在ACL芯片中完成ACL表项的配置。所述ACL表项管理模块可以基于所述ACL表项对应的操作类型,在所述ACL芯片中配置所述ACL表项。在本申请中,由于当所述ACL表项管理模块在所述ACL芯片中,将接收到的ACL表项基于所述ACL表项对应的操作类型进行配置后,所述ACL表项管理模块可以保存所述ACL表项对应的操作类型,以及记录配置所述ACL表项的时刻。因此,当所述ACL表项管理模块基于所述目标用户下发的ACL表项对应的操作类型,在所述ACL芯片中配置完所述目标用户下发的ACL表项后,所述ACL表项管理模块可以记录配置所述ACL表项的时刻,并保存所述ACL表项对应的操作类型。例如,在表1所示的ACL芯片中插入ACL表项ID为f,优先级为3的一条ACL表项,假设所述ACL表项管理模块在所述ACL芯片中配置完ACL表项f的时刻为10:00,所述ACL表项就会变成表3所示,所述ACL表项管理模块可以记录并保存(10:00,插入ACL表项)。在本申请中,由于当所述ACL表项管理模块基于下发的ACL表项对应的操作类型,在所述ACL芯片中配置完所述下发的ACL表项后,所述ACL表项管理模块可以确定所述ACL芯片中优先级发生变化的ACL表项,然后记录发生变化的ACL表项的优先级区间,并记录配置所述ACL表项的时刻。因此,当所述ACL表项管理模块基于所述目标用户下发的ACL表项对应的操作类型,在所述ACL芯片中配置完所述目标用户下发的ACL表项后,所述ACL表项管理模块可以记录配置所述ACL表项的时刻,确定所述ACL芯片中优先级发生变化的ACL表项,以及记录发生变化的ACL表项的优先级区间。例如,在表1所示的ACL芯片中插入ACL表项ID为f,优先级为3的一条ACL表项,假设所述ACL表项管理模块在所述ACL芯片中配置完ACL表项f的时刻为10:00,所述ACL表项就会变成表3所示,从表1和表3可以看出,所述ACL芯片中优先级发生变化的表项为f,c,d,e,所述发生变化的ACL表项的优先级区间为[3,6]。所述ACL表项管理模块可以记录并保存(10:00,[3,6])。在本申请的实施例中,如果所述页面魔术字与所述网络设备当前保存的内存魔术字不相同,所述ACL表项管理模块可以获取所述目标时间段内,网络设备中保存的ACL表项对应的操作类型。然后,基于预配置的ACL表项对应的操作类型的冲突规则,所述ACL表项管理模块可以将所述目标用户下发的所述ACL表项对应的操作类型,与获取到的所述目标时间段内的操作类型进行匹配。其中,所述预配置的ACL表项对应的操作类型的冲突规则,见表7,表7为本申请实施例示出的ACL表项对应的操作类型的冲突规则表。表7如果所述目标用户下发的ACL表项的操作类型与获取到的所述目标时间段内的操作类型不冲突,所述ACL表项管理模块可以在所述ACL芯片中,基于所述目标用户下发的所述ACL表项对应的操作类型,配置所述目标用户下发的所述ACL表项。例如,假设所述目标用户启动所述用户配置页面开始配置ACL表项的时刻为09:59:20,所述ACL表项管理模块接收到所述目标用户下发的ACL表项为10:00:00,在09:59:20-10:00:00的时间段内,网络设备中保存了(09:59:30,修改)、(09:59:50,追加),所述目标用户下发的ACL表项所述对应的操作类型为插入。所述ACL表项管理模块可以获取09:59:20-10:00:00的时间段内,网络设备中保存的操作类型,即修改和追加,所述ACL表项管理模块会将插入分别与修改和追加进行匹配,由于插入与修改和追加均不冲突,所述ACL表项管理模块可以在所述ACL芯片中,配置所述目标用户下发的ACL表项。在本申请中,如果所述目标用户下发的ACL表项的操作类型与获取到的所述目标时间段内的操作类型冲突,所述ACL表项管理模块可以获取所述目标时间段内,网络设备中保存的发生变化的优先级区间。然后,所述ACL表项管理模块可以预判在所述ACL芯片中,配置所述目标用户下发的所述ACL表项后,所述ACL芯片中优先级发生变化的ACL表项所对应的优先级区间。所述ACL表项管理模块预判出优先级发生变化的ACL表项所对应的优先级区间后,可以确定所述预判出的发生变化的优先级区间,和所述获取到的发生变化的优先级区间是否存在交集。如果不存在交集,所述ACL表项管理模块可以在所述ACL芯片中,基于所述目标用户下发的所述ACL表项对应的操作类型,配置所述ACL表项。如果存在交集,所述ACL表项管理模块可以向所述目标用户的用户配置页面发送ACL表项配置失败的消息。例如,假设所述目标用户启动所述用户配置页面开始配置ACL表项的时刻为09:59:20,所述ACL表项管理模块接收到所述目标用户下发的ACL表项为10:00:00,在09:59:20-10:00:00的时间段内,网络设备中保存了(09:59:30,移动,[3,6])、(09:59:50,移动,[11,15])。当所述目标用户下发的ACL表项所述对应的操作类型为插入,预判出的发生变化的优先级区间为[12,100]时,由于[12,100]与[11,15]存在交集,因此,所述ACL表项管理模块可以向所述目标用户的用户配置页面发送ACL表项配置失败的消息。当所述目标用户下发的ACL表项所述对应的操作类型为插入,预判出的发生变化的优先级区间为[21,100]时,由于[21,100]与[3,6]和[11,15]均不存在交集,因此,所述ACL表项管理模块可以在所述ACL芯片中插入所述ACL表项。由以上本申请示出的技术方法可见,本申请提出了一种配置ACL表项的方法,应用于网络设备,所述网络设备中包含ACL芯片。所述方法包括:接收目标用户通过用户配置页面下发的ACL表项以及页面魔术字;其中,所述页面魔术字为目标用户在启动所述用户配置页面开始配置ACL表项的时刻,所述用户配置页面向本设备请求的内存魔术字;其中,所述内存魔术字为本设备中保存的用于标识ACL芯片中ACL表项是否发生变化的数值;所述内存魔术字在本设备在ACL芯片中完成ACL表项的配置时,基于预配置的更新策略进行更新;比较所述页面魔术字与本设备当前保存的内存魔术字是否相同;如果相同,在所述ACL芯片中配置所述ACL表项。由于在网络设备中保存了内存魔术字,其中,所述内存魔术字为用于标识所述ACL芯片中的ACL表项是否发生变化的数值。每当网络设备在ACL芯片中对ACL表项完成配置时,所述内存魔术字就会发生更新。当目标用户启动用户配置页面开始配置ACL表项时,所述用户配置页面可以向网络设备请求网络设备当时保存的内存魔术字,并保存于所述用户配置页面,作为页面魔术字。当目标用户完成ACL表项的配置时,所述用户配置页面可以将完成配置的ACL表项和页面魔术字下发至本网络设备,通过比较页面魔术字和网络设备当前保存的内存魔术字是否相同,来判断从所述目标用户启动ACL表项配置页面开始配置ACL表项的时刻,到该目标用户将配置完成的ACL表项下发至网络设备的时刻所对应的时间段内,是否有其它用户在ACL芯片中已经完成了ACL表项的配置。只有在所述页面魔术字和网络设备当前保存的内存魔术字相同的时候,即从所述目标用户启动ACL表项配置页面开始配置ACL表项的时刻,到该目标用户将配置完成的ACL表项下发至网络设备的时刻的这段时间内,只有所述目标用户完成ACL表项的配置,网络设备才会基于所述目标用户下发的ACL表项对应的操作类型,在ACL芯片中对所述ACL表项进行配置。因此,可以保证所述ACL芯片中ACL表项的分布情况和所述目标用户预想的分布情况一样,从而可以避免报文匹配到错误的ACL表项而被错误处理。与前述一种配置ACL表项的方法的实施例相对应,本申请还提供了一种配置ACL表项的装置的实施例。本申请一种配置ACL表项的装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请一种配置ACL表项的装置所在网络设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据该配置ACL表项的实际功能,还可以包括其他硬件,对此不再赘述。请参见图4,图4为本申请实施例示例性示出的一种配置ACL表项的装置,应用于网络设备,所述装置包括:接收单元410,比较单元420,配置单元430。其中,所述接收单元410,用于接收目标用户通过用户配置页面下发的ACL表项以及页面魔术字;其中,所述页面魔术字为目标用户在启动所述用户配置页面开始配置ACL表项的时刻,所述用户配置页面向本设备请求的内存魔术字;其中,所述内存魔术字为本设备中保存的用于标识ACL芯片中ACL表项是否发生变化的数值;所述内存魔术字在本设备在ACL芯片中完成ACL表项的配置时,基于预配置的更新策略进行更新;所述比较单元420,用于比较所述页面魔术字与本设备当前保存的内存魔术字是否相同;所述配置单元430,用于如果相同,在所述ACL芯片中配置所述ACL表项。在本申请中,所述装置还包括:保存单元,用于当本设备在ACL芯片中将接收到的ACL表项配置完成后,记录配置所述ACL表项的时刻,并保存所述ACL表项对应的操作类型。记录单元,用于当本设备在ACL芯片中将接收到的ACL表项配置完成后,确定所述ACL芯片中优先级发生变化的ACL表项,并记录发生变化的优先级区间。获取单元,用于如果所述页面魔术字与本设备当前保存的内存魔术字不相同,获取所述目标用户从启动所述用户配置页面开始配置ACL表项的时刻,至将配置完成的ACL表项下发至本设备的时刻对应的目标时间段内,本地保存的其它用户通过所述用户配置页面下发的ACL表项对应的操作类型;判断单元,用于判断获取到的所述操作类型,与所述目标用户下发的ACL表项对应的操作类型是否冲突;其中,所述配置单元430,还用于如果不冲突,在所述ACL芯片中配置所述ACL表项。在本申请中,当获取到的所述操作类型,与所述目标用户下发的ACL表项对应的操作类型冲突时,所述装置还包括:所述获取单元,还用于如果冲突,获取在所述目标时间段内,本地记录的发生变化的优先级区间;预判单元,用于预判将所述目标用户下发的所述ACL表项进一步在所述ACL芯片中配置后,所述ACL芯片中发生变化的优先级区间;确定单元,用于确定预判出的所述发生变化的优先级区间,与获取到的所述目标时间段内发生变化的优先级区间是否存在交集;所述配置单元430,还用于如果不存在交集,在所述ACL芯片中配置所述ACL表项;发送单元,用于如果存在交集,向所述用户配置页面发送配置ACL表项失败的消息。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1