ACL下发方法及装置与流程

文档序号:25868312发布日期:2021-07-13 16:29阅读:88来源:国知局
ACL下发方法及装置与流程

本说明书涉及计算机应用技术领域,尤其涉及一种acl下发方法及装置。



背景技术:

机框式设备一般可以通过若干个交换芯片接收其他设备发送的报文,这些接收报文的交换芯片一般位于机框式设备的业务板卡或交换板卡上。交换芯片接收报文后,可以通过查表将接收的报文丢弃或转发出去,比如送至业务板卡的中央处理器(centralprocessingunit,cpu),以实现对报文的处理。其中,交换芯片按照板卡业务需求处理报文的过程称为受理报文。

有时候需要限制该机框式设备单位时间内受理的目标类型报文(包含指定特征的报文)的报文量,针对单位时间内超过限制的上限值的报文,需要进行丢弃,这称之为对报文进行限速。

然而,目前缺少一种针对目标类型报文的有效的限速方法。



技术实现要素:

为克服相关技术中存在的缺少针对目标类型报文的有效的限速方法问题,本说明书提供了acl下发方法及装置。

根据本说明书实施例的第一方面,提供一种acl下发方法,对于发往机框式设备的任一具有指定特征的报文,所述机框式设备通过交换芯片序列中的一个交换芯片接收该目标类型报文;所述交换芯片序列中的每个交换芯片位于所述机框式设备的业务板卡或交换板卡;所述交换芯片序列包括n个交换芯片,n≥2;

所述方法应用于所述机框式设备的主控板卡,包括:

获取用户指定的上限值;所述上限值用于限定单位时间内所述机框式设备受理的具有指定特征的报文的报文量上限;

将所述上限值拆分为n个阈值并分别分配给所述交换芯片序列中每个交换芯片;

向所述交换芯片序列中的第1个交换芯片下发acl,该acl的匹配条件包括报文具有指定特征;该acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第2个交换芯片进行受理;

向第i个交换芯片分别下发acl,i=2,…,n;该acl的匹配条件包括报文具有指定特征,且通过外部口接收到该报文;该acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第1个交换芯片进行受理;

向第j个交换芯片分别下发其他acl,j=2,…,n-1;该其他acl的匹配条件包括报文具有指定特征,且通过内部口接收到该报文;该其他acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第j+1个交换芯片进行受理;

向第n个交换芯片下发其他acl;该其他acl的匹配条件包括报文具有指定特征,且通过内部口接收到该报文;该其他acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文丢弃。

根据本说明书实施例的第二方面,提供一种报文处理方法,应用于机框式设备交换芯片序列的每一交换芯片,所述方法包括:

该交换芯片接收目标类型报文;

判断接收的报文是否包含任一acl的匹配特征;所述acl是通过本说明书实施例第一方面的acl下发方法所下发的acl;

若包含任一acl的匹配特征,则按该acl的策略对报文进行处理。

根据本说明书实施例的第三方面,提供一种acl下发装置,对于发往机框式设备的任一具有指定特征的报文,所述机框式设备通过交换芯片序列中的一个交换芯片接收该目标类型报文;所述交换芯片序列中的每个交换芯片位于所述机框式设备的业务板卡或交换板卡;所述交换芯片序列包括n个交换芯片,n≥2;

所述装置应用于所述机框式设备的主控板卡,包括:

上限值获取模块,用于获取用户指定的上限值;所述上限值用于限定单位时间内所述机框式设备受理的具有指定特征的报文的报文量上限;

阈值拆分模块,用于将所述上限值拆分为n个阈值并分别分配给所述交换芯片序列中每个交换芯片;

acl下发模块,用于向所述交换芯片序列中的第1个交换芯片下发acl,该acl的匹配条件包括报文具有指定特征;该acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第2个交换芯片进行受理;向第i个交换芯片分别下发acl,i=2,…,n;该acl的匹配条件包括报文具有指定特征,且通过外部口接收到该报文;该acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第1个交换芯片进行受理;向第j个交换芯片分别下发其他acl,j=2,…,n-1;该其他acl的匹配条件包括报文具有指定特征,且通过内部口接收到该报文;该其他acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第j+1个交换芯片进行受理;向第n个交换芯片下发其他acl;该其他acl的匹配条件包括报文具有指定特征,且通过内部口接收到该报文;该其他acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文丢弃。

根据本说明书实施例第四方面,提供一种报文处理装置,应用于机框式设备交换芯片序列的每一交换芯片,包括:

报文接收模块,用于该交换芯片接收目标类型报文;

acl匹配模块,用于判断接收的报文是否包含任一acl的匹配特征;所述acl是通过本说明书实施例第一方面的acl下发方法所下发的acl;

报文处理模块,用于若包含任一acl的匹配特征,则按该acl的策略对报文进行处理。

根据本说明书实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本说明书实施例第一方面所述的acl下发方法。

根据本说明书实施例的第六方面,提供一种主控板卡,所述主控板卡包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本说明书实施例第一方面所述的acl下发方法。

本说明书一个或多个实施例中,机框式设备的主控板卡获取针对目标类型报文的上限值,并将上限值拆分为n个阈值分别分配各n个交换芯片,以生成并向每个交换芯片下发一个或两个acl,这些acl使得任一交换芯片达到阈值后,该交换芯片接收的目标类型报文也可以通过重定向使得其他未达到阈值的交换芯片受理该报文,即报文进设备后,只有交换芯片序列中所有交换芯片均达到各自阈值后才会被丢弃,从而使得多个交换芯片共享上限值,达到了较好的限速效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本说明书根据一示例性实施例示出的一种acl下发方法的流程图。

图2是本说明书根据一示例性实施例示出的一种报文处理方法的流程图。

图3是本说明书根据一示例性实施例示出的一种报文转发路径示意图。

图4是本说明书根据一示例性实施例示出的一种acl下发装置的框图。

图5是本说明书根据一示例性实施例示出的一种报文处理装置的框图。

图6是本说明书根据一示例性实施例示出的一种acl下发装置所在计算机设备的一种硬件结构图。

具体实施方式

机框式设备(也称为框式网络设备)由多个板卡构成,用于复杂的报文处理或转发,一般可以作为服务器、交换机、流量审计设备等等。机框式设备的板卡包括多种板卡,比如主控板卡、交换板卡和业务板卡等等。其中,主控板卡用于管理整个机框式设备,交换板卡用于转发报文,业务板卡用于报文的业务处理。交换板卡和业务板卡上一般都部署有交换芯片,交换芯片与板卡上的接口相连,通过相连的接口实现和其他设备或者其他板卡通信。板卡上的接口分为内部口和外部口(外部口也称之为面板口),外部口和外部其他设备相连,实现设备和外部其他设备的通信;内部口和板间通道(背板或者网板)相连,实现该板卡和其他板卡的通信。

访问控制列表(accesscontrollist,acl)是一种流量访问控制技术,是包括若干个指定的匹配条件(一般为报文的五元组)和指定的执行动作的表项,通过交换芯片的硬件acl(也称之为芯片acl),可以实现对于满足匹配条件的报文,进行指定的执行动作的处理,对于该交换芯片接收的不符合任一acl的匹配条件的报文,将根据当前板卡的功能正常受理该报文。此外,硬件acl也能实现限速,也就是限制单位时间内受理的满足匹配条件的报文的报文量(数量或者字节数),硬件acl的限速一般是通过令牌桶机制实现的。具体而言,令牌桶中装有若干个令牌,每隔固定周期会更新令牌桶内的令牌数量,每次更新后令牌桶内的令牌数量为acl中的限速上限值;当目标类型报文进入交换芯片,根据报文中携带的特征匹配到带有限速动作的acl后,交换芯片会去该acl对应的令牌桶中取出和该报文大小或数量等量的令牌,能取出令牌的情况下,交换芯片会在自身存储空间内将该报文会被标记为绿色,无法取出令牌的情况下,交换芯片会在自身存储空间内将该报文会被标记为红色。标记为绿色的报文会被交换芯片正常受理,标记为红色的报文会被丢弃,从而实现了交换芯片对目标类型报文的限速。

如果想要限制单位时间内整个机框式设备受理的目标类型报文(具有指定特征的报文)的报文量,可以通过上述的硬件acl的限速方法实现。但是,首先由于上述硬件acl的限速方法是由硬件实现,多个交换芯片相互独立,且红色、绿色等标记并不是标记在报文上,而是在交换芯片内部进行记录,因此,不同的交换芯片之间无法共享同一个令牌桶;其次,实际的网络环境中,一般接收目标类型报文的交换芯片不止一个,通过acl进行限速需要考虑到这种情况。

在接收目标类型报文的交换芯片不止一个的情况下,为了实现通过硬件acl对目标类型报文进行限速,一般会给所有接收该目标类型报文的交换芯片集合(本说明书中称之为交换芯片序列)均下发一个针对目标类型报文的acl,以实现对目标类型的报文的限速。在用户设置机框式设备针对目标类型报文的限速上限值为x的情况下,一般会为包括n个交换芯片的交换芯片序列中每个交换芯片均下发针对目标类型报文限速阈值为x的acl,或者均下发针对目标类型报文限速阈值为x/n的acl。

但是上述下发的acl会带来一些问题:如果为交换芯片序列中每个交换芯片均下发了针对目标类型报文限速阈值为x的acl,那么在报文的报文量较大,且多个交换芯片接收的报文量较为平均的情况下,实际上达到的最大限速上限值为n倍的x;如果为交换芯片序列中每个交换芯片均下发了针对目标类型报文限速阈值为x/n的acl,那么在多个交换芯片接收的目标类型报文的报文量不均衡的情况下,实际上达到的限速值仅为x/n,远小于x。

相关技术中,为了解决上述问题,可以通过尽量使得目标类型的报文从同一交换芯片的接口输入解决,但是这种方法无法应用在需要动态配置限速策略的场景中,在需要为其他目标类型报文配置限速策略时,可能仍然需要调整接口和上游设备的连接关系。此外,还可在上游设备设置负载分担,使得报文流可以尽量均衡的从各个交换芯片进入;但是这种负载分担方法一般只是将流向机框式设备的所有报文进行负载分担,并不能针对目标类型报文进行负载分担,这就可能导致最终交换芯片序列中每个交换芯片接收到的目标类型报文仍然不均衡;也可能机框式设备的用户没有操作权限,导致用户无法针对上游设备设置负载分担。

可见,在交换芯片序列中交换芯片数量大于1的情况下,相关技术中缺少针对目标类型报文的有效的限速方法。

本说明书一个或多个实施例中,机框式设备的主控板卡获取针对目标类型报文的上限值,并将上限值拆分为n个阈值分别分配各n个交换芯片,以生成并向每个交换芯片下发一个或两个acl,这些acl使得任一交换芯片达到阈值后,该交换芯片接收的目标类型报文也可以通过重定向使得其他未达到阈值的交换芯片受理该报文,即报文进设备后,只有交换芯片序列中所有交换芯片均达到各自阈值后才会被丢弃,从而使得多个交换芯片共享上限值,达到了较好的限速效果。

此外,报文在交换芯片之间转发所耗费的时间为纳秒级,即使报文需要转发多次才能拿到令牌,该方法也不会造成延时。且令牌桶的更新周期为毫秒级,即使报文转发多次才拿到令牌,该方法也不会使得本该当前令牌桶的更新周期内丢弃的报文,占用下一个令牌桶更新周期的令牌。

接下来对本说明书实施例进行详细说明。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

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

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

本说明书公开了一种acl下发方法,对于发往机框式设备的任一具有指定特征的报文,所述机框式设备通过交换芯片序列中的一个交换芯片接收该目标类型报文;所述交换芯片序列中的每个交换芯片位于所述机框式设备的业务板卡或交换板卡;所述交换芯片序列包括n个交换芯片,n≥2;所述方法应用于所述机框式设备的主控板卡。

如图1所示,图1是本说明书根据一示例性实施例示出的一种acl下发方法的流程图,包括:

步骤102,获取用户指定的上限值;所述上限值用于限定单位时间内所述机框式设备受理的具有指定特征的报文的报文量上限。

其中,用户指定的上限值可以是预先存储于机框式设备主控板卡的存储介质中,也可以是用户输入的上限值。其中,在机框式设备中预先存储有目标类型报文和对应的交换芯片序列的对应关系时,用户指定时,可以只指定目标类型报文的指定特征(一般为指定五元组)和机框式设备针对该目标类型报文的上限值;在机框式设备中没有预先存储目标类型报文和对应的交换芯片序列的对应关系时,用户指定的也可以是目标类型报文的指定特征,机框式设备针对该目标类型报文的上限值,以及交换芯片序列中每个交换芯片标识;或者,为了准确确认交换芯片序列中接收目标类型报文的接口的带宽和,用户指定的还可以是,目标类型报文的指定特征,机框式设备针对该目标类型报文的上限值,交换芯片序列中每个交换芯片标识,以及每个交换芯片会流经该目标类型报文的外部口标识。其中,用户指定目标类型报文的指定特征,可以是用户通过字符串输入指定特征,也可以是从若干种可选的报文中选择一种;用户指定交换芯片标识,可以是用户通过字符串输入交换芯片标识,也可以是用户从若干个可以选择的交换芯片中选择至少两个;用户指定每个交换芯片的外部口标识,可以是用户通过字符串输入每个交换芯片的外部口标识,也可以是用户从若干个可以选择的外部口中选择至少一个。

目类型报文和对应的交换芯片序列的对应关系,一般是通过每个接口连接的上游设备获得的。在一种场景中,该机框式设备可以是用于出租的服务器或者交换机,租借方一般通过租借接口的方式来租借该机框式设备的带宽或处理能力,换言之每个接口所连接的设备的ip地址是已知的,那么在限定具有指定特征的报文时,就可以根据连接方式来知道这些指定特征(一般是五元组)的报文的来源。这种情况下,需要限速的理由可以是,机框式设备的运作方需要根据每个租借方支付的带宽费用来限制不同租借方占用的带宽。

此外,对于用户和机框式设备的交互界面来说,由于重定向动作和限速动作的处理逻辑是冲突的,该交互界面是不允许用户同时针对目标类型报文输入重定向动作和限速的动作的,因此用户输入的时候,仅仅是输入针对目标类型报文的限速的上限值,而生成带有重定向动作的acl的过程,是机框式设备的主控板卡内部执行的,该生成和下发过程对用户来说不可见,这种方法降低了用户的操作成本。

步骤104,将所述上限值拆分为n个阈值并分别分配给所述交换芯片序列中每个交换芯片。

其中,在拆分的每个阈值不大于每个交换芯片接收目标类型报文的接口的总带宽的情况下,拆分阈值可以是将上限值拆分为n个随机值,也可以是将上限值平均分为n份。此外,为了达到更优的限速效果,拆分阈值可以是按照带宽比例给每个交换芯片分配阈值。具体而言,该步骤可以为:确定交换芯片序列中接收目标类型报文的外部口的带宽总和;针对交换芯片序列中每个交换芯片:确定该交换芯片中接收目标类型报文的外部口的带宽和;根据该确定的带宽和占带宽总和的比例,及用户指定的上限值,生成分配给该交换芯片的阈值;其中,该交换芯片对应的阈值占上限值的比例,与确定的该交换芯片的带宽和占带宽总和的比例相同。

此外,交换芯片序列中的交换芯片的顺序,可以是按照交换芯片的位置来排序,比如板卡槽位1的编号为1的交换芯片,是第1个交换芯片,而板卡槽位2的编号为2的交换芯片,是第2个交换芯片,板卡槽位2编号为3的交换芯片是第3个交换芯片,以此类推;也可是随机生成的排序;此外,为了尽可能减少报文重定向的转发量,可以将交换芯片按照阈值从大到小排序,换言之,交换芯片序列中,第k个交换芯片对应的阈值,不小于第k+1个交换芯片对应的阈值,其中,k=1,……n-1。

步骤106,向所述交换芯片序列中的第1个交换芯片下发acl,该acl的匹配条件包括报文具有指定特征;该acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第2个交换芯片进行受理。

步骤108,向第i个交换芯片分别下发acl,i=2,…,n;该acl的匹配条件包括报文具有指定特征,且通过外部口接收到该报文;该acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第1个交换芯片进行受理;

步骤110,向第j个交换芯片分别下发其他acl;该其他acl的匹配条件包括报文具有指定特征,且通过内部口接收到该报文;该其他acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第j+1个交换芯片进行受理;其中,j=2,…,n-1。

步骤112,向第n个交换芯片下发其他acl;该其他acl的匹配条件包括报文具有指定特征,且通过内部口接收到该报文;该其他acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文丢弃。

接下来将对步骤106-步骤112进行统一说明。

其中,本说明书实施例中不限制步骤106-步骤112的执行顺序,换言之,可以先下发第n个交换芯片的acl,也可以先下发第1个交换芯片的acl,也可以先下发中间任一交换芯片的acl。此外,本说明书实施例中,下发的acl可以是在下发前预先生成的,也可以是在下发前生成的,换言之,可以先统一生成所有acl,再向交换芯片逐个下发,也可以在需要下发第1个交换芯片的acl时,生成第1个交换芯片的acl,本说明书在此不做限制。

在多个交换芯片的acl无法共用一个令牌桶的情况下,为了使得多个交换芯片可以共同对目标类型报文进行限速,并使得限速值尽可能与用户设置的上限值接近,考虑采用循环匹配思想,使得任一交换芯片接收的报文,在该交换芯片无法受理的情况下,可以由其他可以受理的交换芯片来受理,只有所有交换芯片受理的目标类型报文都达到阈值的情况下,才会把该交换芯片接收的报文丢弃。此外,考虑到限速需要达到将超过限速上限值的报文丢弃,换言之,在目标类型报文已经途径所有交换芯片而并没有被受理的情况下,需要将该报文丢弃。

根据上述考虑,本说明书实施例中,主控板卡下发若干个acl,使得第2个至第n个交换芯片通过外部口接收的领不到令牌的目标类型的报文,可以转发至第1个交换芯片,第1个交换芯片接收的领不到令牌的目标类型的报文,可以转发至第2个交换芯片,第2个交换芯片通过内部口接收的领不到令牌的目标类型的报文,可以转发至第3个交换芯片,以此类推,第n个交换芯片丢弃通过内部口接收的领不到令牌的目标类型的报文,这样子实现了循环匹配的限速过程,使得只有目标类型报文在交换芯片序列中的所有交换芯片中都领不到令牌,该报文才会被丢弃。其中,为了使得限速值为用户设置的上限值,针对任一一个有两个针对目标类型报文的acl的交换芯片,这两个acl共用同一个令牌桶。根据如上思路,得到了步骤106-步骤112所下发的各个acl。

此外,本说明书实施例公开的方法中,可以实现较好的时效性,换言之,由于报文在交换芯片之间转发所耗费的时间为纳秒级,而令牌桶更新周期为毫秒级,即使报文转发多次才拿到令牌,该方法也不会使得本该当前令牌桶的更新周期内丢弃的报文,占用下一个令牌桶更新周期的令牌。且报文在交换芯片之间转发所耗费的时间为纳秒级,即使报文需要转发多次才能拿到令牌,该方法也不会造成延时。

其中,将报文发送给其他交换芯片进行受理的过程本说明书中称为重定向,重定向的过程需要使用总线通信协议,比如higig协议。higig协议是机框式设备内部的多个交换芯片之间用于携带额外信息所使用的协议,higig报文头部字段仅存在于机框式设备内部,且每次交换芯片向其他交换芯片发送报文时higig报文头部都是重新填写的。也就是说,交换芯片从外部口接收和发送的报文不会携带higig报文头部;交换芯片从内部口接收的报文中只会有一个higig报文头部,不会携带该报文之前经过的其他交换芯片填写的higig报文头部。通过higig协议实现报文重定向的过程是,发送报文的交换芯片为该报文封装higig报文头部,然后通过该交换芯片的内部口将封装了higig头部的报文发送出去。

进一步地,考虑到在实际应用中,机框式设备的各个外部口连接了不同的设备,每个设备可以转发到的目的地不同,因此,从第1个交换芯片进入的报文可能会需要从其他交换芯片的接口输出,换言之,被受理的目标类型报文仍有可能被交换芯片序列中的其他交换芯片的内部口接收,这样会使得这些报文与重定向的报文产生冲突,导致这些报文被二次限速,在这些报文数量较多时,可能会使得机框式设备限速值达不到用户设置的上限值。

为了解决上述可能存在的问题,本说明书实施例中,为重定向过的报文增加重定向标记,以使这些未被受理的重定向的报文,与被受理了的报文区分开来。为了实现上述目的,在报文第一次被重定向时,为报文增加重定向标记;在匹配条件包括通过内部口接收到该报文的acl中,添加报文具有重定向标记的匹配条件;此外,针对第1个交换芯片这个特殊的交换芯片,将原本匹配条件中没有报文接口的acl,拆分成针对外部口和内部口的acl。此外,考虑到每次交换芯片转发报文时,higig报文头部均是重新填写的,因此,本说明书实施例中,需要为所有执行动作中有向其他交换芯片发送报文的acl,均添加为报文增加重定向标记的执行动作,而不仅仅只为第j个交换芯片的其他acl和第一个交换芯片的所有acl添加为报文增加重定向标记的执行动作。

具体而言,向所述交换芯片序列中的第1个交换芯片下发的acl的匹配条件还包括通过外部口接收到该报文;该acl的执行动作还包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则为报文增加重定向标记。所述方法还包括:向所述交换芯片序列中的第1个交换芯片下发其他acl;该其他acl的匹配条件包括报文具有指定特征,通过内部口接收到该报文,且报文具有重定向标记;该其他acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则为该报文增加重定向标记,并将该报文发送给第2个交换芯片进行受理;向第i个交换芯片分别下发的acl,和向第j个交换芯片分别下发的其他acl的执行动作还包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则为报文增加重定向标记;向第j个交换芯片分别下发的其他acl,和向第n个交换芯片下发的其他acl的匹配条件还包括:报文具有重定向标记。

其中,重定向标记可以添加在总线通信协议的头部,在使用的总线通信协议为higig协议时,考虑到higig协议头部的一个字节是自定义字段,因此,通过将自定义字段修改为指定值来为报文增加重定向标记,比如自定义字节为1表示该报文具有重定向标记,是重定向的报文,而自定义字节为0表示该报文是被受理的报文(higig报文自定义字段一般默认为0),这样使得两种报文得以区分,达到了更好的限速效果。换言之,报文具有重定向标记具体包括:报文的higig头部字段的自定义字段为指定值。

此外,对于领到令牌的报文,也就是未超过该交换芯片针对目标类型报文阈值的报文,交换芯片需要正常受理这些领到令牌的报文。具体而言,对于任一下发的acl表项的执行动作,还包括:对于匹配到的任一报文,若受理该报文不会导致单位时间内受理的目标类型报文量超过对应的阈值,则受理该报文。

如图2所示,图2是本说明书根据一示例性实施例示出的:一种报文处理方法的流程图,应用于机框式设备交换芯片序列的每一交换芯片,包括:

步骤202,该交换芯片接收目标类型报文。

步骤204,判断接收的报文是否包含任一acl的匹配特征;所述acl是通过本说明书实施例第一方面的acl下发方法所下发的acl。

步骤206,若包含任一acl的匹配特征,则按该acl的策略对报文进行处理。

其中,交换芯片接收到报文后,首先需要经vlan模块处理(检查报文携带的vlan标签中的vlanid是否属于入接口所属vlan范围);通过mac地址表查找匹配的表项,寻找二层出口,并在报文上标记二层出口id;若二层表项提示需要查三层表项则通过三层表项(arp表、host表、route表等)查找三层出口,并在报文上标记匹配的arp表项id等信息;无论匹配二层表项还是匹配三层表项的报文均去往acl模块进行匹配,若匹配上某条acl表项则在报文上标记执行动作;实施执行动作(丢包、改包、转发等);未丢弃的报文经发包模块处理,从指定的出接口发送出去。

通过上述方法,最终实现了如图3所示的效果,其中,图3的实线代表机框式设备外部其他设备发送的报文,虚线是目标类型报文在匹配到限速acl,且未领到令牌时可能的转发方向。通过本说明书实施例公开的方法,使得任一交换芯片无法受理目标类型报文的情况下,在该机框式设备所接收的目标类型报文未达到用户设置的上限值时,可以由其他还有针对目标类型报文的令牌的交换芯片受理该报文;同时,也能使得只有在交换芯片序列中所有交换芯片均无法受理该报文的情况下,该报文才会被丢弃。这样达到了较好的限速效果。

下面将通过一个实施例来对本说明书所公开的方法进行说明。

针对指定五元组的报文(目标类型报文),用户设置了针对该目标类型报文的限速上限值为93mbps,并且接收目标类型报文的交换芯片序列中,包括三个交换芯片,三个交换芯片的槽位号分别是1、2和3,其中,槽位号为1的交换芯片的0号接口会接收目标类型报文,槽位号为2的交换芯片的0号和1号接口会接收目标类型报文,槽位号为3的交换芯片的0号和1号接口会接收目标类型报文,换言之,会接收目标类型报文的外部口分别是:eth1_0、eth2_0、eth2_1、eth3_0、eth3_1(接口名中第一个数字代表槽位号,第二个数字代表接口编号),其中eth1_0带宽为40gbps,eth2_0、eth2_1带宽为10gbps,eth3_0、eth3_1带宽为1gbps。

根据上述初始值,主控板卡计算得到了三个交换芯片对应的阈值,分别是60mbps、30mbps和3mbps,并按照阈值大小,对三个交换芯片进行排序,第1个交换芯片为槽位号为1的交换芯片,第2个交换芯片为槽位号为2的交换芯片,第三个交换芯片为槽位号为3的交换芯片,然后生成并下发了如表1所示的acl表项。其中。a1是向第1个交换芯片下发的acl,a1'是向第1个交换芯片下发的其他acl;与之相似的,a2是向第2个交换芯片下发的acl,a2'是向第2个交换芯片下发的其他acl;a3是向第3个交换芯片下发的acl,a3'是向第3个交换芯片下发的其他acl。每个acl具体的匹配条件和执行动作如下所示。其中,用户在配置acl时,可以为acl配置如统计动作、修改报文目的媒体存取控制位址(mediaaccesscontroladdress,mac)地址和/或修改报文虚拟局域网(virtuallocalareanetwork,vlan)标签等动作,下表中的“系统添加的执行动作”指的是除了用户添加的动作外,系统需要添加的执行动作;也就是说,acl的执行动作除了下表中的动作外,还包括用户添加的执行动作。

表1

交换芯片根据上述acl实现的限速效果如下所示:假设有50mbps目标类型报文从eth2_0输入,则第2个交换芯片将根据报文中携带的信息和匹配条件匹配到表项a2,根据a2的阈值和执行动作,将受理其中30mbps报文,也就是这些报文会被正常转发出去,而另外20mbps报文领不到令牌,将被标记为红色,领不到令牌的20mbps红色报文将被添加重定向标记(即红色重定向)后,被重定向至第1个交换芯片的内部口。第1个交换芯片的内部口接收到这20mbps报文后,交换芯片根据报文中携带的信息和匹配条件匹配到表项a1',根据a1'的阈值和执行动作,在第1个交换芯片未接收其他报文的情况下,这20mbps报文将被受理。

又假设有92mbps目标类型报文从eth2_0和eth2_1输入,第2个交换芯片接收报文后,根据报文中携带的信息和匹配条件匹配到表项a2,根据a2的阈值和执行动作,将受理30mbps报文,也就是这些报文被正常转发出去,而62mbps领不到令牌,被标记为红色,重定向至第1个交换芯片的内部口。第1个交换芯片的内部口接收到这62mbps报文后,交换芯片根据报文中携带的信息和匹配条件匹配到表项a1',根据a1'的阈值和执行动作,在第1个交换芯片未接收其他报文的情况下,将受理其中60mbps的报文,而剩余2mbps的报文未领到令牌,将被标记为红色,重定向至第2个交换芯片的内部口。第2个交换芯片的内部口接收到这2mbps报文后,交换芯片根据报文中携带的信息和acl的匹配条件匹配到表项a2',由于a2'的限速器被耗尽,已经没有令牌了,根据a2'的执行动作,这2mbps的报文将被标记为红色,重定向至第3个交换芯片的内部口。第3个交换芯片的内部口接收到报文后,根据报文中携带的信息和acl的匹配条件匹配到表项a3',由于第3个交换芯片未接收其他目标类型的报文,这2mbps的报文将被第3个交换芯片受理。可见,本说明书公开的实施例中,即使目标类型报文不均匀地流入各个交换芯片,只要目标类型报文的总流量不超过限速的上限值,这些目标类型报文都可以正常的被转发出去。

又假设分别有100mbps、5mbps的目标类型报文分别从eth2_0、eth3_0输入,第2个交换芯片和第3个交换芯片接收到报文后,根据报文中携带的信息及各自acl的匹配条件,分别匹配到表项a2和a3,根据两者各自的阈值和执行动作,第2个交换芯片将受理30mbps报文,剩下70mbps报文被标记为红色,重定向至第1个交换芯片;第3个交换芯片将受理3mbps报文,剩下2mbps报文被标记为红色,重定向至第一个交换芯片。那么低1个交换芯片通过内部口接收合计72mbps报文,根据报文中携带的信息和acl的匹配条件,匹配到表项a1',根据a1'的阈值和执行动作,第1个交换芯片将受理60mbps报文,而剩下12mbps报文被标记为红色,重定向至第2个交换芯片。第2个交换芯片接收到报文后,这些报文被匹配到表项a2',其限速器已经耗尽,这12mbps报文领不到令牌,被标记为红色,重定向至第3个交换芯片。与之类似的,这12mbps报文匹配到表项a3',其限速器同样已耗尽,这12mbps报文领不到令牌,被标记为红色并被丢弃,最终经本设备转发的目标类型报文为93mbps。可见通过本说明书实施例中公开的方法,可以使得只有交换芯片序列中所有交换芯片均无法受理目标类型报文的情况下,接收的目标类型报文才会被丢弃;且通过上述方法,达到了较好的限速效果。

与前述方法的实施例相对应,本说明书还提供了acl下发装置及其所应用的终端的实施例。

如图4所示,图4是本说明书根据一示例性实施例示出的一种acl下发装置的框图,对于发往机框式设备的任一具有指定特征的报文,所述机框式设备通过交换芯片序列中的一个交换芯片接收该目标类型报文;所述交换芯片序列中的每个交换芯片位于所述机框式设备的业务板卡或交换板卡;所述交换芯片序列包括n个交换芯片,n≥2。

所述装置应用于所述机框式设备的主控板卡,包括:

上限值获取模块410,用于获取用户指定的上限值;所述上限值用于限定单位时间内所述机框式设备受理的具有指定特征的报文的报文量上限。

阈值拆分模块420,用于将所述上限值拆分为n个阈值并分别分配给所述交换芯片序列中每个交换芯片。

acl下发模块430,用于向所述交换芯片序列中的第1个交换芯片下发acl,该acl的匹配条件包括报文具有指定特征;该acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第2个交换芯片进行受理;向第i个交换芯片分别下发acl,i=2,…,n;该acl的匹配条件包括报文具有指定特征,且通过外部口接收到该报文;该acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第1个交换芯片进行受理;向第j个交换芯片分别下发其他acl,j=2,…,n-1;该其他acl的匹配条件包括报文具有指定特征,且通过内部口接收到该报文;该其他acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文发送给第j+1个交换芯片进行受理;向第n个交换芯片下发其他acl;该其他acl的匹配条件包括报文具有指定特征,且通过内部口接收到该报文;该其他acl的执行动作包括:对于匹配到的任一报文,若受理该报文将导致单位时间内受理的目标类型报文量超过对应的阈值,则将该报文丢弃。

如图5所示,图5是本说明书根据一示例性实施例示出的一种报文处装置的框图,应用于机框式设备交换芯片序列的每一交换芯片,包括:

报文接收模块510,用于该交换芯片接收目标类型报文。

acl匹配模块520,用于判断接收的报文是否包含任一acl的匹配特征;所述acl是通过本说明书实施例第一方面的acl下发方法所下发的acl。

报文处理模块530,用于若包含任一acl的匹配特征,则按该acl的策略对报文进行处理。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

如图6所示,图6示出了实施例acl下发装置所在计算机设备的一种硬件结构图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本说明书实施例第一方面所述的acl下发方法。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

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