CN111385156A - sFlow流采样方法、装置及系统 - Google Patents
sFlow流采样方法、装置及系统 Download PDFInfo
- Publication number
- CN111385156A CN111385156A CN202010210353.XA CN202010210353A CN111385156A CN 111385156 A CN111385156 A CN 111385156A CN 202010210353 A CN202010210353 A CN 202010210353A CN 111385156 A CN111385156 A CN 111385156A
- Authority
- CN
- China
- Prior art keywords
- sflow
- sampling
- message
- service board
- board card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/022—Capturing of monitoring data by sampling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种sFlow流采样方法、装置及系统,涉及网络通信领域,该方法采用的sFlow业务板卡与一体化分布式设备其他业务板卡的硬件构造相同,该方法主要包括:基于主控板卡将预先配置的采集器的采样参数(采集器的目的IP地址、端口号、sFlow业务板卡的出接口、目的MAC地址)发送至每个sFlow业务板卡;创建sFlow业务板卡CPU聚合组;sFlow业务板卡CPU聚合组的成员为每个sFlow业务板卡的CPU口;转发板卡对原始报文进行采样生成被采样报文,并基于sFlow业务板卡CPU聚合组将被采样报文分担发送至sFlow业务板卡;sFlow业务板卡基于被采样报文及采样参数构建sFlow采样报文,并将sFlow采样报文发送至采集器。本发明可以在不大幅提升硬件成本和开发成本的前提下,有效地提升sFlow流采样速率。
Description
技术领域
本发明涉及网络通信领域,尤其是涉及一种sFlow流采样方法、装置及系统。
背景技术
sFlow是由InMon、HP和FoundryNetworks于2001年联合开发的一种网络监测技术,它采用数据流随机采样技术,可以适应超大网络流量(如大于10Gbit/s)环境下的流量分析,让用户详细、实时地分析网络传输流的性能、趋势和存在的问题。
目前,根据sFlow协议规定,通过网络设备实现sFlow流采样的方法通常为在一个sFlow采样报文中拼装多个被采样报文的采样信息,直到该sFlow采样报文的数据区被填满为止(通常一个sFlow采样报文的数据区为1400字节左右,一个被采样报文的采样信息为200多字节,平均来说一个UDP采样协议报文中可拼装6~7条采样信息)。这样,对于同样多的被采样报文,sFlow采样报文数量达到最少,便于提升网络设备和采集器之间的传输效率(传输同样多的数据,用大包比小包效率更高),采集器也能少解析一些sFlow采样报文头,从而提升解析效率。
但是这种方案适用于被采样报文速率不是很大的情况,受网络设备CPU性能和内存大小限制,采样速率有一个较低的上限。当流量非常大时,如1Tbps以上,按照1/1000的采样比,采样报文的速率也会达到1Gbps以上,采样报文速率很高,对于现有网络设备来说很难做到,除非重新开发新的网络设备,采用远远高于当前规格的CPU和内存,势必导致硬件成本和开发成本猛增,而且性能不一定能达到要求。
发明内容
本发明的目的在于提供一种sFlow流采样方法、装置及系统,在不大幅提升硬件成本和开发成本的前提下,有效地提升sFlow流采样速率。
第一方面,实施例提供一种sFlow流采样方法,所述方法由一体化分布式设备执行,所述一体化分布式设备包括主控板卡、转发板卡以及一个或多个sFlow业务板卡,所述sFlow业务板卡与所述一体化分布式设备其他业务板卡的硬件构造相同,所述方法包括:基于所述主控板卡将预先配置的采集器的采样参数发送至每个所述sFlow业务板卡;其中,所述采样参数包括所述采集器的目的IP地址、端口号、所述sFlow业务板卡的出接口、目的MAC地址中的一种或多种;创建sFlow业务板卡CPU聚合组;所述sFlow业务板卡CPU聚合组的成员为每个所述sFlow业务板卡的CPU口;所述转发板卡对原始报文进行采样生成被采样报文,并基于所述sFlow业务板卡CPU聚合组将所述被采样报文发送至所述sFlow业务板卡;所述sFlow业务板卡基于所述被采样报文及所述采样参数构建sFlow采样报文,并将所述sFlow采样报文发送至所述采集器。
在可选的实施方式中,如果所述一体化分布式设备与所述采集器按照标准三层组网方式连接时,所述sFlow业务板卡的出接口为下一跳出接口;所述基于所述主控板卡将预先配置的采集器的采样参数发送至每个所述sFlow业务板卡的步骤,包括:所述主控板探测所述目的IP地址的可达性;若可达,在所述主控板卡上记录去往所述目的IP地址的所述下一跳出接口和所述目的MAC地址;基于所述主控板卡将所述采集器的所述目的IP地址、所述端口号所述目的IP地址和所述目的MAC地址发送至每个所述sFlow业务板卡。
在可选的实施方式中,如果所述一体化分布式设备与所述采集器按照直连方式连接时,所述sFlow业务板卡的出接口为直连出接口;所述基于所述主控板卡将预先配置的采集器的采样参数发送至每个所述sFlow业务板卡的步骤,包括:基于所述主控板卡将预先配置的采集器的所述直连出接口发送至每个所述sFlow业务板卡。
在可选的实施方式中,所述方法还包括:当拔出或插入所述sFlow业务板卡时,将相应的所述sFlow业务板卡的CPU口在所述sFlow业务板卡CPU聚合组删除或新增。
在可选的实施方式中,所述转发板卡对原始报文进行采样,并基于sFlow业务板卡CPU聚合组发送至sFlow业务板卡的步骤,包括:当所述转发板卡接收到所述原始报文时,判断采样功能是否开启;如果是,所述转发板卡对所述原始报文进行采样,生成复制的被采样报文;所述被采样报文为添加有所述采样标记的原始报文;所述被采样报文与所述sFlow采样报文一一对应;如果所述sFlow业务板卡接收到所述被采样报文,基于所述sFlow业务板卡CPU聚合组的接口将对应的所述被采样报文分担发送至每个所述sFlow业务板卡的CPU。
在可选的实施方式中,所述当所述sFlow业务板卡接收到原始报文时,基于所述原始报文及所述采样参数按照预设的报文处理流程构建sFlow采样报文的步骤,包括:当所述sFlow业务板卡接收到报文时,判断所述报文是否是所述被采样报文;如果是,基于所述被采样报文数据链路层头部首字节确定所述sFlow采样报文的RawPacket数据块的头部信息数据;根据所述RawPacket数据块的头部信息数据及所述采样参数构建所述sFlow采样报文,并将所述sFlow采样报文发送至所述采集器。
在可选的实施方式中,所述方法还包括:向所述转发板卡的FPGA芯片的采样出口寄存器填入所述sFlow业务板卡CPU聚合组的接口索引,以便基于所述接口索引将所述被采样报文分担发送至每个所述sFlow业务板卡CPU。
在可选的实施方式中,所述方法还包括:在构建所述sFlow采样报文时,当所述sFlow业务板卡的驱动层从物理层接收到所述被采样报文后,为所述被采样报文分配指定字节内存区;所述指定字节包括2048字节。
第二方面,实施例提供一种sFlow流采样装置,所述装置包括:参数发送模块,用于基于所述主控板卡将预先配置的采集器的采样参数发送至每个所述sFlow业务板卡;其中,所述采样参数包括所述采集器的目的IP地址、端口号、所述sFlow业务板卡的出接口、目的MAC地址中的一种或多种;创建模块,用于创建sFlow业务板卡CPU聚合组;所述sFlow业务板卡CPU聚合组的成员为每个所述sFlow业务板卡的CPU口;采样模块,用于所述转发板卡对原始报文进行采样生成被采样报文,并基于所述sFlow业务板卡CPU聚合组将所述被采样报文发送至所述sFlow业务板卡;sFlow采样报文构建模块,用于所述sFlow业务板卡基于所述被采样报文及所述采样参数构建sFlow采样报文,并将所述sFlow采样报文发送至所述采集器。
第三方面,实施例提供一种sFlow流采样系统,所述sFlow流采样系统包括前述实施方式任一项所述的一体化分布设备,接收sFlow采样报文的采集器以及连接所述一体化分布式设备和所述采集器用于传输报文数据的网络。
本发明提供的sFlow流采样方法、装置及系统,该方法由一体化分布式设备执行,一体化分布式设备包括主控板卡、转发板卡以及一个或多个sFlow业务板卡,sFlow业务板卡与一体化分布式设备其他业务板卡的硬件构造相同,该方法包括:基于主控板卡将预先配置的采集器的采样参数发送至每个sFlow业务板卡,其中,采样参数包括采集器的目的IP地址、端口号、sFlow业务板卡的出接口、目的MAC地址中的一种或多种。创建sFlow业务板卡CPU聚合组,该sFlow业务板卡CPU聚合组的成员为每个sFlow业务板卡的CPU口。转发板卡对原始报文进行采样生成被采样报文,并基于sFlow业务板卡CPU聚合组将被采样报文发送至sFlow业务板卡,sFlow业务板卡基于被采样报文及采样参数构建sFlow采样报文,并将sFlow采样报文发送至采集器。上述方式通过创建sFlow业务板卡CPU聚合组,并将被采样报文通过上述CPU聚合组分担发送至各sFlow业务板卡CPU,在各sFlow业务板卡CPU中基于被采样报文及采样参数构建sFlow采样报文,并将sFlow采样报文发送至采集器,可以提升sFlow流采样的采样速率,并且,由于sFlow业务板卡和该一体化分布式设备上使用的其它业务板卡(如防火墙业务板、入侵防御系统业务板、负载均衡业务板等)具有相同的硬件构造,仅产品款型的面膜上的产品标识信息、所运行的软件版本和软件参数配置有所不同,从而在生产sFlow业务板卡无需额外的硬件设计开发成本。因此,可以满足在网络流量很大时不大幅提升硬件成本和开发成本的前提下,有效地提升sFlow流采样速率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种sFlow流采样方法的流程示意图;
图2为本发明实施例提供的一种参数配置方法的流程示意图;
图3为本发明实施例提供的一种报文处理的流程示意图;
图4为本发明实施例提供的一种原始的被采样报文与sFlow采样报文内容对比示意图;
图5为本发明实施例提供的一种sFlow流采样装置的结构示意图;
图6为本发明实施例提供的一种sFlow流采样系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
一体化分布式网关是一种框式设备,由设备机框和安装在机框上的板卡构成,有一至两块主控板卡用于设备管理控制,若干块sFlow业务板卡和交换板卡用于业务处理。主控板卡和sFlow业务板卡都具有CPU,分别运行相对独立的系统,分别对整机或本板卡进行管理控制和业务处理。由于一体化机制,用户不直接管理sFlow业务板卡,而由主控板卡统一管理。用户通过WEB页面或命令行终端向业务板上传软件版本文件(或执行切换主版本、删除软件版本文件等相关操作)时,由主控板负责将文件传输到业务板的非易失性存储器上;业务板进行安全业务处理、流量转发等操作时,需要使用由主控板CPU生成的安全策略、转发表项等动态数据。同时,用户在管理设备时,也需要读取业务板的软件版本信息,以及业务板在业务处理过程中产生的会话信息和日志信息等。
sFlow是一种基于报文采样的网络流量监控技术,主要用于对网络流量进行统计分析。sFlow系统包括若干sFlow代理(Agent)和一个sFlow采集器(Collector),sFlowAgent通常内嵌于交换机、路由器等网络设备中,提供流(Flow)采样和计数(Counter)采样,本申请中的sFlowAgent内嵌于一体化分布式设备中,sFlow Agent将采样的网络设备的原始报文封装成Flow报文,将获取的网络设备的流量统计信息封装成Counter报文,Flow报文和Counter报文可以统称为采样报文,然后将采样报文封装在sFlow采样报文中,再将sFlow采样报文封装在sFlow-用户数据报协议(User Datagram Protocol,UDP)报文中发送给sFlow Collector,以供sFlow Collector进行网络流量分析。
现有的网络设备实现sFlow流采样的方法通常为:通过用户界面给网络设备配置采集器地址和端口号;配置采样方式和采样比等信息;软件层面,在驱动层或协议栈底层中添加采样流程,按采样方式和采样比,从正常流量中取得报文,复制一份,上送协议栈上层;在协议栈上层中添加采样报文处理流程,针对所有报文,读取其标记位,发现无采样报文标记时,直接放过,交给下一流程处理;发现有采样报文标记时,视为被采样报文,从该报文中提取采集器需要的信息,填充到缓冲区,丢弃原被采样报文;启动一个专用线程,定时从缓冲区中读取采样信息,构造一个新的sFlow采样报文,将采样信息填入该sFlow采样报文,当该报文被填满时或者达到一定时长时,按配置的采集器地址和端口号发送给采集器上的服务器进程。
然而现有方案中,会在一个sFlow采样报文中拼装多个被采样报文的采样信息,直到该sFlow采样报文的数据区被填满为止(通常一个sFlow采样报文的数据区为1400字节左右,一个被采样报文的采样信息为200多字节,平均来说一个UDP采样协议报文中可拼装6~7条采样信息)。这样,对于同样多的被采样报文,sFlow采样报文数量达到最少,便于提升网络设备和采集器之间的传输效率(传输同样多的数据,用大包比小包效率更高),采集器也能少解析一些sFlow采样报文头,从而提升解析效率。这种方案适用于被采样报文速率不是很大的情况,受网络设备CPU性能和内存大小限制,采样速率有一个较低的上限。当流量非常大时,如1Tbps以上,按照1/1000的采样比,采样报文的速率也会达到1Gbps以上,采样报文速率很高,对于现有网络设备来说很难做到,除非重新开发新的网络设备,采用远远高于当前规格的CPU和内存,这样硬件成本和开发成本势必猛增,而且性能不一定能达到要求。因此,本发明实施例提供了一种sFlow流采样方法、装置及系统,可以在不大幅提升硬件成本和开发成本的前提下,有效地提升sFlow流采样速率。
为便于理解,首先对本发明实施例提供的一种sFlow流采样方法进行详细介绍,参见如图1所示的一种sFlow流采样方法的流程示意图,该方法由一体化分布式设备(框式设备带插卡)执行,一体化分布式设备包括主控板卡、转发板卡(也即转发流量用的板卡)以及一个或多个sFlow业务板卡,其中,主控板卡和转发板卡均为至少一个,sFlow业务板卡与一体化分布式设备其他业务板卡(诸如防火墙业务板、入侵防御系统业务板、负载均衡业务板等)的硬件构造相同,该方法主要包括如下步骤S102至步骤S108:
步骤S102:基于主控板卡将预先配置的采集器的采样参数发送至每个sFlow业务板卡。
在一种实施方式中,预先配置的采集器的采样参数为通过用户界面进行配置的采样参数,其中,采样参数可以包括采集器的目的IP地址、端口号、sFlow业务板卡的出接口、目的MAC地址中的一种或多种,通过主控板卡将经过用户界面配置好的采样参数发送给各个sFlow业务板卡。
步骤S104:创建sFlow业务板卡CPU聚合组。
sFlow业务板卡CPU聚合组的成员为每个sFlow业务板卡的CPU口,该聚合组可以在一体化分布式设备启动时进行创建,可选地,当拔出或插入sFlow业务板卡时,将相应的sFlow业务板卡的CPU口在sFlow业务板卡CPU聚合组删除或新增,从而保证每个sFlow业务板卡的CPU口均为该sFlow业务板卡CPU聚合组的有效成员。
步骤S106:转发板卡对原始报文进行采样生成被采样报文,并基于sFlow业务板卡CPU聚合组将被采样报文发送至sFlow业务板卡。
在一种实施方式中,原始报文为初始进入转发板卡的采样报文,当转发板卡接收到原始报文时,如果采样功能开启,转发板卡FPGA采样模块将原始报文进行复制,生成的携带有采样标记的被采样报文。生成被采样报文后,由于转发板卡FPGA采样出口寄存器在采样前预先填有sFlow业务板CPU口对应的聚合口的接口索引,因此当转发板卡FPGA发送被采样报文时会以负载分担的方式发送到各个sFlow业务板卡。
步骤S108:sFlow业务板卡基于被采样报文及采样参数构建sFlow采样报文,并将sFlow采样报文发送至采集器。
在一种实施方式中,当sFlow业务板卡接收到经过采样处理流程得到的被采样报文后,通过上述配置好的采样参数构建sFlow采样报文。被采样报文与sFlow采样报文一一对应,也即sFlow业务板卡每收到一个被采样报文,就发送一个基于该被采样报文构建的sFlow采样报文给采集器,由于在该过程中没有释放被采样报文和申请sFlow采样报文的操作,在每个被采样报文的采样信息输出过程中节省了一次报文分配和一次报文释放的开销。
在一种实施方式中,采集器(英文名称:sFlow Collector)可以是PC或服务器,安装sFlow分析客户端软件,诸如sFlow Trend。将构建好的sFlow采样报文通过标准三层网络或指定出接口发送至采集器,由于sFlow业务板卡CPU聚合组的成员为每个sFlow业务板卡的CPU口,因此sFlow采样报文sFlow采样报文可以通过使用多块sFlow业务板分担采样报文处理压力,达到采样性能倍增的效果,从而有效地提升sFlow流采样速率。
本发明提供的sFlow流采样方法,通过针对多块sFlow业务板创建sFlow业务板卡CPU聚合组对被采样报文进行负载分担,有效地提升sFlow流采样速率,由于sFlow业务板卡和该一体化分布式设备上使用的其它业务板卡(如防火墙业务板、入侵防御系统业务板、负载均衡业务板等)具有相同的硬件构造,仅产品款型的面膜上的产品标识信息、所运行的软件版本和软件参数配置有所不同,生产sFlow业务板卡无需额外的硬件设计开发成本。因此,可以满足在网络流量很大时不大幅提升硬件成本和开发成本的前提下,有效地提升sFlow流采样速率。
为便于理解,本发明实施例提供了一种配置硬件环境和软件参数的方法,参见如图2所示的一种参数配置方法的流程示意图,在一体化分布式设备(也即框式设备)中,首先插入至少一块主控板卡,至少一块转发板卡,以及用于采样用的至少一块sFlow业务板卡。首先要配置sFlow功能的各项参数,以及本设备上的sFlow采样报文出口。采样出口支持两种配置方式:
在一种实施方式中,如果一体化分布式设备与采集器按照标准三层组网方式连接时,则上述sFlow业务板卡的出接口为下一跳出接口。则上述步骤S02可以进一步包括步骤a至步骤c:
步骤a,主控板探测目的IP地址的可达性。诸如,主控板可以用ping、traceroute工具或其它方法探测该目的IP的可达性。
步骤b,若可达,在主控板卡上记录去往目的IP地址的下一跳出接口和目的MAC地址。具体的,当目的IP地址可达时,将在主控板上生成相应的ARP表项或邻居表项,记录去往该目的IP地址的下一跳出接口和目的MAC地址。
步骤c,基于主控板卡将采集器的目的IP地址、端口号目的IP地址和目的MAC地址发送至每个sFlow业务板卡,从而将该下一跳出接口和目的MAC地址信息发给各sFlow业务板存好备用,当新插入sFlow业务板时,也将上述目的IP地址、端口号、下一跳出接口以及目的MAC地址信息发给该业务板。
在另一种实施方式中,如果一体化分布式设备与采集器按照直连方式连接时,上述sFlow业务板卡的出接口为直连出接口,上述步骤S102可以为主控板卡将预先配置的采集器的直连出接口发送至每个sFlow业务板卡,当新插入sFlow业务板卡时,也将直连出接口信息发给该新插入的sFlow业务板卡,预先配置的采集器也即经过上述配置过采样参数的采集器。
另外,在上述一体化分布式设备启动时创建sFlow业务板卡CPU聚合组,其成员是各sFlow业务板的CPU口。转发板卡的FPGA芯片指定一个采样出口寄存器,存放上述sFlow业务板卡CPU聚合组对应的聚合口的接口索引。以便基于该聚合口将FPGA芯片复制出来的携带有采样标记的原始报文(也即被采样报文)分担发送至各sFlow业务板CPU。
在一种实施方式中,原始报文(也即流量)从业务接口接收后,送到转发板卡的FPGA芯片中进行转发处理。转发流程中加入采样处理流程,判断采样功能是否开启,如果是,转发板卡对原始报文进行采样,生成复制的携带有采样标记的原始报文(也即被采样报文),具体地,当采样出口寄存器值非0(表示未启用采样功能)时,按指定的采样方式和采样比选取报文进行复制,在复制生成的被采样报文上添加采样标记,然后从上述采样出口寄存器指定的聚合口(也即sFlow业务板卡CPU聚合组的接口)发送出去。这些被采样报文因而根据聚合组的负载分担算法分别去往了各个sFlow业务板的CPU。sFlow业务板的驱动层加入采样报文处理流程。由于sFlow业务板卡CPU除了会收到被采样报文以外,还会收到主控板和业务板间管理用的管理报文,因此当每个sFlow业务板的CPU收到报文数据时,在该流程中检测该报文数据是否带有采样标记(也即判断是否是被采样报文),若否,则什么都不做,将该报文送往下一流程;若是,基于被采样报文及采样参数构建sFlow采样报文。sFlow采样报文构建过程可以参见如图3所示的一种报文处理的流程示意图,具体如下:
可以理解的是,当sFlow业务板卡接收到被采样报文时,基于被采样报文数据链路层头部首字节确定sFlow采样报文的RawPacket数据块的头部信息数据,具体地,由于sFlow采样报文中包含从原始报文数据链路层首部开始的若干字节(即Raw Packet部分),为避免移动这段数据,在sFlow采样报文中直接将被采样报文数据链路层头部首字节(即整个报文的首字节)作为Raw Packet数据块的数据部分首字节:从被采样报文数据链路层头部首字节往前偏移24字节(24表示Raw Packet数据块除了末尾的header_data以外的头部信息的长度),然后向这24个字节中填装Raw Packet数据块的头部信息数据;然后根据前述配置的采样参数进行构建sFlow采样报文,诸如,在得到Raw Packet数据块的头部信息数据的基础上,再向前偏移8字节,填充UDP头部,其中,目的端口号填前述配置的目的端口号,进而再向前偏移若干字节填装网络层头部,具体长度由IPv4或IPv6头部长度而定,选择封装IPv4头部还是IPv6头部取决于采集器IP地址是IPv4地址还是IPv6地址,此处不做限定。目的IP可以是前述配置的采集器目的IP地址,再向前偏移14字节用于填装数据链路层头部,目的MAC可以选择为前述下一跳MAC地址。
可选地,如果是直接配置出接口,则上述构建sFlow采样报文时,目的端口号可以填默认值6343,目的IP配置为固定的合法单播IP值即可,诸如192.168.0.1,目的MAC配置为固定的合法单播MAC地址值即可,诸如00:00:00:00:00:01。
然后,再被采样报文数据链路层头部首字节的位置,根据用户配置的Raw Packet原始报文采样长度len(若len大于原始报文总长度,则将len改为原始报文总长度),从该位置向后偏移len字节,构造并填装其它sFlow数据块信息。最后,重新计算UDP头部中的校验和及IPv4/IPv6头部中的校验和字段并填入相应位置。对于构建完的sFlow采样报文,按照前述一体化分布式设备与采集器的连接关系,选择下一跳出接口或直连出接口直接转发。
为了使被采样报文的头部以前有足够的空闲空间可填装sFlow采样报文从头部到UDP头部的内容,在sFlow业务板驱动层从物理层接收到被采样报文并构建sFlow采样报文时,就要提前留足预留内存区。考虑到一个正常报文的长度不超过1536字节,而在操作系统内存管理机制中,当应用程序申请分配小块内存(一般不超过1MB)时,内存管理机制会按预先划分好的固定大小(一般是2的n次方的大小,如64B、128B、1024B、2048B等)内存块分配出去,例如申请1536字节时,实际上会分配2048字节,因此,在驱动层构建sFlow采样报文时,直接为每个报文分配2048字节,并不会比只分配1536字节更浪费内存。在本发明实施例中,基于被采样报文及采样参数构建sFlow采样报文时,驱动层直接为每个新接收的被采样报文分配2048字节空间,并将这段空间最前若干字节留作预留内存区,便于后续在构建sFlow采样报文时添加扩展头部时使用,避免头部空间不足导致必须向后移动数据或完全重新进行构建sFlow采样报文。预留内存区长度要足够将来可能的头部扩展使用,但不应超过512字节(2048-1536)。诸如,总长度为2048字节的原始的被采样报文内容和sFlow采样报文内容的对应关系参见图4所示。
在本发明实施例中,采样报文处理流程直接嵌入到驱动层收包流程,因此对于多CPU环境,能够在每一个收包线程中都并发执行该采样报文处理流程,并且不需要并发保护,从而能够进一步提升被采样报文处理效率。另外,也无需向缓冲区拷入拷出数据,在协议栈底层解析被采样报文并发送sFlow采样报文也避免了向协议栈上层传递被采样报文的开销,因此能够进一步提升采样效率。
对于上述实施例的sFlow流采样方法,本实施例还提供了一种sFlow流采样装置,参见如图5所示的一种sFlow流采样装置的结构示意图,该装置主要包括以下部分:
参数发送模块502,用于基于主控板卡将预先配置的采集器的采样参数发送至每个sFlow业务板卡;其中,采样参数包括采集器的目的IP地址、端口号、sFlow业务板卡的出接口、目的MAC地址中的一种或多种;
创建模块504,用于创建sFlow业务板卡CPU聚合组;sFlow业务板卡CPU聚合组的成员为每个sFlow业务板卡的CPU口;
采样模块506,用于转发板卡对原始报文进行采样生成被采样报文,并基于sFlow业务板卡CPU聚合组将被采样报文发送至sFlow业务板卡;
sFlow采样报文构建模块508,用于sFlow业务板卡基于被采样报文及采样参数构建sFlow采样报文,并将sFlow采样报文发送至采集器。
本发明提供的sFlow流采样装置,通过针对多块sFlow业务板创建sFlow业务板卡CPU聚合组对被采样报文进行负载分担,提升了sFlow流采样速率,且由于sFlow业务板卡和该一体化分布式设备上使用的其它业务板卡具有相同的硬件构造,因此生产sFlow业务板卡无需额外的硬件设计开发成本。因此本发明实施例可以在不大幅提升硬件成本和开发成本的前提下,有效地提升sFlow流采样速率。
在一种实施方式中,如果一体化分布式设备与采集器按照标准三层组网方式连接时,sFlow业务板卡的出接口为下一跳出接口;上述参数发送模块502,进一步用于主控板卡探测目的IP地址的可达性;若可达,在主控板卡上记录去往目的IP地址的下一跳出接口和目的MAC地址;基于主控板卡将采集器的目的IP地址、端口号目的IP地址和目的MAC地址发送至每个sFlow业务板卡。
在一种实施方式中,如果一体化分布式设备与采集器按照直连方式连接时,sFlow业务板卡的出接口为直连出接口;上述参数发送模块502,进一步用于基于主控板卡将预先配置的采集器的直连出接口发送至每个sFlow业务板卡。
在一种实施方式中,上述装置还包括:增删模块,用于当拔出或插入sFlow业务板卡时,将相应的sFlow业务板卡的CPU口在sFlow业务板卡CPU聚合组删除或新增。
在一种实施方式中,上述采样模块,进一步用于当转发板卡接收到原始报文时,判断采样功能是否开启;如果是,转发板卡对原始报文进行采样,生成被采样报文;被采样报文为携带有采样标记的原始报文;基于sFlow业务板卡CPU聚合组的接口将被采样报文分担发送至每个sFlow业务板卡的CPU。
在一种实施方式中,上述采样模块506,进一步用于当sFlow业务板卡接收到原始报文时,基于被采样报文数据链路层头部首字节确定所述sFlow采样报文的RawPacket数据块的头部信息数据;根据RawPacket数据块的头部信息数据及采样参数构建sFlow采样报文,并将sFlow采样报文发送至采集器。
在一种实施方式中,上述装置还包括:索引填入模块,用于向转发板卡的FPGA芯片的采样出口寄存器填入sFlow业务板卡CPU聚合组的接口索引,以便基于接口索引将被采样报文分担发送至每个sFlow业务板CPU。
在一种实施方式中,上述装置还包括:内存配置模块,用于在构建sFlow采样报文时,当sFlow业务板卡的驱动层从物理层接收到原始报文后,为原始报文分配指定字节内存区;指定字节包括2048字节。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例还提供一种sFlow流采样系统,参见如图6所示的一种sFlow流采样系统的结构示意图,sFlow流采样系统包括上述实施例的一体化分布设备,接收sFlow采样报文的采集器以及连接一体化分布式设备和采集器用于传输报文数据的网络,可选地,该网络可以是二层或三层网络。
本发明提供的sFlow流采样系统,包括一体化分布设备,以及用于接收sFlow采样报文的采集器,通过一体化分布式设备基于主控板卡将预先配置的采集器的采样参数发送至每个sFlow业务板卡,创建sFlow业务板卡CPU聚合组,当sFlow业务板卡CPU接收到原始报文时,基于被采样报文及采样参数构建sFlow采样报文,并将sFlow采样报文通过sFlow业务板卡CPU聚合口发送至采集器。通过针对多块sFlow业务板创建sFlow业务板卡CPU聚合组对原始报文进行负载分担,提升了sFlow流采样速率,且由于sFlow业务板卡和该一体化分布式设备上使用的其它业务板卡具有相同的硬件构造,因此生产sFlow业务板卡无需额外的硬件设计开发成本。可以满足在网络流量很大时,在不大幅提升硬件成本和开发成本的前提下,有效地提升sFlow流采样速率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种sFlow流采样方法,其特征在于,所述方法由一体化分布式设备执行,所述一体化分布式设备包括主控板卡、转发板卡以及一个或多个sFlow业务板卡,所述sFlow业务板卡与所述一体化分布式设备其他业务板卡的硬件构造相同,所述方法包括:
基于所述主控板卡将预先配置的采集器的采样参数发送至每个所述sFlow业务板卡;其中,所述采样参数包括所述采集器的目的IP地址、端口号、所述sFlow业务板卡的出接口、目的MAC地址中的一种或多种;
创建sFlow业务板卡CPU聚合组;所述sFlow业务板卡CPU聚合组的成员为每个所述sFlow业务板卡的CPU口;
所述转发板卡对原始报文进行采样生成被采样报文,并基于所述sFlow业务板卡CPU聚合组将所述被采样报文发送至所述sFlow业务板卡;
所述sFlow业务板卡基于所述被采样报文及所述采样参数构建sFlow采样报文,并将所述sFlow采样报文发送至所述采集器。
2.根据权利要求1所述的方法,其特征在于,如果所述一体化分布式设备与所述采集器按照标准三层组网方式连接时,所述sFlow业务板卡的出接口为下一跳出接口;所述基于所述主控板卡将预先配置的采集器的采样参数发送至每个所述sFlow业务板卡的步骤,包括:
所述主控板卡探测所述目的IP地址的可达性;
若可达,在所述主控板卡上记录去往所述目的IP地址的所述下一跳出接口和所述目的MAC地址;
基于所述主控板卡将所述采集器的所述目的IP地址、所述端口号所述目的IP地址和所述目的MAC地址发送至每个所述sFlow业务板卡。
3.根据权利要求1所述的方法,其特征在于,如果所述一体化分布式设备与所述采集器按照直连方式连接时,所述sFlow业务板卡的出接口为直连出接口;所述基于所述主控板卡将预先配置的采集器的采样参数发送至每个所述sFlow业务板卡的步骤,包括:
基于所述主控板卡将预先配置的采集器的所述直连出接口发送至每个所述sFlow业务板卡。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当拔出或插入所述sFlow业务板卡时,将相应的所述sFlow业务板卡的CPU口在所述sFlow业务板卡CPU聚合组删除或新增。
5.根据权利要求1所述的方法,其特征在于,所述转发板卡对原始报文进行采样生成被采样报文,并基于sFlow业务板卡CPU聚合组将所述被采样报文发送至sFlow业务板卡的步骤,包括:
当所述转发板卡接收到所述原始报文时,判断采样功能是否开启;
如果是,所述转发板卡对所述原始报文进行采样,生成所述被采样报文;所述被采样报文为携带有采样标记的所述原始报文;
基于所述sFlow业务板卡CPU聚合组的接口将所述被采样报文发送至每个所述sFlow业务板卡的CPU。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述sFlow业务板卡接收到报文数据时,判断所述报文数据是否是所述被采样报文;
如果是,基于所述被采样报文数据链路层头部首字节确定所述sFlow采样报文的RawPacket数据块的头部信息数据;
根据所述RawPacket数据块的头部信息数据及所述采样参数构建所述sFlow采样报文,并将所述sFlow采样报文发送至所述采集器。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述转发板卡的FPGA芯片的采样出口寄存器填入所述sFlow业务板卡CPU聚合组的接口索引,以便基于所述接口索引将所述被采样报文分担发送至每个所述sFlow业务板卡CPU。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在构建所述sFlow采样报文时,当所述sFlow业务板卡的驱动层从物理层接收到所述被采样报文后,为所述被采样报文分配指定字节内存区;所述指定字节包括2048字节。
9.一种sFlow流采样装置,其特征在于,所述装置包括一体化分布式设备,所述一体化分布式设备包括主控板卡、转发板卡以及一个或多个sFlow业务板卡,所述sFlow业务板卡与所述一体化分布式设备其他业务板卡的硬件构造相同,所述装置包括:
参数发送模块,用于基于所述主控板卡将预先配置的采集器的采样参数发送至每个所述sFlow业务板卡;其中,所述采样参数包括所述采集器的目的IP地址、端口号、所述sFlow业务板卡的出接口、目的MAC地址中的一种或多种;
创建模块,用于创建sFlow业务板卡CPU聚合组;所述sFlow业务板卡CPU聚合组的成员为每个所述sFlow业务板卡的CPU口;
采样模块,用于所述转发板卡对原始报文进行采样生成被采样报文,并基于所述sFlow业务板卡CPU聚合组将所述被采样报文发送至所述sFlow业务板卡;
sFlow采样报文构建模块,用于所述sFlow业务板卡基于所述被采样报文及所述采样参数构建sFlow采样报文,并将所述sFlow采样报文发送至所述采集器。
10.一种sFlow流采样系统,其特征在于,所述sFlow流采样系统包括如权利要求1所述的一体化分布式设备,接收sFlow采样报文的采集器以及连接所述一体化分布式设备和所述采集器用于传输报文数据的网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010210353.XA CN111385156B (zh) | 2020-03-23 | 2020-03-23 | sFlow流采样方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010210353.XA CN111385156B (zh) | 2020-03-23 | 2020-03-23 | sFlow流采样方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111385156A true CN111385156A (zh) | 2020-07-07 |
CN111385156B CN111385156B (zh) | 2022-02-25 |
Family
ID=71218798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010210353.XA Active CN111385156B (zh) | 2020-03-23 | 2020-03-23 | sFlow流采样方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111385156B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113114522A (zh) * | 2021-03-03 | 2021-07-13 | 杭州迪普信息技术有限公司 | 流量监控设备 |
CN114338595A (zh) * | 2021-12-31 | 2022-04-12 | 山石网科通信技术股份有限公司 | 报文的分布式处理方法、装置、存储介质及处理器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065759A (zh) * | 2013-03-22 | 2014-09-24 | 杭州迪普科技有限公司 | 一种提高nat地址池资源利用效率的方法及装置 |
US20150229544A1 (en) * | 2007-07-10 | 2015-08-13 | Level 3 Communications, Llc | System and method for aggregating and reporting network traffic data |
CN106559322A (zh) * | 2015-09-25 | 2017-04-05 | 北京计算机技术及应用研究所 | 一种基于多龙芯并行处理架构的安全防护网关 |
CN107770061A (zh) * | 2016-08-16 | 2018-03-06 | 华为技术有限公司 | 转发报文的方法及转发设备 |
CN109787914A (zh) * | 2019-03-28 | 2019-05-21 | 新华三技术有限公司 | 负载分担方法、装置及网络设备 |
WO2019147597A1 (en) * | 2018-01-23 | 2019-08-01 | Arista Networks, Inc. | Accelerated network traffic sampling using an accelerated line card |
CN110391994A (zh) * | 2019-07-24 | 2019-10-29 | 杭州迪普科技股份有限公司 | 网络流量转发方法、装置、电子设备 |
CN110557302A (zh) * | 2019-08-30 | 2019-12-10 | 西南交通大学 | 网络设备报文观测数据采集方法 |
-
2020
- 2020-03-23 CN CN202010210353.XA patent/CN111385156B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150229544A1 (en) * | 2007-07-10 | 2015-08-13 | Level 3 Communications, Llc | System and method for aggregating and reporting network traffic data |
US20180159750A1 (en) * | 2007-07-10 | 2018-06-07 | Level 3 Communications, Llc | System and method for aggregating and reporting network traffic data |
CN104065759A (zh) * | 2013-03-22 | 2014-09-24 | 杭州迪普科技有限公司 | 一种提高nat地址池资源利用效率的方法及装置 |
CN106559322A (zh) * | 2015-09-25 | 2017-04-05 | 北京计算机技术及应用研究所 | 一种基于多龙芯并行处理架构的安全防护网关 |
CN107770061A (zh) * | 2016-08-16 | 2018-03-06 | 华为技术有限公司 | 转发报文的方法及转发设备 |
WO2019147597A1 (en) * | 2018-01-23 | 2019-08-01 | Arista Networks, Inc. | Accelerated network traffic sampling using an accelerated line card |
CN109787914A (zh) * | 2019-03-28 | 2019-05-21 | 新华三技术有限公司 | 负载分担方法、装置及网络设备 |
CN110391994A (zh) * | 2019-07-24 | 2019-10-29 | 杭州迪普科技股份有限公司 | 网络流量转发方法、装置、电子设备 |
CN110557302A (zh) * | 2019-08-30 | 2019-12-10 | 西南交通大学 | 网络设备报文观测数据采集方法 |
Non-Patent Citations (2)
Title |
---|
祝超等: "多核架构下实时IP流测量的硬件加速方法", 《通信学报》 * |
赵梦亚等: "基于OpenFlow的负载均衡机制", 《计算机工程与设计》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113114522A (zh) * | 2021-03-03 | 2021-07-13 | 杭州迪普信息技术有限公司 | 流量监控设备 |
CN113114522B (zh) * | 2021-03-03 | 2022-07-01 | 杭州迪普信息技术有限公司 | 流量监控设备 |
CN114338595A (zh) * | 2021-12-31 | 2022-04-12 | 山石网科通信技术股份有限公司 | 报文的分布式处理方法、装置、存储介质及处理器 |
CN114338595B (zh) * | 2021-12-31 | 2024-02-02 | 山石网科通信技术股份有限公司 | 报文的分布式处理方法、装置、存储介质及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN111385156B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10341748B2 (en) | Packet-optical in-band telemetry (POINT) framework | |
WO2021207922A1 (zh) | 报文传输方法、装置及系统 | |
US7512705B2 (en) | Truncating data units | |
EP3435606A1 (en) | Message processing method, computing device, and message processing apparatus | |
JP2000155736A (ja) | サービス要求の振り分け方法及びアドレス変換装置 | |
JPH098838A (ja) | Lanを相互接続するための方法および装置 | |
WO2009012688A1 (fr) | Procédé, système et appareil de réacheminement de message dans un réseau privé virtuel à trois couches | |
US20200296624A1 (en) | Frame aggregation method, network setting frame sending method, and device | |
CN101258719A (zh) | 延长InfiniBand网络的实时到达的方法 | |
CN108243035A (zh) | Dcn报文处理方法、网络设备和网络系统 | |
CN111385156B (zh) | sFlow流采样方法、装置及系统 | |
CN112583718B (zh) | 一种SRoU场景下SRv6报文传递方法、系统、设备及介质 | |
CN108200199B (zh) | IPV4 over IPV6隧道场景中的负载均衡系统及方法 | |
US11171860B2 (en) | Method for obtaining target transmission route, related device, and system | |
CN113746753A (zh) | BIERv6报文转发的方法、设备以及系统 | |
US6785273B1 (en) | Traffic engineering for an application employing a connectionless protocol on a network | |
CN116488958A (zh) | 网关处理方法、虚拟接入网关、虚拟业务网关及相关设备 | |
WO2022121638A1 (zh) | 一种报文处理方法及装置 | |
CN100361465C (zh) | 宽带数字用户接入集中器级联组网的自动拓扑发现的方法 | |
CN114221867A (zh) | 一种操作管理维护oam报文处理方法及设备 | |
US8036218B2 (en) | Technique for achieving connectivity between telecommunication stations | |
CN115633279B (zh) | Osu交叉设备及基于osu交叉设备的数据传输方法 | |
US20030033438A1 (en) | Method for automatically allocating a network planning process to at least one computer | |
CN114866510B (zh) | 一种基于InfiniBand网络的跨网异地互联通信方法及系统 | |
WO2024001701A1 (zh) | 数据处理方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |