网络流量监测与管理(二):NetFlow

http://tech.ddvip.com   2008年09月10日    社区交流 收藏本文

本文详细介绍网络流量监测与管理(二):NetFlow

  (一)NetFlow简介

  NetFlow为Cisco之专属协议,提供路由器中第三层之信息,可用来了解该路由器所传输之封包表头内容,依据此内容,我们可以撰写程序将 所获得之资料加以统计。一旦收集到路由器上的详细流量数据后,便可为网络流量统计、网络使用量计价、网络规划、网络监测等应用提供计 数根据。同时,NetFlow也提供针对QoS(Quality of Service)的测量基准,能够捕捉到每笔数据流的流量分类或优先性特性,而能够进一步 根据QoS进行分级收费。

  目前Cisco网站上所提供可执行netflow之硬件数据:

  NetFlow versions Supported Platforms

Cisco IOS Software Release Version Supported NetFlow Export Version(s) Supported Cisco Hardware Platforms
11.1CA, 11.1CCv1, v5 Cisco 7200, 7500, RSP7000
11.2, 11.2Pv1Cisco 7200, 7500, RSP7000
11.2P v1Route Switch Module (RSM), 11.2(10)P and later
11.3, 11.3T v1 Cisco 7200, 7500, RSP7000
12.0v1, v5Cisco 2600, 3600, 4500, 4700, AS5800, 7200, uBR7200, 7500, RSP7000, RSM
12.0TV1, v5 Cisco 1000*,1600*,1720**, 2500*,2600, 3600, 4500, 4700, AS5800, 7200, uBR7200, 7500, RSP7000, RSM, MGX8800 RPM
12.0(3)T and later v8Cisco 1000*,1600*,1720**, 2500*,2600, 3600, 4500, 4700, AS5800, 7200, uBR7200, 7500, RSP7000, RSM, MGX8800 RPM
N/Av7 Catalyst 5000 NetFlow Feature Card (NFFC)

  (参考http://www.cisco.com/warp/public/cc/pd/iosw/ioft/neflct/tech/napps_wp.htm)

  (二)执行NetFlow

  1. 路由器的设定

  在收集netflow数据之前,必须先在路由器上设定flow数据的传送方式。首先,login到router并在global执行以下指令:

  ip flow-export destination

  例如:ip flow-export destination 10.112.0.1 9991。除此之外,还要在欲捕捉数据的接口上设定:ip route-cache flow。如此一来, router便会开始将flow信息向IP 10.112.0.1端口号为9991送出封包(协议为UDP),而10.112.0.1即开始接收netflow的数据,此时只需要在该 台机器上执行程序即可进行统计。

  2. 统计分析流程

  进行统计分析的流程可分为两个阶段:

  (1) 在机器上固定执行一个常驻程序(daemon),负责收集路由器送出的UDP封包,并且写入硬盘。

  (2) 分析log file,并且产生所需之报表。

  3. 记录及储存flow信息

  首先,从网络下载flow-tool程序包(http://ftp.eng.oar.net/pub/flow-tools-0.58.tar.gz),其中包含数种用来收集及统计数据的程序 ,分列如下:

    ¨ flow-capture - collect flows from an exporter and store them to disk. Disk space is managed by expiring (removing) old flow files based on a configurable archive size or number of files.
    ¨ flow-cat - concatenate flow files.
    ¨ flow-dscan - detect network scanning and other suspicious activity
    ¨ flow-expire - expire (remove) old flow files.
    ¨ flow-fanout - fanout flows from a exporter to multiple collectors. Also supports multicast.
    ¨ flow-gen - Generate flows for testing.
    ¨ flow-header - Display flow file meta information.
    ¨ flow-merge - Merge flows files so that records are preserved in relative chronological order.
    ¨ flow-print - Formatted ASCII output.
    ¨ flow-receive - Receive flows in NetFlow format from a network.
    ¨ flow-send - Send flows over a network in NetFlow format.
    ¨ flow-split - Split flow files into smaller files.
    ¨ flow-stat - Generate usage reports based on IP address, IP address pairs, ports, packets, bytes, interfaces, next hops, autonomous systems, ToS bits, exporters, and tags.
    ¨ flow-xlate - Translate various fields of flow recrods.

  flow-tool程序包安装步骤如下(以Linux系统为例):

  (1) 先确定机器上已安装下列程序:

  ¨ zlib:ftp://ftp.freesoftware.com/pub/infozlib/zlib/

  ¨ gnu make:ftp://ftp.gnu.org/pub/gnu/make/make-3.79.1.tar.gz

  (2) 将档案解压缩到一个目录下,例如

  zcat flow-tools-0.58.tar.gz | tar xvf -

  解开后执行下列指令:

    ./configure
    gmake
    gmake install

  (3) 若已将路由器设定为打开netflow,可利用flow-receive确认主机是否已开始接收flow数据,例如:

  flow-receive 0/0/9991 | flow-print

  (4) 执行flow-capture将flow数据储存下来,其指令格式为flow-capture –z Z –n N –e E –p P –w W,其中参数意义如下:

  Z – 压缩比例

  N – 每日留存份数

  E – 共留存几份在硬盘中

  P – 埠号

  W – 存放路径

  例如:flow-capture –z 6 –n 143 –e 1500 –p 9991 –w /netflow,其中,压缩率约6就差不多了,设定更高的参数不见得可以多压多少 ,一天留144份,也就是10分钟rotate一次log file,方便我们做细部统计,一共留存1500份,也就是10天左右,最后一项参数表示把所有log file都放在/netflow目录下。

  之后,便可将此指令加入 /usr/local/etc/rc.d 目录下,让机器一开机便执行此常驻程序。

  (5) 收集一段时间的数据之后,可透过flow-print指令列出log file的内容,例如:flow-print –f0 ,所显示字段由左至右分别为:Source Interface, Source IP, Destination Interface, Destination IP, Protocol,Source Port, Destination Port, Packets 。Octects 。

  4. 统计分析程序

  在netflow流量数据捕捉并储存下来之后,便可根据其格式及所欲统计的项目撰写程序进行统计分析。目前从网络上可下载国立交通大学 发展的netflow统计程序(http://netflow.nctu.edu.tw/netflow.html),该程 序以perl撰写,通常必须根据各自的架构及需求予以修改后方能适用。以交大发展的netflow.pl程序为例,以一日为单位统计当天的流量,可 针对网段、协议、流入/流出之IP网段进行合计或Top统计。台大为了取得更实时的数据,将该程序修改为每10分钟统计一次,便能够了解过去 十分钟的流量。

作者:邵喻美    责编:豆豆技术应用

正在加载评论...