开源netflow流量分析工具(数据流量监控软件推荐)

开源netflow流量分析工具(数据流量监控软件推荐)

  对于很多网络技术人员,需要判断流量抓包来判断流量转发情况,那么交换机和路由器上不支持直接抓包功能怎么办呢?这就孕育出了交换机的流量镜像和路由器的流量输出协议Netflow/Netstream。

  1、 Netflow的工作原理

  NetFlow是一种数据交换方式。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。Netflow由Cisco创造的。

  工作原理:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略,NetFlow缓存同时包含了随后数据流的统计信息。NetFlow有两个核心的组件:NetFlow缓存,存储IP流信息;NetFlow的数据导出或传输机制,NetFlow利用此机制将数据发送到网络管理采集器。一个NetFlow流定义为在一个源IP地址和目的IP地址间传输的单向数据包流,且所有数据包具有共同的传输层源、目的端口号。 确定Flow的标识:SIP+DIP+SPORT+DPORT +Layer 3 protocol type + TOS byte() + Router or switch interface。

  Netflow根据7元组来标识一条流分别为:源ip地址、目的ip地址、源端口号、目的端口号、ip协议类型、服务类型(ToS)、输入/输出接口。

  Netflow(netflow)数据采集与分析图:

  NDE(netstream data exporter):NDE 使用流缓存来维护流的相关信息和处理规则,根据流的第一个报文建立一个处理规则,后续利用该规则对后续网络流进行分析处理,提取符合条件的流统计信息,并将统计信息输出给NDC 设备。输出前也可对数据进行一些处理,比如聚合。

  NSC(NetStream Collector):通常为一个应用程序。负责解析来自NDE 的报文,把统计数据收集到数据库中,可供NDA 进行解析。NSC 可以采集多个NDE 设备输出的数据,对数据进行进一步的过滤和聚合。

  NDA(NetStream Data Analyzer):NDA 是一个网络流量分析工具,它从NDC 中提取统计数据,ADS检测设备充当的是NDA角色。

  对入接口和出接口分别独立进行统计Netstream (netflow)流统计时按照出入接口独立统计。对于出接口:由出接口、源 IP 地址、目的IP 地址、源端口号、目的端口号、协议号和TOS 组成的七元组确定一条流(对于路由负载分担的情况,流统计信息中的下一跳和出接口从第一个负载分担路由项获取);对于入接口:由入接口、源 IP 地址、目的IP 地址、源端口号、目的端口号、协议号和TOS 组成的七元组确定一条流。

  2、 Netflow与Netstream区别

  netflow是思科的,华为叫做netstream,两者没有太大的本质区别。Netflow默认端口为9996,而华为的netstream的端口为1-65535之间的任意端口。

  另外由Foundry、HP、Alcatel、NEC、Extreme等代表厂商使用的sflow,同NetFlow一样,sFlow是一种向采集器发送报告的推送技术。所不同的是,NetFlow是一种基于软件的技术,而sFlow则采用内置在硬件中的专用芯片。这种做法消除了路由器或交换机的CPU和内存的负担。sFlow系统的基本原理为:分布在网络不同位置的sFlow代理把sFlow数据报源源不断地传送给中央sFlow采集器,采集器对sFlow数据报进行分析并生成丰富的、实时的、全网范围的传输流视图。 sFlow是一种纯数据包采样技术,即每一个被采样的X包的长度被记录下来,而大部分的包则被丢弃,只留下样本被传送给采集器。由于这项技术是基于样本的,如果没有复杂的算法来尝试推测准确的会话字节量,那么几乎不可能获得每台主机流量100%的准确值。在使用这项技术时,交换机每隔100个数据包(可配置)对每个接口采一次样,然后将它传送给采集器。sFlow的规格也支持1比1的采样率,即对每一个数据包都进行”采样”。对数据包最大采样频率的限制取决于具体的芯片厂商和sFlow实现情况。NetFlow更多的是在路由器上得到支持,而sFlow则在交换机上更加流行。两者都是开放标准,但在非常大的流量传输环境中,sFlow采样架构可能要优于NetFlows汇集方式。

推荐阅读