NetFlow学习笔记-lzh

NetFlow学习笔记-lzh

NetFlow是一种数据交换方式。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。也许它不能象tcpdump那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和易读。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

数据采集格式

NFC(Cisco NetFlow Collector) 可以定制多种NetFlow数据采集格式,下例为NFC2.0采集的一种流量数据实例,本文的分析都基于这种格式。

61.*.*.68|61.*.*.195|64917|Others|9|13|4528|135|6|4|192|1 数据中各字段的含义如下:

源地址|目的地址|源自治域|目的自治域|流入接口号|流出接口号|源端口|目的端口|协议类型|包数量|字节数|流数量

cache缓存空间

可配置的Cache维护机制

一般情况下Cache空间的占用是与所监控的Flow数量呈正比的,但是当链路中充斥着大量的短连接Session时,

Flow表项数量可能会因为没有得到及时释放而过多占用有限的Cache空间。为此,NetFlow提供了一种非常复杂、

高效的算法以快速定位一个数据包在该Cache中的位置或判断是否应新建表项,并且通过管理员给定

的阀值进行各类表项的超时导出,从而及时释放老的表项以容纳新建Flow信息。 Flow Cache表项Timed-Out操作可由以下几项因素进行驱动: 该表项已经空闲了指定的时间长度(Inactive Timer,缺省15 seconds);

长连接会话强制超时(Active Timer,缺省30 minutes); 缓存空间耗尽所触发的强制超时; TCP FIN/RST触发的超时。

规范的导出报文格式

NetFlow采用了主动式数据推送机制,一般用UDP传送。 NetFlow的封装格式分为1个Header和若干个Record:

Header:主要包括版本号、序列号、后续Record数量、系统启动时间等; Record:提供对每个Flow的详细数据记录。

下文以NetFlow V9为例,输出报文Header与Record整体结构如下所示:

在上述格式中,各字段的具体含义描述如下: 表格3-3 NetFlow V9各字段含义 字段长字段名称 所处位置 度 含义 Version Count System Uptime Unix Seconds Header Package Sequence Source ID FlowSet ID Template FlowSet Length Template ID Field Count Template Record Field 1 Type Field 1 Length …… Field N Type Field N Length FlowSet ID Length Record 1 - Field 1 value Data FlowSet Data Record 2 Bytes 版本号,0x0009 报文中所有记录的数量(包括2 Bytes template and data两种类型) 4 Bytes 自网元设备加电以来的毫秒数 网元设备当前机器时间(与所在时区相关)与格林威治时间(亦即”0 4 Bytes UTC”)1970年1月1日 0点0分0秒之间的秒数差额 网元设备所导出的Flow报文的序列4 Bytes 号,顺序递增,可用以检测Flow报文丢失。 由0x0000+路由引擎标识+线路板卡标识构成,可与Flow报文源IP地址4 Bytes 结合起来唯一的标识Flow信息导出节点。 用以区分Template Record和Data Record。Template Record的2 Bytes FlowSet ID 位于0~255之间,而 Data Record 的FlowSet ID 总在255以上。 2 Bytes 本FlowSet的总体长度。 开始一个新的Template Record,声明一个新的Data Record格式的编号2 Bytes ID,数值总大于255,在该网元设备本地有效。 本Template Record所包含的字段数2 Bytes 量。 开始一个新字段的定义,说明该字段的类型,类型编号与厂商相关,Cisco2 Bytes 在NetFlow V9中总共定义了89种类型。 2 Bytes 上述所定义的字段的长度。 …… …… 2 Bytes 开始第N个新字段的定义,说明该字段的类型。 2 Bytes 上述所定义的字段的长度。 引用一个Template Record ID以开2 Bytes 始一个新的Data FlowSet。该字段数值总在255以上。 2 Bytes 本Data FlowSet的总体长度。 第1个Data Record的第1个字段的2 Bytes 数值。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4