Netstream 流量分析技术

网友投稿 655 2022-09-11


Netstream 流量分析技术

本文参考华为手册

NetStream简介

定义

NetStream是一种对网络中的业务流量进行统计和分析的技术。

目的

随着因特网的高速发展,支持的业务和应用日益增多。导致网络和业务的部署和维护变得非常复杂,所以我们需要一种流量统计技术,以便对网络流量进行统计和分析,实现网络的细致管理和优化。

传统的流量统计技术,由于其统计流量的方式不灵活并存在局限性(如表1所示),不能满足当前的业务需求。在这样的背景下,精细化的流量监控和分析技术NetStream应运而生。

受益

计费:

NetStream为基于资源(如线路、带宽、时段等)占用情况的计费提供了精细的数据,这些数据包括IP地址、包数、字节数、时间、ToS和应用类型等。企业客户可以使用这些信息计算部门费用或分配成本,以便有效利用资源。

网络监控:

NetStream能够实现近于实时的网络监控功能。通过在连接Internet的接口部署NetStream,可以对网络出口进行实时的流量监控,分析各种业务占用出口带宽的情况。网管人员可以根据这些信息判断网络的运行情况,尽早发现不合理的网络结构或是网络中的性能瓶颈,方便企业客户规划和分配网络资源。

NetStream系统组成

一个典型的NetStream系统由网络流数据输出器NDE(NetStream Data Exporter)、网络流数据收集器NSC(NetStream Collector)和网络流数据分析器NDA(NetStream Data Analyzer)三部分组成。

NDE:负责对网络流进行分析处理,提取符合条件的流进行统计,并将统计信息输出给NSC。输出前也可对数据进行一些处理,比如将相同的流量统计信息进行合并。配置了NetStream功能的设备在NetStream系统中担当NDE角色。 NSC:负责解析来自NDE的报文,把统计数据收集到数据库中,可供NDA进行解析。NSC可以采集多个NDE设备输出的数据,对数据进行进一步的处理。 NDA:是一个网络流量分析工具,它从NSC中提取统计数据,进行进一步的加工处理后生成报表,为各种业务提供依据(比如流量计费、网络规划、攻击监测)。通常,NDA具有图形化用户界面,使用户可以方便地获取、显示和分析收集到的数据。 在实际的应用中,NSC和NDA一般集成在一台NetStream服务器上,如图1所示。NDE通过NetStream采样获取10GE1/0/1接口出方向流量信息,并按照一定条件建立NetStream流,当NetStream缓存区已满或者NetStream流达到老化时间,NDE会将统计的信息封装成NetStream报文发送到NetStream服务器。NetStream服务器对NetStream报文进行分析处理,并显示分析结果。

NetStream工作过程

如图1所示,NetStream系统的工作过程如下:

1.配置了NetStream功能的设备(即NDE)把采集到的关于流的详细统计信息定期发送给NSC。2.信息由NSC初步处理后发送给NDA。3.NDA对数据进行分析,以用于计费、网络规划等应用。

设备作为NDE实现如下功能:1.设备按一定的采样方式对业务流进行采样,并建立NetStream流。请参见NetStream流的建立。2.存储在设备上的NetStream流达到一定的条件后进行老化。请参见NetStream流老化。3.NetStream流老化后,设备对NetStream流进行输出。请参见NetStream流输出。

NetStream流的建立

设备的NetStream模块按一定的方式对业务流量进行采样,获取采样信息后,按照一定的条件建立NetStream流。

NetStream采样

NetStream与采样器配合,通过在接口设定适当的采样比对经过的业务流量进行采样。

NetStream采样的优点:只需要针对样本报文进行流信息统计分析。这样不但减少了统计的报文数量,收集到的统计信息也可以基本正确地反映整个网络流的状况,同时也能降低使能NetStream功能对设备性能的影响。

设备支持随机报文间隔采样,即报文在配置数目间隔内被随机采样。比如报文间隔数配置为100,则每100个报文随机采样1个报文。

NetStream流

NetStream是一项基于“流”来提供报文统计的技术。得到采样报文后,NetStream模块对报文进行分析处理,依据报文中的关键值形成一条条的流。形成流的关键值如下:

对于报文的二层信息,相同的五元组标识为同一条流。五元组是指报文的目的MAC地址、源MAC地址、VLAN ID、以太类型、输入接口或输出接口。
对于IPv4报文,相同的七元组标识为同一条流。七元组是指报文的目的IP地址、源IP地址、目的端口号、源端口号、协议类型、服务类型ToS(Type of Service)、输入接口或输出接口。
对于IPv6报文,相同的八元组标识为同一条流。八元组是指报文的目的IPv6地址、源IPv6地址、目的端口号、源端口号、协议类型、服务类型ToS、流标签、输入接口或输出接口。
对于MPLS报文,可以统计MPLS标签信息、MPLS报文内的IP信息、MPLS标签信息和内层IP信息。

NetStream流老化

NetStream流老化是设备向NSC输出流统计信息的前提。设备启用NetStream功能后,NetStream流首先会被存储在设备的缓存区中,当缓存区中的NetStream流达到老化条件时,设备会把缓存区中的NetStream流发送给NSC。

NetStream流老化分为以下几类:

按自定义条件老化

活跃流的老化

从第一个报文开始,一条流在指定的时间内一直能被采集到。流活跃时间超过设定的时长后,需要输出该流的统计信息,这种老化称为活跃流的老化。该种老化方式主要用于持续时间较长的流量,定期输出统计信息。

非活跃流的老化

从最后一个报文开始,一条流在指定的时间内没有被采集到(即在设定时长内统计到的报文数目没有增加),设备会向NetStream服务器输出该流的统计信息,这种老化称为不活跃的流老化。通过这种老化,可以清除设备上NetStream缓存区中的无用表项,充分利用统计表项资源。该种老化方式主用于短时流量,流量停止则立即输出统计信息,节省内存空间。

由TCP连接的FIN和RST报文触发老化

当有标志为FIN或RST的报文发送时,表示一次会话结束。因此当采样的报文中有FIN或RST的报文时,设备会对统计信息进行老化。

超规格自动老化

超流表规格老化

设备对于NetStream流表规格的大小进行了限制。当NetStream的流表数超过该限制时,为了保证统计信息的正确性,系统会立即自动把该流老化掉。

超字节统计限制老化

缓存区中的NetStream流需要记录流过的报文字节数,当字节数统计超过限制(最大计数值为4294967295,约为3.9G字节)时,如果继续进行累加统计将会发生溢出进而导致统计发生错误。所以系统在检测到某条流的字节数统计超过限制时,系统会立即自动把该流老化掉。

命令行强制老化

用户可以通过执行命令强制将NetStream缓存区中所有NetStream流老化。该功能主要用于老化条件尚未满足,但又需要最新的统计信息,或者NetStream业务发生异常,导致流缓存区中某些流始终不老化。

NetStream流输出

NetStream流输出是指储存缓存区里面的流老化后把流统计信息输出到指定的NSC,以便后续进行更为详尽的分析。

NetStream流输出方式

原始流输出方式

在流老化时间超时后,每条流的统计信息都要输出到NSC。原始流输出方式的优点是:NSC可以得到每条流的详细统计信息。

聚合流输出方式

聚合流输出方式是指设备对与聚合关键项完全相同的原始流统计信息进行汇总,从而得到对应的聚合流统计信息。通过对原始流进行聚合后输出,可以明显减少网络带宽。支持如表1所示的聚合方式。

灵活流输出方式

对于灵活流输出,其流的建立条件是按照自定义的条件设置。根据自身需要,用户可以对报文按照协议类型、ToS优先级、源IP地址、目的IP地址、源端口号、目的端口号或流标签进行分类统计,从而将分类统计信息发送给NSC。灵活流方式相比原始流方式可减少流量的占用。可以为用户提供一种自由的NetStream流量统计方式。

在灵活流统计方式下,当配置出方向灵活流采样时,灵活流统计报文中只有出接口信息,没有入接口信息;当配置入方向灵活流采样时,灵活流统计报文中只有入接口信息,没有出接口信息。

二层流输出方式

二层流输出方式,设备只对流量的二层信息进行统计,并将统计信息发送至NSC进行更加详尽的分析。

输出报文的版本格式

NetStream输出的报文主要有V5、V8、V9三个版本。所有版本的报文都是通过UDP协议传递统计信息。V5:根据七元组产生原始的数据流,但报文格式固定,不易扩展。V8:支持聚合输出格式,但报文格式固定,不易扩展。V9:基于模板方式,使统计信息的输出更为灵活,可以用来灵活输出各种组合格式的数据。

NetStream Top Talkers

一个典型的NetStream系统由网络流数据输出器NDE、网络流数据收集器NSC和网络流数据分析器NDA三部分组成,其中NSC和NDA部署在NetStream服务器上。配置了NetStream功能的设备即NDE把采集到的流量定期发送给NetStream服务器,NetStream服务器会对数据进行分析,用户根据NetStream服务器分析的结果实时地对网络流量进行监控。但是在没有部署NetStream服务器的网络中,或者由于安全需要禁止设备将流量统计信息输出到NetStream服务器的网络中,用户无法实时地了解网络的运行情况,NetStream Top Talkers可以很好的解决这个问题。

NetStream Top Talkers支持根据用户指定的匹配关键字对流量进行过滤,然后对过滤后的流量进行统计,并按照一定的规则进行排序,最终在设备上只显示前N条(NetStream Top Talkers模板可记录流量的条数)流量,用户根据这些信息实时地了解网络的运行情况。这N条流量称为top talkers。

NetStream Top Talkers对流量过滤的匹配关键字有:源端口号、目的端口号、源IP地址、目的IP地址、下一跳IP地址、源自治域、目的自治域、报文优先级、协议类型、报文数和字节数。

NetStream Top Talkers对流量的排序规则有:

按照每个top talker的所有字节数以从大到小的顺序进行排序。 按照每个top talker的所有报文数以从大到小的顺序进行排序。

NetStream采样比的计算

设备的NetStream采样比由netstream sampler random-packets packet-interval { inbound | outbound } 命令配置,为packet-interval参数的取值。

除CE6880EI和CE5880EI外的交换机

NetStream采样比与设备对报文的处理能力、需要配置NetStream采样的接口数目、采样的方向、接口速率以及网络中报文的平均长度有关。

推荐配置的最小NetStream采样比计算公式如下:

其中:

转发带宽=接口数×接口速率,单位Gbps。如果需要配置接口出方向和入方向的NetStream采样功能,则转发带宽=接口数×接口速率×2。 接口数:表示配置NetStream功能的接口数目。 接口速率:表示该接口的速率。 例如:在4个10GE接口上配置入方向NetStream采样功能,在其它6个10GE接口上配置出方向和入方向NetStream采样功能,且接口满速率工作。此时转发带宽=4×10+6×10×2。 报文平均长度:表示网络中报文的平均长度,单位byte。 20:表示帧间隙和前导码的长度,单位byte。 设备对报文的处理能力:单位pps。设备可以使用CPU进行NetStream采样(非增强模式),也可以不使用CPU进行NetStream采样(增强模式)。不同的采样方式,设备对报文的处理能力也不一样。 非增强模式下:设备(除CE8860EI、CE8861EI和CE8868EI外)对报文的最大处理能力为5000pps,建议用户使用3000pps,对CPU影响较小。对于CE8860EI、CE8861EI和CE8868EI设备,其每个子卡对报文的最大处理能力为5000pps,建议用户使用3000pps,对CPU影响较小。 增强模式下:设备对报文的处理能力约为1500000pps。建议用户使用1500000pps。用户可以通过命令assign forward enp netstream enable开启增强模式功能,该模式下不使用CPU采样,所以不会对CPU产生影响。

NetStream采样比与设备对报文的处理能力、需要配置NetStream采样的接口数目、采样的方向、接口速率以及是否运行了其它业务有关。当NetStream和二三层转发业务同时使用时,推荐配置的NetStream采样比为1024。和NetStream同时使用的业务越多,NetStream采样比需要配置的越大。

建议配置NetStream功能的子接口数不要超过16k,否则会影响设备的转发能力。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Telemetry 流量统计分析(telemetry采集流量精度)
下一篇:SpringBoot框架实现切换启动开发环境和测试环境
相关文章

 发表评论

暂时没有评论,来抢沙发吧~