具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1为本申请根据一示例性实施例示出的一种配置切换方法的实施例流程图,该实施例可以应用在网络设备上,该网络设备上包含有各种配置,例如,ACL(Access ControlList,访问控制列表)配置、负载均衡配置等,并且每条配置均对应有一个策略标识。如图1所示,该实施例包括以下步骤:
步骤101:接收配置修改请求,该配置修改请求携带有新配置信息和策略标识。
当需要修改某一配置时,网络设备会接收到来自客户端的配置修改请求,并且该配置修改请求中可以携带有新配置信息和需要修改的配置对应的策略标识。
其中,新配置信息包括需要修改的配置项,例如,ACL配置通常包含五元组信息和动作,动作可以包含阻断、允许通过以及限速等,新配置信息可以是动作,也可以是五元组信息,也可以是五元组信息与动作的结合。该策略标识可以数字或字符,也可以是数字与字符的组合,在此并不限定。
步骤102:获取该策略标识对应的模数字,根据该模数字,按照第一预设规则获取空闲存储空间,并按照第二预设规则获取当前可以使用的存储空间;其中,该空闲存储空间和当前可以使用的存储空间中存储有策略标识对应的配置,在接收到业务数据时,利用该当前可以使用的存储空间存储的配置处理业务数据。
在获取该策略标识对应的模数字之前,网络设备可以预先配置策略标识与模数字对应关系表,即为该策略标识配置模数字,并将该模数字设置为预设值,然后将该策略标识与该模数字添加到策略标识与模数字对应关系表中。
其中,该模数字(magic)可以为数字,在初始化时,可以设置为预设值,例如,该预设值可以为0,即magic=0。
针对获取该策略标识对应的模数字的过程,网络设备可以从预先配置的策略标识与模数字对应关系表中,获取该策略标识对应的模数字。
在根据该模数字,按照第一预设规则获取空闲存储空间之前,网络设备可以为该策略标识对应的配置创建N份存储空间,N大于1,并将该配置分别存储到每份存储空间中,然后为该策略标识创建一个对应的数组,并将N份存储空间的地址分别添加到该数组的每个元素中,该数组包含N个元素。
其中,为了保证每次在修改配置时,有空闲配置供修改,有当前使用的配置供处理业务数据使用,N需要大于1,即网络设备上存储有N份同一条配置。并且存储该配置的存储空间的地址均在一个数组中,例如,ACL配置的策略标识为A1,N=2,对应的数组为a1,a1包含2个数组元素,即元素a1[0]=存储空间0的地址,元素a1[1]=存储空间1的地址。
针对根据该模数字,按照第一预设规则获取空闲存储空间的过程,网络设备可以先确定预设数值,该预设数值为大于零小于N的整数,然后根据N、模数字以及该预设数值获得该策略标识对应的数组下标,并从数组下标对应的数组元素中获取存储空间的地址,并将该存储空间的地址对应的存储空间确定为空闲存储空间。
针对确定预设数值的过程,网络设备可以为该配置修改请求选取一个未使用的预设数值。
其中,为了避免多个客户端同时修改配置的情况,可以为每个客户端分配一个预设数值,网络设备在创建N份存储空间之后,预设数值可以取1、2……N-1中任意一个数值,而每个数值只能给一个客户端的配置修改请求使用,因此网络设备只能为N-1个客户端的配置修改请求分配预设数值,例如,网络设备创建了3份存储空间,那么最多有2个客户端(客户端1和客户端2)可以同时修改配置,网络设备在同时接收到来自两个客户端的配置修改请求时,可以为两个配置修改请求分配两个不同的预设数值,客户端1对应的预设数值为1,客户端2对应的预设数值为2。
针对根据N、模数字以及该预设数值获得该策略标识对应的数组下标的过程,具体计算公式如下:
数组下标=(magic+m)%N
其中,m为预设数值,%为求余,例如,网络设备同时接收到2个客户端的修改配置请求,N为3,并且为客户端1选取的预设数值m为1,为客户端2选取的预设数值m为2,假设magic为0,那么两个客户端的修改配置请求对应的数组下标分别为(0+1)%3=1和(0+2)%3=2,对应的数组元素分别为a1[1]=存储空间1的地址和a1[2]=存储空间2的地址,存储空间1的地址对应的存储空间为客户端1的配置修改请求对应的空闲存储空间,存储空间2的地址对应的存储空间为客户端2的配置修改请求对应的空闲存储空间。
进一步地,网络设备在接收到业务数据时,可以根据该模数字,按照第二预设规则获取当前可以使用的存储空间,并利用当前可以使用的存储空间存储的配置处理业务数据。
针对根据该模数字,按照第二预设规则获取当前可以使用的存储空间的过程,网络设备可以根据模数字和N获得策略标识对应的数组下标,并从数组下标对应的数组元素中获取存储空间的地址,并将该存储空间的地址对应的存储空间确定为当前可以使用的存储空间。
根据模数字和N获得数组下标的具体公式如下:
数组下标=magic%N
其中,%也为求余,例如,N为2,magic为0,数组下标为0%2=0,对应的数组元素为a1[0]=存储空间0的地址,存储空间0的地址上存储的配置为当前可以使用的配置。
基于步骤102的描述可知,通过为配置创建多份存储空间,并为该配置设置模数字,利用模数字,并按照第一预设规则和第二预设规则,分别可以得到空闲存储空间和当前可以使用的存储空间,从而在修改配置时,可以利用当前可以使用的存储空间存储的配置处理业务数据,保证了业务正常运行。此外,创建的多份存储空间可以供多个客户端同时修改配置。
步骤103:利用该新配置信息修改空闲存储空间中存储的配置,并得到新的配置。
如步骤101所述,例如,对ACL配置中的动作进行修改,新配置信息为将阻断全部修改为允许通过,网络设备可以将空闲存储空间中存储的ACL配置的动作项中的阻断修改为允许通过。
如步骤102所述,例如,N为2,m为1,在利用新配置信息修改配置之后,存储空间1的地址上存储的配置为新的配置,存储空间0的地址上存储的配置仍然为旧的配置。
步骤104:根据第三预设规则修改模数字,在接收到业务数据时,利用修改后的模数字获取新的配置,并利用该新的配置处理业务数据。
针对根据第三预设规则修改模数字的过程,网络设备可以将该模数字与该预设数值之和确定为修改后的模数字。
针对多个客户端同时修改配置的情况,网络设备是按照顺序修改模数字的,该顺序可以根据每个客户端的预设数值大小进行确定,也可以根据每个客户端的IP地址的大小进行确定,这里并不作限定。例如,如步骤102所述,针对客户端1和客户端2对配置的修改,网络设备是按照顺序修改模数字的,即首先利用客户端1的预设数值m=1修改模数字magic,得到0+1=1,然后再利用客户端2的预设数值m=2修改模数字magic,得到1+2=3,则修改后的模数字magic为3。
针对利用修改后的模数字获取新的配置的过程,如步骤102中针对根据该模数字,按照第二预设规则获取当前可以使用的存储空间的过程所述,网络设备根据修改后的模数字和N获得策略标识对应的数组下标,并从该数组下标对应的数组元素中获取存储空间的地址,并从该存储空间的地址对应的存储空间中获取新的配置。例如,修改后的模数字magic为1,N=2,数组下标为1%2=1,对应的数组元素为a1[1]=存储空间1的地址,存储空间1的地址上存储的配置为新的配置。
结合步骤102至步骤104的描述,下面以一个例子进行说明:
初始化时,模数字magic=0,预设数值m=1,N=2,数组a1包含2个数组元素a1[0]和a1[1],a1[0]中记录有存储空间0的地址,a1[1]中记录有存储空间1的地址,存储空间0的地址和存储空间1的地址均存储有配置1。当修改配置1时,利用(magic+m)%N的公式,可以得到(0+1)%2=1,即空闲存储空间的地址为a1[1]中记录的地址,利用magic%N的公式,可以得到0%2=0,即当前可以使用的存储空间的地址为a1[0]中记录的地址,在修改完配置1之后,模数字magic=0+1=1;当再次修改配置1时,同样利用(magic+m)%N的公式,可以得到(1+1)%2=0,即空闲存储空间的地址为a1[0]中记录的地址,利用magic%N的公式,可以得到1%2=1,即当前可以使用的存储空间的地址为a1[1]中记录的地址,在修改完配置1之后,模数字magic=1+1=2。由此可知,每修改一次配置,空闲存储空间的地址在a1[0]和a1[1]之间依次轮询。
由上述实施例可知,网络设备在接收到携带有新配置信息和策略标识的配置修改请求之后,获取策略标识对应的模数字,并根据该模数字,按照第一预设规则获取空闲存储空间,并按照第二预设规则获取当前可以使用的存储空间;该空闲存储空间和当前可以使用的存储空间中存储有策略标识对应的配置,在接收到业务数据时,利用当前可以使用的存储空间存储的配置处理业务数据;利用新配置信息修改空闲存储空间中存储的配置,并得到新的配置,并根据第三预设规则修改模数字,在接收到业务数据时,利用修改后的模数字获取新的配置,并利用新的配置处理该业务数据。基于上述实现方式,通过为该配置设置的模数字,并按照第一预设规则和第二预设规则可以分别得到空闲存储空间和当前可以使用的存储空间,从而可以利用空闲存储空间修改配置,且在修改配置时,对于接收到的业务数据可以利用当前可以使用的存储空间中的配置进行处理,而不需要对该业务数据采用加锁处理,影响网络设备的性能,保证了业务的正常运行。此外,在修改配置完成之后,按照第三预设规则修改模数字,以使接收到的业务数据能够利用新的配置处理,从而完成配置的切换。
与前述配置切换方法的实施例相对应,本申请还提供了配置切换装置的实施例。
本申请配置切换装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在**的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请根据一示例性实施例示出的一种网络设备的硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
图3为本申请根据一示例性实施例示出的一种配置切换装置的实施例结构图,该实施例可以应用在网络设备上,如图3所示,该装置包括:接收单元310、获取单元320、切换单元330。
其中,接收单元310,用于接收配置修改请求,所述配置修改请求携带有新配置信息和策略标识;
获取单元320,用于获取所述策略标识对应的模数字,根据所述模数字,按照第一预设规则获取空闲存储空间,并按照第二预设规则获取当前可以使用的存储空间;其中,所述空闲存储空间和所述当前可以使用的存储空间中存储有所述策略标识对应的配置,在接收到业务数据时,利用所述当前可以使用的存储空间存储的配置处理业务数据;
切换单元330,用于利用所述新配置信息修改所述空闲存储空间中存储的配置,并得到新的配置,并根据第三预设规则修改所述模数字,在接收到业务数据时,利用修改后的模数字获取所述新的配置,并利用所述新的配置处理所述业务数据。
在一个可选的实现方式中,所述获取单元320,具体用于在获取所述策略标识对应的模数字的过程中,从预先配置的策略标识与模数字对应关系表中,获取所述策略标识对应的模数字;
所述装置还包括(图3中未示出):
配置单元,具体用于为所述策略标识配置模数字,并将所述模数字设置为预设值;将所述策略标识与所述模数字添加到所述策略标识与模数字对应关系表中。
在另一个可选的实现方式中,所述装置还包括(图3中未示出):
创建单元,具体用于在所述获取单元320根据所述模数字,按照第一预设规则获取空闲存储空间之前为所述策略标识对应的配置创建N份存储空间,并将该配置分别存储到每份存储空间中;其中,N大于1;为所述策略标识创建一个对应的数组,并将所述N份存储空间的地址分别添加到所述数组的每个元素中;其中,所述数组包含N个元素。
在另一个可选的实现方式中,所述获取单元320,具体用于在根据所述模数字,按照第一预设规则获取空闲存储空间的过程中,确定预设数值,所述预设数值为大于零小于N的整数;根据所述N、所述模数字以及所述预设数值获得所述策略标识对应的数组下标;从所述数组下标对应的数组元素中获取存储空间的地址;将所述存储空间的地址对应的存储空间确定为空闲存储空间。
在另一个可选的实现方式中,所述获取单元320,具体用于在按照第二预设规则获取当前可以使用的存储空间的过程中,根据所述模数字和所述N获得所述策略标识对应的数组下标;从所述数组下标对应的数组元素中获取存储空间的地址;将所述存储空间的地址对应的存储空间确定为当前可以使用的存储空间。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可知,网络设备在接收到携带有新配置信息和策略标识的配置修改请求之后,获取策略标识对应的模数字,并根据该模数字,按照第一预设规则获取空闲存储空间,并按照第二预设规则获取当前可以使用的存储空间;该空闲存储空间和当前可以使用的存储空间中存储有策略标识对应的配置,在接收到业务数据时,利用当前可以使用的存储空间存储的配置处理业务数据;利用新配置信息修改空闲存储空间中存储的配置,并得到新的配置,并根据第三预设规则修改模数字,在接收到业务数据时,利用修改后的模数字获取新的配置,并利用新的配置处理该业务数据。基于上述实现方式,通过为该配置设置的模数字,并按照第一预设规则和第二预设规则可以分别得到空闲存储空间和当前可以使用的存储空间,从而可以利用空闲存储空间修改配置,且在修改配置时,对于接收到的业务数据可以利用当前可以使用的存储空间中的配置进行处理,而不需要对该业务数据采用加锁处理,影响网络设备的性能,保证了业务的正常运行。此外,在修改配置完成之后,按照第三预设规则修改模数字,以使接收到的业务数据能够利用新的配置处理,从而完成配置的切换。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。