Cisco的交换机和路由器广泛支持的一种流量捕获工具NetFlow,已经在流量分析、计费分析以及网络安全防护上被广泛应用,NetFlow格式的数据能够被很多应用软件分析,下面将所学的NetFlow知识陈列如下。

     1.  什么是NetFow?

  • 1996年,Cisco系统公司的Darren Kerr和Barry Bruins开发了一种流量轮廓监控技术。
  • NetFlow是一款用于分析网络数据包信息的工具包。
  • NetFlow技术可以监测网络上的IP flow信息,采集到的流量信息可以帮助进行网络规划,网络管理,流量计费和病毒检测等。

     2.   NetFlow的版本

  • NetFlow V1:为NetFlow技术的第一个实用版本,在如今的实际网络环境中已经不建议使用。
  • NetFlow V5:增加了对数据流BGP AS信息的支持,是当前主要的实际应用版本。
  • NetFlow V7:思科Catalyst交换机设备支持的一个版本,需要利用交换机的MLS或CEF处理引擎。
  • NetFlow V8:增加了网络设备对NetFlow统计数据进行自动汇聚的功能,大大降低对数据输出的带宽需求。
  • NetFlow V9:一种全新的灵活和可扩展的NetFlow数据输出格式,采用了基于模板的统计数据输出,方便添加需要输出的数据域和支持多种Netflow新功能。

     在介绍NetFlow具体格式之前,先介绍IP Flow的概念。

      3.  IP Flow

     定义:一条在源和目的之间的单方向的流,这里的源和目的既包括了IP层的源IP和目的IP,也包括TCP层的源端口和目的端口。
     一个IP Flow至少定义了下面七个关键元素
  • IP source address
  • IP destination address
  • Source port
  • Destination port
  • Layer 3 protocol type
  • Class of Service
  • Router or switch interface
    以上七个字段定义了唯一的一个IP Flow,如果有多条IP Flow,只要其中任何一个字段内容不同,就被看成一条新的IP Flow。
    除此之外,一个IP Flow或许还包含有其他的字段,这取决于NetFlow的版本,不同版本的NetFlow格式不一样。
     4.  NetFlow Cache
    NetFlow Cache是NetFlow两个关键组件之一,用于缓存IP Flow。
    NetFlow Cache中包含一系列高度精细化算法,能够有效的判断一个报文是属于已存在IP Flow的一部分,还是应该在缓存中产生一条新的IP Flow。这些算法也能动态更新缓存中IP Flow的信息,并且能够判断哪些IP Flow应该到期终止。
    依据四个规则判断IP Flow是否到期:
  • 当TCP连接完成(FIN)或被重置(RST)时,Flow将终止。
  • 当缓存满时,多余的Flow要被删除。
  • 如果Flow在一段时间内均为idle,则该Flow将超时并从缓存中移除。
  • 长时间存在的Flow也将从缓存中移除,缺省情况下Flow的生存时间不允许超过30分钟。
    路由器每秒检查缓存一次,当Flow的不活动时间超过15秒或者Flow的活动时间超过30分钟,都将造成Flow在Cache中超时,具体时间可以依情况配置。
     5.  NetFlow Expert
    NetFlow Expert是NetFlow的另一个关键组件,描述IP Flow如何输出。
    缓存中的Flow到期后,产生一个将Flow输出的动作。Flow以数据报文的方式输出,报文包含30条以上的Flow信息。这些Flow信息普通人是没法识别的,由Flow Collector采集并做进一步处理。
    不同版本的NetFlow输出报文的格式也不同。
     NetFlow的输出报文包含报头和一系列Flow记录,报头包含版本号、流记录数、系统时间等,Flow记录包含流信息,如:IP地址、端口、路由信息等。典型的报文格式如下所示。
 
IP header
 
UDP header
NetFlow header
Flow record
Flow record
……
Flow record
Flow record

    NetFlow V5的Flow record字段如下所示:

 NetFlow V5的Flow record格式如下所示:

     6.  NetFlow Sampling
    使用采样技术可以降低路由器的CPU利用率,减少Flow的输出量。
    Cisco平台使用三种采样技术:
  • 确定性采样:每隔N个包抽取一个,N可自定义。
  • 基于时间的采样:每N微秒抽取一个包。
  • 随机采样:在N个包中随机抽取一个包,N可自定义。(被认为是包采样中最好的技术)
    对需要精确分析的流量,如计费流量,最好采用Full Sampling的方式来避免误差。
     7.  NetFlow Infrastructure
     NetFlow的基础架构如下图所示:

     8.  NetFlow Application
     >NetFlow在蠕虫病毒监测上的应用
  • CodeRed
  • Nimda
  • SQL Slammer
     >NetFlow在网络攻击防范上的应用
  • ICMP攻击
  • SYN Flooding
 


 

 

 posted on 2012-07-25 20:42  小小cfo  阅读(4046)  评论(0编辑  收藏  举报