【SPOTO思博网络】【干货基础必看】网络管理与监控《NetStream》
什么是NetStream?
NetStream技术是一种基于流的统计技术,可以对网络中的业务流量进行统计分析。
它根据IPv4报文的目的ip、源ip、目的端口、源端口、协议号、ToS(Type of Service,服务类型)、输入接口或输出接口来定义流,七元组相同的报文属于同一条流。
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系统中的设备角色
NetStream流老化
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报文,则会按正常的流程创建一条新流,不进行老化。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps44D2.tmp.jpg
NetStream流输出
普通流输出
指所有流的统计信息都要被统计。在流老化后,每条流的统计信息都要输出到NetStream服务器。优点是NetStream服务器可以得到每条流的详细统计信息。缺点是增加了网络带宽和设备的CPU占有率,而且为了储存这些信息,需要大量的储存空间。
聚合流输出
指设备对与聚合关键项完全相同的流的统计信息进行汇总,从而得到对应的聚合流统计信息,并将该聚合统计信息发送到相应的NetStream服务器。
目前聚合流输出支持的聚合方式如表所示。系统根据选择的聚合方式聚合关键项,将关键项相同的多条流的统计信息合并为一条流的统计信息,记录该聚合流的统计信息。这些聚合方式相互独立,可以同时配置。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps44D3.tmp.jpg
在统计AS号时,如果流量没有按照BGP的路由表进行转发,则系统无法统计住AS号。
在统计BGP下一跳地址时,如果流量没有按照BGP的路由表进行转发,则系统无法统计出BGP下一跳地址。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps44E4.tmp.jpg
NetStream流输出格式
版本5:根据七元组产生原始的数据流,不支持聚合流输出,报文格式固定,不易扩展。
版本8:支持聚合流流输出,报文格式固定,不易扩展。
版本9:基于模板方式,模板可遵循RFC定义的模板格式的前提下自定义。版本9支持聚合流输出,对BGP下一跳信息和MPLS报文的统计输出。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps44E5.tmp.jpg
NetStream显示
在任意视图下执行display命令可以显示配置后NetStream的运行情况,在用户视图下执行reset命令可以清除NetStream的统计信息。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps44E6.tmp.jpg file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps44E7.tmp.jpg file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps44E8.tmp.jpg
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps44E9.tmp.jpg
基于会话的NetStream
基于会话的NetStream用来对基于会话的业务流量进行统计和分析并使用NetStream版本9对报文进行输出。
聚合方式:
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps44EA.tmp.jpg
当设备开启基于会话的NetStream功能后,生成的统计信息存储在设备的NetStream缓冲区中,根据用户指定的基于会话的NetStream表项老化时间发送给服务器,输出后会自动清除缓冲区的统计信息。
在尚未达到用户指定的基于会话的NetStream表项的老化时间,但NetStream缓冲区已无足够剩余储存空间的情况下,设备将停止对新增会话信息进行统计,但依旧对已有会话信息进行统计。
当统计的会话本身已经老化或者统计的会话被手动删除也会触发NetStream表项输出。
基于会话的NetStream必须在开启DPI功能后才能生效。
进入系统视图 System-view
开启基于会话的NetStream功能 Session-based netstream enable
缺省情况下,基于会话的NetStream功能处于关闭状态 配置基于会话的NetStream聚合方式 Session-bsed netstream aggregation {app | app-interface | app-profile |app-user | app-zone |session}
缺省情况下,未配置任何基于会话的NetStream的聚合方式 配置基于会话的NetStream输出报文的目的地址和目的UDP端口号 (可选)配置基于会话的NetStream输出报文的源地址 Session-based netstream export source ip ip-address
缺省情况下,采用输出报文出接口的主IP地址作为源地址 (可选)配置基于会话的NetStream统计信息表项老化时间 Session-based netstream timeout minutes
缺省情况下,基于会话的NetStream统计信息表项的老化时间为分钟
显示基于会话的NetStream的统计信息 display session-based netstream aggregation-cache {app | app-interface | app-profile | app-user | app-zone | session}
了解更多课程↓↓↓ 进入全国网络工程师交流群 ,请扫描下方二维码↓↓↓
群里有行业大咖、实战分享、技术交流、技术咨询、企业内推等机会
若群满,请添加老杨微信(spotoa),邀你进群
|