报文转发方法、装置及转发设备与流程

文档序号:18105069发布日期:2019-07-06 11:35阅读:230来源:国知局
报文转发方法、装置及转发设备与流程

本申请涉及网络通信技术领域,具体而言,涉及一种报文转发方法、装置及转发设备。



背景技术:

在网络通信中,数据流量的采样分析对改进或维护网络性能十分重要。在软件定义网络(softwaredefinednetwork,sdn)架构中,由于将控制平面(controlplane)和转发平面分离了,对数据流量的采样分析工作由转发平面设备独自完成,这种情况下就需要由转发平面设备对目标数据流的报文进行采样,采样获得的报文最终被上送到分析引擎(例如,sdn控制器或者专门的数据分析设备)并由分析引擎对报文进行分析。



技术实现要素:

第一方面,本申请提供一种报文转发方法,应用于转发设备,所述转发设备预先配置有目标组表,所述转发设备的流表项中包括指向所述目标组表的目标流表项,所述目标组表中的转发动作包括按照预设的复制比例对数据流的报文进行复制转发;所述方法包括:

接收待转发报文,并将所述待转发报文存入入口缓存队列;

将所述待转发报文的通信特征与所述流表项进行匹配,确定所述待转发报文的执行动作;

针对所述通信特征与所述目标流表项匹配的目标数据流的待转发报文,执行所述目标流表项所指向的目标组表中的转发动作,从所述入口缓存队列中按照所述复制比例复制所述目标数据流的待转发报文进行转发。

可选地,在上述方法中,所述目标组表包括复制比例小于100%的低比例复制动作集、复制比例等于100%的等量复制动作集以及复制比例大于100%的增量复制动作集中的至少一个;则,所述执行所述目标流表项所指向的目标组表中的转发动作,从所述入口缓存队列中按照所述复制比例复制所述目标数据流的待转发报文进行转发的步骤,包括:

若所述目标组表包括所述低比例复制动作集,执行所述低比例复制动作集,从所述入口缓存队列中按照该低比例复制动作集的复制比例对所述目标数据流的待转发报文进行低比例复制,得到监控数据流,并对所述监控数据流进行转发;

若所述目标组表包括所述等量复制动作集,执行所述等量复制动作集,从所述入口缓存队列中按照该等量复制动作集的复制比例对所述目标数据流的待转发报文进行等量复制,得到等量数据流,并对所述等量数据流进行转发;

若所述目标组表包括所述增量复制动作集,执行所述增量复制动作集,从所述入口缓存队列中按照该增量复制动作集的复制比例对所述目标数据流的待转发报文进行增量复制,得到增量数据流,并对所述增量数据流进行转转发。

可选地,在上述方法中,所述目标组表中转发动作指示的报文出接口为与所述目标数据流的通信特征对应的目标出接口;所述执行所述低比例复制动作集,从所述入口缓存队列中按照所述复制比例对所述目标数据流的待转发报文进行低比例复制,得到监控数据流,并对所述监控数据流进行转发的步骤,包括:

执行所述低比例复制动作集,从所述入口缓存队列中按照该低比例复制动作集的复制比例对所述目标数据流的转发报文进行低比例复制;

为复制得到的报文添加包括路径检测标识的报文头得到所述监控数据流,并从所述目标出接口发送所述监控数据流。

可选地,在上述方法中,所述目标组表包括丢弃动作集,所述低比例复制动作集指示的出接口为与所述目标数据流的通信特征对应的目标出接口,所述丢弃动作集指示的出接口为null;

所述执行所述低比例复制动作集,从所述入口缓存队列中按照所述复制比例对所述目标数据流的待转发报文进行低比例复制的步骤,包括:

从所述入口缓存队列复制所述目标数据流的待转发报文,并按照预设权重由所述低比例复制动作集和所述丢弃动作集分担处理所述目标数据流的待转发报文,其中,所述低比例复制动作集分担处理的报文比例为该低比例复制动作集对应的复制比例。

可选地,在上述方法中,所述方法还包括:

接收sdn控制器下发的所述目标流表项及所述目标组表。

第二方面,本申请提供一种报文转发装置,应用于转发设备,所述转发设备预先配置有目标组表,所述转发设备的流表项中包括指向所述目标组表的目标流表项,所述目标组表中的转发动作包括按照预设的复制比例对数据流的报文进行复制转发;所述装置包括:

报文接收模块,用于接收待转发报文,并将所述待转发报文存入入口缓存队列;

流表匹配模块,用于将所述待转发报文的通信特征与所述流表项进行匹配,确定所述待转发报文的执行动作;

比例复制模块,用于针对所述通信特征与所述目标流表项匹配的目标数据流的待转发报文,执行所述目标流表项所指向的目标组表中的转发动作,从所述入口缓存队列中按照所述复制比例复制所述目标数据流的待转发报文进行转发。

可选地,在上述装置中,所述目标组表包括复制比例小于100%的低比例复制动作集、复制比例等于100%的等量复制动作集以及复制比例大于100%的增量复制动作集中的至少一个;

则,所述比例复制模块在所述目标组表包括所述低比例复制动作集时,执行所述低比例复制动作集,从所述入口缓存队列中按照该低比例复制动作集的复制比例对所述目标数据流的待转发报文进行低比例复制,得到监控数据流,并对所述监控数据流进行转发;

所述比例复制模块在在所述目标组表包括所述等量复制动作集时,执行所述等量复制动作集,从所述入口缓存队列中按照该等量复制动作集的复制比例对所述目标数据流的待转发报文进行等量复制,得到等量数据流,并对所述等量数据流进行转发;

所述比例复制模块在所述目标组表包括所述增量复制动作集时,执行所述增量复制动作集,从所述入口缓存队列中按照该增量复制动作集的复制比例对所述目标数据流的待转发报文进行增量复制,得到增量数据流,并对所述增量数据流进行转转发。

可选地,在上述装置中,所述目标组表中转发动作指示的报文出接口为与所述目标数据流的通信特征对应的目标出接口;所述比例复制模块在所述执行所述低比例复制动作集时,从所述入口缓存队列中按照该低比例复制动作集的复制比例对所述目标数据流的转发报文进行低比例复制;为复制得到的报文添加包括路径检测标识的报文头得到所述监控数据流,并从所述目标出接口发送所述监控数据流。

可选地,在上述装置中,所述目标组表包括丢弃动作集,所述低比例复制动作集指示的出接口为与所述目标数据流的通信特征对应的目标出接口,所述丢弃动作集指示的出接口为null;

所述比例复制模块在所述执行所述低比例复制动作集时,从所述入口缓存队列复制所述目标数据流的待转发报文,并按照预设权重由所述低比例复制动作集和所述丢弃动作集分担处理所述目标数据流的待转发报文,其中,所述低比例复制动作集分担处理的报文比例为该低比例复制动作集对应的复制比例。

可选地,在上述装置中,所述装置还包括:

配置接收模块,用于接收sdn控制器下发的所述目标流表项及所述目标组表。

第三方面,本申请提供一种转发设备,包括机器可读存储介质及处理器,该机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被所述处理器执行时促使所述转发设备实现本申请提供的所述报文转发方法。

相对于现有技术而言,本申请具有以下有益效果:

本申请提供的报文转发方法、装置及转发设备,通过在转发设备处理待转发报文的过程中,执行预设的目标动作组,从而按照一定的复制百分比从入口缓存队列中复制出目标数据流的报文作为监控数据流。相较于使用硬件采样器进行报文采样的方式,本申请实施例通过转发芯片的按比例复制动作来实现对目标数据流的灵活监控,可以减少监控分析动作对转发设备硬件性能的依赖。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为硬件采样器实现报文采样的示意图;

图2为本申请实施例提供的报文转发方法的流程示意图;

图3为本申请实施例提供的报文处理流程示意图;

图4为本申请实施例提供的比例复制bucket的属性示意图;

图5为本申请实施例提供的转发装置的工作场景示意图;

图6为本申请实施例提供的转发设备的结构框图;

图7为本申请实施例提供的报文转发装置的功能模块示意图之一;

图8为本申请实施例提供的报文转发装置的功能模块示意图之二。

图标:100-转发设备;110-报文转发装置;111-报文接收模块;112-流表匹配模块;113-比例复制模块;114-配置接收模块;120-机器可读存储介质;130-处理器。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在一些常见的基于软件定义网络(softwaredefinednetwork,sdn)的通信架构中,转发设备通常通过硬件采样器实现对目标数据流的采样,目标数据流或其镜像流量被输入到硬件电路构成的硬件采样器后,硬件采样器通过预设的采样比例抽取目标数据流的部分报文形成监控数据流,然后将监控数据流从与分析引擎连接的出接口发送给分析引擎。

例如,请参照图1,在openflow交换机的报文采样流程中,交换机接收到的报文会先存入入口缓存队列等待处理,交换机将入口缓存队列中的报文与流表项进行比对,根据报文的通信特征确定需要对报文执行的转发动作。对于需要进行采样分析的目标数据流,交换机中配置的流表项会指向专门用于进行报文采样的采样组表(group),根据采样group中动作桶(bucket)的动作,从入口缓存队列中复制出目标数据流的100%的报文送至硬件采样器并进行采样。采用这种方式会占用交换机大量的内部带宽,并且需要专门的硬件采样器执行报文采样动作,对转发设备的硬件性能要求很高。

有鉴于上述问题的发现,本实施例提供一种按照一定的复制百分比从入口缓存队列复制出目标数据流报文进行监控的方案替代通过硬件采样器进行采样,下面对本实施例提供的方案进行详细解释。

详细地,本实施例提供一种转发设备,该转发设备可以为sdn架构中的openflow交换机,该转发设备中可以预存有针对需要进行监控分析的目标数据流设置的目标组表,该转发设备的流表项中配置有指向目标组表的目标流表项。

目标流表项中记录有目标数据流的通信特征与目标组表的对应关系,以指示具有该通信特征的报文需要执行的目标组表,目标组表用于按照预设的复制比例对目标数据流的报文进行复制转发。

例如,目标组表可以为转发设备中的具有一个特殊bucket的group,该bucket中的转发动作(actions)包括按照预设的复制比例对数据流量进行复制转发。目标流表项记录有目标数据流的通信特征与该group的身份标识(例如groupid)的对应关系,以指示目标数据流的报文执行该group中的bucket。

请参照图2,是本实施例提供一种应用于上述转发设备的报文转发方法的流程图,下面结合该流程图对该方法进行详细阐述。

步骤s110,接收待转发报文,并将待转发报文存入入口缓存队列。

在本实施例中,转发设备在接收到待转发报文后,可以将待转发报文存入至入口缓存队列等待处理。

步骤s120,将待转发报文的通信特征与流表项进行匹配,确定待转发报文的执行动作。

在本实施例中,转发设备根据入口缓存队列中的各待转发报文的通信特征匹配相应的流表以确定各待转发报文需要执行的转发动作。

步骤s130,针对通信特征与目标流表项匹配的目标数据流的待转发报文,根据目标流表项所指向的目标组表,从入口缓存队列中按照预设的复制比例复制目标数据流的待转发报文进行转发。

在本实施例中,可以由转发设备中的转发芯片或者cpu根据目标组表从入口缓存队列按照预设的复制比例复制对目标数据流的待转发报文进行复制,以获得监控数据流,并对监控数据流执行转发。

请参照图3,图3为执行上述报文转发方法时,转发设备中目标数据流的待转发报文的传递过程示意图。假设针对目标数据配置的复制比例为5%,在本实施例中,转发设备在执行目标动作组(即图3所示的目标group)中的bucket时,会从入口缓存队列中复制目标数据流5%的待转发报文进行处理。

基于上述设计,在本实施例提供的方法中,通过交换芯片或cpu按比例复制动作实现按照一定比例获取目标数据流的报文,可以减少按比例获取报文的动作对硬件电路的依赖,也一定程度上减少了转发设备内部的带宽占用。

可选地,在本实施例中,目标组表包括复制比例小于100%的低比例复制动作集、复制比例等于100%的等量复制动作集以及复制比例大于100%的增量复制动作集中的至少一个。

在本实施例中,低比例复制动作集可以用于实现从入口缓存队列按小于100%的比例复制目标数据流至出口缓存队列进行发送。如此,可以获得的报文流量小于源目标数据流的监控数据流,该监控数据流的报文还可以携带转发设备的一些运行状态信息或转发状态信息,监控数据流的报文被发送至分析引擎后,分析引擎可以获知转发设备的工作情况并进行分析。

低比例复制动作集中的转发动作还可以包括为复制得到的报文添加添加包括监控标识的报文头,从而使分析引擎可以识别采样获得的报文并进行统计或分析。例如,在本实施例中,包括监控标识的报文头可以为netflow或sflow等封装的报文头;包括监控标识的报文头也可以是包括路径检测标识的报文头,例如带内网络遥测(in-bandnetworktelemetry,简称int)报文头。

在步骤s120中,若目标组表包括低比例复制动作集,在执行该低比例复制动作集时,转发设备可以从入口缓存队列中按照该低比例复制动作集的复制比例对目标数据流的待转发报文执行复制比例低于100%的低比例复制,得到监控数据流,并对监控数据流进行转发。

在本实施例中,等量复制动作集可以用于实现从入口缓存队列等量地复制目标数据流的报文至出口队列进行发送,以实现对目标数据流报文的正常转发。

在步骤s120中,若目标组表包括等量复制动作集,在执行该等量复制动作集时,转发设备可以从入口缓存队列中按照该等量复制动作集的复制比例对目标数据流的待转发报文进行复制比例等于100%的等量复制,得到等量数据流,并对等量数据流进行转发。

在本实施例中,增量复制动作集可以实现从入口缓存队列按大于100%的复制比例复制目标数据流的报文至出口缓存队列进行发送,以用于进行网络性能测试或仿真等。

在步骤s120中,若目标组表包括增量复制动作集,在执行该增量复制动作集时,转发设备可以从入口缓存队列中按照该增量复制动作集的复制比例对目标数据流的待转发报文进行复制比例大于100%的增量复制,得到增量数据流,并对增量数据流进行转转发。相较于仅能进行报文采样的硬件采样器,本实施例提供的方案中,对从入口缓存队列复制出报文的动作进行了改进,从而可以通过执行增量复制动作集实现对目标数据流报文的增量复制和发送,进而更方便的用于网络性能测试或仿真等。

可选地,在本实施例中,目标组表可以包括等量复制动作集和增量复制动作集中的至少一个以及低比例复制动作集。

在一些场景中,目标组表可以包括等量复制动作集及低比例复制动作集。例如,目标组表可以为all类型的group,等量复制动作集及低比例复制动作集可以为该group中的两个bucket,由于all类型的group中的每个bucket都会被执行,因此对于需要执行该group中转发动作的目标数据流的报文,转发设备会对目标数据流执行等量复制动作集和低比例复制动作集。

执行等量复制动作集时,转发设备可以从入口缓存队列复制出目标数据流100%的待转发报文执行正常的转发;同时转发设备执行低比例复制动作集,从入口缓存队列复制出目标数据流5%的报文作为监控数据流,并为监控数据流的报文增加监控报文封装后进行发送。在这个场景中,在本实施例提供方案通过改进从入口缓存队列复制出报文的动作,可以同时实现对报文的正常转发和采样发送。

可选地,本实施例提供的监控数据流可以为路径检测报文的数据流。路径检测报文具有的包括路径检测标识的报文头,且路径检测报文的转发路径与原报文相同,产生该路径检测报文及转发该路径检测报文的转发设备均会在报文头中加入自己的运行状态或转发状态,最终转发该路径检测报文的转发设备会将该路径检测报文上送至分析引擎,分析引擎可以从该路径检测报文中获得其转发路径上各转发设备工作情况并进行分析,即对该路径检测报文的整个转发路径进行分析。

在这种场景中,目标组表指示的报文出接口可以为与目标数据流的通信特征对应的目标出接口,即低比例复制动作集指示的报文出接口和等量复制动作集指示的报文出接口可以是相同的。

在执行低比例复制动作集时,转发设备从入口缓存队列中按照该低比例复制动作集的复制比例对目标数据流的转发报文进行低比例复制。然后为复制得到的报文添加包括路径检测标识的报文头(即,路径检测封装),得到监控数据流,并从目标出接口发送监控数据流。

以带内流量分析(inboundflowanalyzation,简称ifa)为例,在执行低比例复制动作集时,转发设备可以从入口缓存队列中按照复制比例对目标数据流的转发报文进行低比例复制。接着转发设备可以为复制得到的报文添加包括路径检测标识的报文头得到监控数据流,例如,为复制得到报文添加int封装得到监控数据流。

然后,转发设备将监控数据流的报文从目标出接口发送,监控数据流的转发路径与目标数据流的原始转发路径相同,沿途转发该监控数据流的转发设备会根据路径检测封装识别出监控报文,并为监控报文添加新的路径检测封装后继续转发。

可选地,在本实施例的一个例子中,目标组表可以包括丢弃动作集。目标组表中,低比例复制动作集指示的出接口为与目标数据流的通信特征对应的目标出接口,丢弃动作集指示的出接口为null。

针对入口缓存队列中,命中了目标流表项需要执行目标组表的待转报文,转发设备可以从入口缓存队列复制目标数据流的待转发报文,并按照预设权重由低比例复制动作集和丢弃动作集分担处理目标数据流的待转发报文,其中,低比例复制动作集分担处理的报文比例为该低比例复制动作集对应的复制比例。

如此,由于丢弃动作集指示的出接口为null,该丢弃动作集分担处理的待转发报文会被丢弃掉,而低比例复制动作集分担处理的待转发报文被处理为监控数据流并从目标出接口发送,从而实现对目标数据流的按比例采样。

例如,类型为all的目标组表中包括两个bucket,分别是丢弃动作集和低比例复制动作集,丢弃动作集和低比例复制动作集配置成按权重分担处理目标数据流的待转发报文,其中,丢弃动作集的权重为4,低比例复制动作集的权重为1。入口缓存队列中的待处理报文命中目标流表项后被指示需要执行目标组表中的动作,则低比例复制动作集根据自己的权重,按照25%的复制比例从入口缓存队列中复制目标数据流的报文进行处理;丢弃动作集根据自己的权重,按照75%的比例从入口缓存队列复制目标数据流的报文进行处理。由于丢弃动作集的出接口为null,则该部分报文被丢弃,而低比例复制动作集对复制出的报文添加监控报文分装后进行转发,从而得到报文流量占原目标数据流25%的监控数据流。这样,利用all类型的组表进行组播复制时的分担处理机制,实现了报文的按比例复制。

可选地,在本实施例中,增量复制动作集指示的动作可以为一个单独实现增量复制动作的动作集;增量复制动作集也可以由一个或多个等量复制动作集与低比例复制动作集组合而成。

可选地,在本实施例中,转发设备接收sdn控制器下发的目标流表项和目标组表,如此,管理员可以在sdn控制器上对目标数据流的采样策略进行配置,然后下发至转发设备执行。

为方便本领域技术人员了解本实施例提供的方案,下面以ifa检测场景为例,通过一个具体例子解释本实施例提供的方案。

请参照图4,在本实施例新定义了一种比例复制bucket,即图4所示的ofpgbpt_duplication类型的比例复制bucket,该比例复制bucket中新定义了一种ratio属性,该ratio属性用于记录比例复制bucket进行低比例复制时的复制比例。该比例复制bucket中的转发动作包括按照复制百分比从入口缓存队列中复制与目标流表项匹配的报文,并添加int封装后从预设的出接口发送。

请参照图5,在图5所示的组网环境中,openflow交换机leaf1到leaf4上可以配置比例复制bucket对应的按比例复制功能。若需要对主机host1发往主机host4的报文进行ifa检测,管理员可以将host1发往host4的数据流作为目标数据流,在sdn控制器controller上配置相应的目标流表项及目标组表(即目标group),目标流表项中记录了目标数据流的报文通信特征(如报文的源地址、目的地址等),同时目标流表项中还记录了目标group的id,以指示匹配到该目标流表项的报文需要执行目标group中的动作。

目标group中记录有该目标group的id、类型及bucket属性信息,bucket属性包括bucket的类型、需要执行的动作及动作执行参数等。在本实施例中,该目标group的类型为all类型。目标group中可以包括两个bucket,分别是等量复制动作集和低比例复制动作集。

等量复制动作集中指示需要执行的动作包括为:按100%的比例复制待转发报文,为复制得到的报文封装目的地址为leaf4、源地址为leaf1的外层报文头,及从与交换机spine1连接的出接口发送封装后的报文。

低比例复制动作集中指示需要执行的动作包括为:按1%的比例复制报文,报文添加隧道目的地址为leaf4、源地址为leaf1的隧道封装,为报文添加int字段,及从与交换机spine1连接的出接口发送封装后的报文。

管理员在sdn控制器上完成配置后,sdn控制器将目标流表项和目标group表下发给转发设备leaf1。leaf1接收并记录目标流表项和目标group表。

leaf1接收待转发报文并存入其入口缓存队列,然后根据入口缓存队列中待处理报文的通信特征查找相应的流表项以确定转发动作。

针对host1发往host4的目标数据流的报文,会匹配到目标流表项,根据目标流表项,然后执行目标流表项指示的目标group表中的bucket。

leaf1在执行等量复制动作集时,按照100%的比例复制出目标数据流的待转发报文,为复制出的报文添加隧道源地址为leaf1、目的地址为leaf4的隧道封装,然后从与spine1连接的出接口发送给spine1。

leaf1在执行低比例复制动作集时,按照1%的比例复制出目标数据流的待转发报文,添加隧道源地址为leaf1、目的地址为leaf4的隧道封装,并添加int头和leaf1的int元数据(metadata),然后从与spine1连接的出接口发送给spine1。

如此,经leaf1处理后,得到与目标数据流等量的等量数据流和报文比例占目标数据流1%的监控数据流。

spine1接收到等量数据流的报文时,根据等量数据流报文的隧道目的地址将等量数据流的报文转发至leaf4。spine1接收到监控数据流的报文时,检测报文携带有int头,则spine1在int头中添加该spine1的int元数据,然后根据报文的隧道目的地址将报文发送给leaf4。

leaf4接收到等量数据流的报文时,检测到报文的外层报文头的目的地址,即隧道的目的地址为自己,则leaf4解封装外层报文头后,根据报文的内层地址将报文转发给host4。leaf4接收到监控数据流的报文时,检测到报文的外层报文的目的地址为自己,且报文携带有int头,则leaf4解封装外层报文头后,在int头中添加该leaf4的int元数据,然后将报文上送给分析引擎。

分析引擎接收到监控数据流的报文后,通过leaf1、spine和leaf4的int元数据获取报文的沿途路径以及每个节点的时延消息和丢包统计,并根据时延和丢包统计判断host1和host4之间应用访问是否正常。

请参照图6,图6为本实施例提供的一种转发设备100的硬件结构示意图。该转发设备100可包括处理器130及机器可读存储介质120。处理器130与机器可读存储介质120可经由系统总线通信。并且,机器可读存储介质120存储有机器可执行指令,通过读取并执行机器可读存储介质120中与报文转发逻辑对应的机器可执行指令,处理器130可执行上文描述的报文转发方法。

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

请参照图7,本实施例还提供一种报文转发装置110,报文转发装置110包括至少一个可以软件形式存储于机器可读存储介质120中的功能模块。从功能上划分,报文转发装置110可以包括报文接收模块111、流表匹配模块112及比例复制模块113。

报文接收模块111用于接收待转发报文,并将待转发报文存入入口缓存队列。

本实施例中,报文接收模块111可用于执行图2所示的步骤s110,关于报文接收模块111的具体描述可参对步骤s110的描述。

流表匹配模块112用于将待转发报文的通信特征与流表项进行匹配,确定待转发报文的执行动作。

本实施例中,流表匹配模块112可用于执行图2所示的步骤s120,关于流表匹配模块112的具体描述可参对步骤s120的描述。

比例复制模块113用于针对通信特征与目标流表项匹配的目标数据流的待转发报文,执行目标流表项所指向的目标组表中的转发动作,从入口缓存队列中按照复制比例复制目标数据流的待转发报文进行转发。

本实施例中,比例复制模块113可用于执行图2所示的步骤s130,关于比例复制模块113的具体描述可参对步骤s130的描述。

可选地,在本实施例中,目标组表包括复制比例小于100%的低比例复制动作集、复制比例等于100%的等量复制动作集以及复制比例大于100%的增量复制动作集中的至少一个。

比例复制模块113在目标组表包括低比例复制动作集时,执行低比例复制动作集,从入口缓存队列中按照该低比例复制动作集的复制比例对目标数据流的待转发报文进行低比例复制,得到监控数据流,并对监控数据流进行转发。

比例复制模块113在在目标组表包括等量复制动作集时,执行等量复制动作集,从入口缓存队列中按照该等量复制动作集的复制比例对目标数据流的待转发报文进行等量复制,得到等量数据流,并对等量数据流进行转发。

比例复制模块113在目标组表包括增量复制动作集时,执行增量复制动作集,从入口缓存队列中按照该增量复制动作集的复制比例对目标数据流的待转发报文进行增量复制,得到增量数据流,并对增量数据流进行转转发。

可选地,在本实施例中,目标组表包括等量复制动作集和增量复制动作集中的至少一个以及低比例复制动作集。

可选地,在本实施例中,目标组表中转发动作指示的报文出接口为与目标数据流的通信特征对应的目标出接口。比例复制模块113在执行低比例复制动作集时,从入口缓存队列中按照该低比例复制动作集的复制比例对目标数据流的转发报文进行低比例复制。为复制得到的报文添加包括监控标识的报文头得到所述监控数据流,并从所述目标出接口发送所述监控数据流。

可选地,在本实施例中,目标组表包括丢弃动作集,低比例复制动作集指示的出接口为与目标数据流的通信特征对应的目标出接口,丢弃动作集指示的出接口为null。

比例复制模块113在执行低比例复制动作集时,从入口缓存队列复制目标数据流的待转发报文,并按照预设权重由低比例复制动作集和丢弃动作集分担处理目标数据流的待转发报文,其中,低比例复制动作集分担处理的报文比例为该低比例复制动作集对应的复制比例。

可选地,请参照图8,在本实施例中,报文转发装置110还包括配置接收模块114。

配置接收模块114用于接收sdn控制器下发的目标流表项及目标组表。

综上所述,本申请提供的报文转发方法、装置及转发设备,通过在转发设备处理待转发报文的过程中,执行预设的目标动作组,从而按照一定的复制百分比从入口缓存队列中复制出目标数据流的报文作为监控数据流。相较于使用硬件采样器进行报文采样的方式,在本申请实施例中通过转发芯片的按比例复制动作来实现对目标数据流的灵活监控,可以减少监控分析动作对转发设备硬件性能的依赖。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

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