NetStream技术是一种基于流的统计技术,可以对网络中的业务流量进行统计分析。它根据IPv4报文的目的ip、源ip、目的端口、源端口、协议号、ToS(Type of Service,服务类型)、输入接口或输出接口来定义流,七元组相同的报文属于同一条流。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流老化是设备向NetStream服务器输出流统计信息的一种手段。当设备开启NetStream功能后,流统计信息首先会被储存在设备的NetStream缓冲区中。当储存在设备上的NetStream流信息老化后,设备会把缓冲区中的流统计信息通过制定版本的NetStream输出报文发送给NetStream服务器,同时清除缓冲区中对应的信息。
NetStream流老化有按时老化、强制老化、TCP的FIN和RST报文触发老化三种方式。
按时老化分为以下两种:
•流的不活跃老化:从采集到到的最后一个报文开始,该流在指定的时间内没有被采集到,那么设备会向NetStream服务器输出该流的统计信息,这种老化称为流的不活跃老化。通过这种老化,可以清除设备上NetStream缓冲区中的无用表项,充分利用统计表项资源。
•流的活跃老化:从采集到的第一个报文开始,该流在指定时间内能被采集到。活跃时间超过设定时长后,需要输出该流的统计信息,这种老化称为流的活跃老化。设备向NetStream服务器输出流的统计信息后,因为该流还存在,所以设备会继续统计该流。这种老化方式是设备定期向NetStream服务器输出流统计信息的一种机制。
强制老化分为以下两种方式:
•手工强制老化:执行命令强制将NetStream缓冲区中所有流老化、输出,并清空NetStream缓冲区信息。
•最大数目老化:当NetStream流缓冲区中流表项的数目达到最大数时,强制老化部分流表项或禁止新建流表项。
TCP的FIN和RST报文触发老化:
对于TCP连接,当收到标志为FIN或RST的报文时,表示一次会话结束。因此当一条已经存在的TCP协议NetStream流中流过一个标志为FIN或RST的报文时,可以立即老化,输出相应的NetStream流,并清除该NetStream流。但是假如一条流的第一个报文就是TCP的FIN或RST报文,则会按正常的流程创建一条新流,不进行老化。
普通流输出:
指所有流的统计信息都要被统计。在流老化后,每条流的统计信息都要输出到NetStream服务器。优点是NetStream服务器可以得到每条流的详细统计信息。缺点是增加了网络带宽和设备的CPU占有率,而且为了储存这些信息,需要大量的储存空间。
聚合流输出:
指设备对与聚合关键项完全相同的流的统计信息进行汇总,从而得到对应的聚合流统计信息,并将该聚合统计信息发送到相应的NetStream服务器。
目前聚合流输出支持的聚合方式如表所示。系统根据选择的聚合方式聚合关键项,将关键项相同的多条流的统计信息合并为一条流的统计信息,记录该聚合流的统计信息。这些聚合方式相互独立,可以同时配置。
在统计AS号时,如果流量没有按照BGP的路由表进行转发,则系统无法统计住AS号。
在统计BGP下一跳地址时,如果流量没有按照BGP的路由表进行转发,则系统无法统计出BGP下一跳地址。
NetStream流输出格式
版本5:根据七元组产生原始的数据流,不支持聚合流输出,报文格式固定,不易扩展。
版本8:支持聚合流流输出,报文格式固定,不易扩展。
版本9:基于模板方式,模板可遵循RFC定义的模板格式的前提下自定义。版本9支持聚合流输出,对BGP下一跳信息和MPLS报文的统计输出。
NetStream镜像功能是将满足某种QoS策略或指定端口上的报文复制到提供NetStream功能的业务板上,然后在业务板上进行流量统计和NetStream流表项的输出。通过这种方式,可以将NetStream流统计集中到一块业务板上,而不会对设备的转发性能造成影响。
NetStream镜像由一下方式:
NetStream流镜像,通过QoS策略定义类,并定义流行为将符合分类的报文镜像到提供NetStream功能的业务板或业务设备上。
NetStream端口镜像,端口镜像是指将端口上的报文镜像到提供NetStream功能的业务板或业务设备上。
NetStream过滤功能
NetStream可以与ACL(Access Control List,访问控制列表)配合使用,NetStream只统计ACL筛选出的报文。通过这种方式可以使NetStream只对用户关注的数据进行统计,更能满足用户要求。
NetStream采样功能
NetStream可以与Sampler(采样器)配合使用。通过设定适当的采样间隔,不但减少了统计的报文数量,也可以保证收集到的统计信息基本正确的反应整个网络流的状况。另外,采样还可以减小网络的流量,避免网络中的大流量对设备转发性能造成影响。
开启NetStream功能
进入系统视图
System-veiw
开启全局的NetStream功能
ip netstream
开启接口的NetStream功能
进入系统视图
System-veiw
进入接口视图
interface interface-type interface-number
开启接口的NetStream功能
ip netsteam [inbound | outbound]
缺省情况下,全局的NetStream功能处于关闭状态。
开启NetStream流表项信息存档功能
缺省情况下,NetStream流表项信息存档功能处于关闭状态。缓存中的NetStream流表项老化输出后,就会从缓存中清除。用户无法查看已输出的流表项信息。配置本特性后,NetStream会将统计到的流表项信息在老化输出之前以二进制的形式保存到本地,名称为netstream.log。使用display ip netstream cache archive命令可查看保存到本地的NetStream流表项信息。
当本地已无足够剩余储存空间的情况时,设备将用新的NetStream流表项覆盖旧的NetStream流表项来保证NetStream流表项存档。
本功能适用于少量NetStream流表项目且无日志服务器的场景,对于大量NetStream流表项的场景,开启本功能后会影响设备性能,不建议启用。
进入系统视图
system-view
开启NetStream流表项信息存档功能
ip netstream cache archive enable
缺省情况下,NetStream流表项信息存档功能处于关闭状态