网络流量分析 NetFlow是什么 详解 科普 ~互联网业务流量监测技术的应用和设计---perfect

前言

  随着宽带互联网在中国的迅速发展,全国各大电信运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长。电信运营商需要通过可靠、有效的网络业务流量监测系统对其网络以及网络所承载的各类业务进行及时、准确的流量和流向分析,进而挖掘网络资源潜力,控制网络互联成本,并为网络规划、优化调整和业务发展提供基础依据。

  目前国内电信运营商已建的网络管理系统所能实现的流量监测功能非常有限,远远不能满足运营商的迫切需要。


1、互联网业务流量监测技术的应用及现状

1.1 互联网业务流量监测技术的应用 

流量监测技术的应用主要包括以下几个方面:

a)为网络出口互联链路的设置提供决策支持

  通过对网络出口流量和流向的分析,可以详细了解网络内部用户对其他外部网络的访问情况,从而有效地选择与其他网络的互联方式和互联地点,节约互联链路费用。

b)掌握用户对其他运营商的访问情况

  通过对与其他网络互联流量的监控,分析网络内部用户访问其他外部网络的业务特点和主要流量的去向,准确掌握内部用户对外网的兴趣点,找到最多应用的热点信息内容。根据分析结果进行相应网络内容的建设,将用户感兴趣的热点信息内容放到内部网络,减轻互联链路的压力。

c)评估分支网络的成本和价值

  通过对各个分支网络出入流量的监控,分析流量的大小、去向及内容组成,了解各分支网络占用带宽的情况,从而反映其占用的网络成本,也可以了解其业务开展情况,并作出价值评估。

d)提供重要应用和大客户统计分析

  通过对重要应用和大客户的流量进行统计分析,掌握重要应用和大客户的流量状况,进行网络带宽的成本分析,有助于在网络服务质量和网络成本之间取得最佳平衡。

e)基于IP的计费应用和服务等级协议(SLA)的校验服务

  通过对大客户接入电路上的流量进行监控分析,可以统计出业务类型、服务等级、通信时间和时长、通信数据量等参数,为基于IP的计费应用和SLA的校验服务提供数据依据。

f)掌握网络状况

  通过对网络中一些特定流量的长期监控,有助于网管人员了解网络的流量模型,所形成的基准数据可供网管人员正确分析网络使用状况,并可及时发布异常警讯,在故障事件爆发或扩大前实施防范措施,进而提升网络的整体质量及效能。

g)实现对网络异常通信的检测,重点防范分布式拒绝服务(DDoS)的攻击和大范围的蠕虫病毒发作

  通过对网络内流量的实时分析,有助于及时发现网络中出现的异常流量,迅速分析出异常流量的具体属性。通过与网络通信正常基线的比对,管理员对出现的异常通信可以快速定性是否为网络安全攻击,确定安全攻击的类型,评估本次攻击的危险程度及可能造成的影响范围,并采用相应技术手段实施事故应急处理。

h)为网络优化提供数据依据

  通过流量分析,可以为多出口的流量负载均衡、重要链路的带宽设置、路由选择和设定QoS等网络优化措施提供数据依据。


1.2 互联网业务流量监测技术现状分析

  目前国内电信运营商的运维部门大都还没有建设一套能够完全满足管理需求的互联网业务流量监测系统。现有的网络管理系统虽然可以提供业务流量监测手段,但基本上只是采用一些通用型的网络链路使用率监视软件,如利用免费的MRTG和简单网络管理协议(SNMP),对网络的重点链路和互联点进行简单的端口级流量监视和统计;或采用在网络中部分重点业务接入点(POP)加装远程监控(RMON)探针的方式,利用RMON I/Ⅱ协议对网络中部分端口进行网络流量和上层业务流量的监视和采集。

  上述两种被普遍采用的网络流量监测系统都有着明显的技术局限性。

  SNMP采集端口的数据主要是在网元层用来监控网络流量和设备的性能,而且SNMP采集的数据是基于端口的,无法提供端到端的准确的流量信息,因此对流向的统计手段不明确。

  利用RMON探针对运营商网络进行流量和流向管理可以部分弥补SNMP的技术局限性,其业务分析和协议分析功能较强。但是,采用RMON探针建设的流量监测系统也有处理性能不足和难以在大型网络普遍部署的局限性。

  为克服现有网管系统对网络流量和流向分析功能的技术局限性,运营商迫切需要寻找一种功能丰富、成熟稳定的新技术,对现有管理系统中流量信息的采集和分析方式进行改造和升级。新的流量信息采集和分析技术应具备对运营商的运行网络影响小、无需对网络拓扑进行改变就能平滑升级的技术特征,既可以对网络中各个链路的带宽使用率进行统计,又可以对每条链路上不同类型业务的流量和流向进行分析和统计。本文主要讨论功能强大、应用广泛的NetFlow技术。

2、流量监测系统建设方案中需要考虑的问题


2.1 NetFlow技术简介

  NetFlow是Cisco公司提出的网络数据包交换技术,该技术首先被用于网络设备对数据交换进行加速,并可同步实现对高速转发的IP数据流(Flow)进行测量和统计。经过多年的技术演进,NetFlow原来用于数据交换加速的功能已经逐步改由网络设备中的专用集成电路(ASIC)芯片实现,而对流经网络设备的IPFlow进行测量和统计的功能却更加成熟,并成为当今互联网领域公认的最主要的IP流量分析、统计和计费行业标准。

  为对运营商网络中不同类型的业务流进行准确的流量和流向分析与计量,首先需要对网络中传输的各种类型数据包进行区分。由于IP网络的非面向连接特性,网络中不同类型业务的通信可能是任意一台终端设备向另一台终端设备发送的一组IP数据包,这组数据包实际上就构成了运营商网络中某种业务的一个Flow。如果管理系统能对全网传送的所有Flow进行区分,准确记录传送时间、传送方向和Flow的大小,就可以对运营商全网所有业务的流量和流向进行分析和统计。

  通过分析网络中不同Flow之间的差别,可以发现判断任何两个IP数据包是否属于同一个Flow,实际上可以通过分析IP数据包的以下7个属性来实现:

a)源IP地址;

b)目标IP地址;

c)源通信端口号;

d)目标通信端口号;

e)第三层协议类型;

f)服务类型(TOS)字节;

g)网络设备输入或输出的逻辑网络端口(iflndex)。

  Cisco公司的NetFlow技术就是利用分析IP数据包的上述7个属性,快速区分网络中传送的各种不同类型业务的Flow。对区分出的每个Flow,NetFlow技术可以进行单独跟踪和准确计量,记录其传送方向和目的地等流向特性,统计其起始和结束时间、服务类型、包含的数据包数量和字节数量等流量信息。

  在NetFlow技术的演进过程中,Cisco公司一共开发出了NetFlow V1、NetFlow V5、NetFlow V7、NetFlow V8和NetFlow V9等5个主要的实用版本

  下面对网络流量和流向分析系统中最常用的NetFlow V5数据输出的数据包格式作一简单介绍。

  图1为NetFlow V5输出数据包的包头格式。图2为包含在每个NetFlow V5输出数据包中的具体Flow的流量和流向统计信息的数据格式。

         
            
图1 NetFlow V5输出数据包的包头格式

      图2 NetFlow V5输出数据包中每个Flow的具体流量和流向统计信息格式 

  NetFlow的数据输出要求先在路由器和交换机上定制NetFlow流输出,并选择输出流的版本、个数、缓冲区的大小等,配置相应NetFlow流量收集器(FlowCollector)的IP地址、端口等信息。此时路由器或交换机即可以用户数据报协议(UDP)的方式向外发送流信息,然后在NetFlow FlowCollector端配置接收端口号,设置汇聚、过滤策略和流量文件存放目录、格式等。NetFlow有非采样和采样两种使用模式。

  一般来说,NetFlow FlowCollector都选用UNIX工作站来收集数据,NetFlow FlowCollector收集的数据将存放在本地磁盘中(路径由用户定义)。同时,它也可以通过网关以Socket方式发送信息到其他网管分析软件,或直接读取存放在NetFlow FlowCollector工作站中的数据文件,对其进行分析处理。 

  NetFlow记录的流包含了丰富的信息,非常适合于网络性能分析。NetFlow不需要其他硬件流量设备的支持,开启和关闭都非常方便,因此在国外已有很多运营商用它来收集流量,服务于网络规划、设计和优化等领域。但开启NetFlow需要消耗一定的路由器资源(CPU和内存)。

  根据NetFlow的特点,该技术非常适用于大型网络。NetFlow采集实施成本较低、安装方便,而且不受速率的限制,是目前运营商流量监测的首选技术。

  采集到的NetFlow数据,结合边界网关协议(BGP)路由信息,可以更加精确地分析路由信息和互联流量的自治域(AS)属性。


2.2 流量采集对业务网络的影响评估

2.2.1 带宽占用

  采用NetFlow方案不要求处理从某个接口接受到的每个数据包,用来对被监控路由器进行流量分析的数据来自采集到的NetFlow数据,从路由器送出的非采样NetFlow数据不到流经该路由器数据量的1%,使用采样NetFlow时数据更为大大减少。根据计算,在采样率为1000:1时,对10Gbit/s的流量进行NetFlow分析,只产生1.3Mbit/s的流量。因此,NetFlow产生的这部分流量对于骨干网的带宽占用很少。


2.2.2 路由器性能消耗

  利用NetFlow技术实现流量监测需要路由器开启NetFlow协议以配合采集数据,因此会对路由器的CPU造成一定的负担。Cisco公司和Juniper公司等路由器厂家都针对这些问题作了详细的研究。不同的产品系列和NetFlow协议是否经过采样等,对CPU的影响程度也不同。

  根据Cisco公司的“NetFlow Performance Analysis”白皮书,在非采样方式下,路由器开启NetFlow后,其CPU使用状况如下:

a)如果有10 000条同时在线的Flow,则路由器的CPU使用率平均增加7.14%;

b)如果有45 000条同时在线的Flow,则路由器的CPU使用率平均增加19.16%;

c)如果有65 000条同时在线的Flow,则路由器的CPU使用率平均增加22.98%。

这些数据是基于不同的产品系列进行测试的平均值。

  在采样方式下开启NetFlow对路由器的CPU影响会更小。根据Cisco公司的资料显示,12000系列的路由器在非采样方式下需要增加23.5%的CPU使用率来处理65 000条Flow,而在采用100:1的采样率时CPU使用率仅增加3%。在不同的采样率下,CPU的负担增加程度也不同。

  路由器上不同类型的线卡对NetFlow的支持情况也有所不同。仍以Cisco公司路由器为例,Engine 3和Engine 4+的线卡是采用专门的硬件来处理NetFlow数据,开启NetFlow对路由器性能影响较小;而通常认为Engine 2的线卡开启NetFlow对路由器性能的影响相对较大。


2.3 NetFlow采样率的设定

  在采样方式下,路由器按照一定的采样率采集NetFlow数据,流量分析系统接收NetFlow数据对网络的流量进行计算和分析,因此路由器的采样率在很大程度上决定了分析结果的准确性。如果路由器设定的采样率过高(如1000:1或更高),流量分析的误差将加大,尤其对小Flow或混杂在大流量中的部分关键的小Flow的分析,更容易产生比较大的误差。

  在路由器上开启NetFlow会消耗一些设备资源,特别是需要占用一些CPU和Memory等重要资源,而且采样率越低,对资源的占用越大。如果设置过低的NetFlow采样率会对路由器的性能带来较大的影响。因此,应根据路由器上需要打开的NetFlow功能板卡的主要类型,并结合设备上开通的电路的流量情况灵活地设置路由器的NetFlow采样率,包括100:1、500:1、1 000:1和3 000:1等。


2.4 流量采集点的设置

  为了实现对所监测网内的所有流量进行分析,首先需要合理地设置流量采集点。采集点的设置非常关键,直接影响到系统能否准确地对流量进行全面分析。下面主要针对运营商网络优化应用提出采集点设置建议方案。

  由于主要是实现对运营商网络的优化,所以不一定需要对网络中传送的所有流量数据进行100%的监测。为减少对网络设备的资源占用,降低对系统的容量要求,可以选用数据包抽样的NetFlow数据采集方式,对网络中的所有流量进行统计。

  通常情况下,运营商网络结构包括核心层和边缘层两个层次,网络流量通过边缘层的路由器汇接进入核心层,由核心层的路由器进行转接。而NetFlow技术只能对端口的流入流量进行分析,因此,流量采集点的设置主要有两种方案可供选择:

a)方案一:采集点设置在网络的核心层,核心层路由器之间的互联端口不需要开启NetFlow,核心节点路由器对外的互联端口开启NetFlow流入流量采集。

  该方案的优点是被采集的路由器数量少,因此管理比较简单,配置工作量比较小;缺点是采集端口集中在核心层路由器上,增加了核心层路由器的负担,对业务网络的影响较大。

b)方案二:采集点设置在网络的边缘层,边缘层路由器对外的互联端口开启NetFlow流入流量采集,对从其他AS进入到网内的流量进行分析。

  该方案的优点是采集端口分散在边缘层的多台路由器上,相应地减少了单台路由器上的采集数据量和因流量采集而增加的负担,降低了开启NetFlow对业务网络的影响;缺点是被采集的路由器数量较多,管理的复杂程度和配置工作量都相应加大,而且这种方案需要将采集的NetFlow数据从边缘层的路由器传送到集中设置的采集机,会在网内增加一定的流量而占用网络带宽。

  在实际应用中,流量采集点的设置应根据网络的具体情况和管理要求来选择合适的方案。

图3为运营商网络优化时的流量采集点设置示意图。

        
            图3 运营商网络优化流量采集点设置示意图


2.5 系统组织方案

  流量分析系统由采集机和分析服务器组成。被采集的路由器将NetFlow数据包发往NetFlow流量采集机,采集机将采集到的NetFlow数据送到分析服务器进行分析。被采集的路由器分布在全网各个节点,当系统规模较大时,需要配置多台采集机和分析服务器。采集机和分析服务器的部署有以下两种方案。

a)方案一:将采集机分别部署在各个核心节点,每个核心节点的采集机负责采集连接至该核心节点的路由器;分析服务器集中部署在网管中心。该方案采集机通过以太网接口接入核心路由器或与核心路由器连接的局域网交换机,实现与被采集路由器的互通。利用用户数据报协议(UDP)从被采集路由器上的端口采集NetFlow数据,再通过IP网络传送到分析服务器,由分析服务器进行数据汇总和分析处理,如图4所示。 
         
             图4 流量分析系统组织方案一示意图

  该方案的优点是,在至分析服务器的IP网络连接出现突发故障时,可以充分利用采集机的存储能力,暂存NetFlow数据,待网络连接恢复时,再向分析服务器传送;这种分布式的部署方案还可以避免单点出现故障时导致全网流量无法采集,而且采集机还可以进行一些预处理工作,减轻分析服务器的压力。缺点是每个核心节点都需要配备一套采集机,设备的综合利用率不够高,管理和维护不够集中。

b)方案二:采集机和分析服务器集中部署,由多台采集机共同负责采集全网内的路由器。该方案采集机通过以太网接口接入网管中心,实现与全网内被采集路由器的互通,采集机利用UDP通过IP网络从各节点被采集路由器上的端口采集NetFlow数据,再通过局域网传送到分析服务器,由分析服务器进行数据汇总和分析处理,如图5所示。

            图5 流量分析系统组织方案二示意图

  该方案的优点是,流量分析系统设备集中部署,便于统一管理和统一维护,也提高了设备的利用率;缺点是如果IP网络不稳定或发生故障时,路由器的NetFlow数据将不能传送到网管中心,处理不当可能造成NetFlow数据的丢失。

  实际部署时应根据具体的要求来选择合适的系统组织方案。


2.6 系统处理能力估算模型的分析

2.6.1 计算数据的取定

首先取定以下计算数据:

a)一个NetFlow V5输出数据包的包长为1 500 Byte;

b)一个NetFlow V5输出数据包中包括的Flow的数量为30

c)网络流量中数据包的平均包长为384 Byte;

d)采样率:500:1

  其中,NetFlow V5输出数据包的包长及其包括的Flow的数量是确定的,而网络流量中数据包的平均包长、采样率则需要根据具体的网络状况进行取定。


2.6.2 系统处理能力

  流量分析系统实现对NetFlow数据的采集和分析处理,本文采用“每秒处理Flow数”来衡量系统的处理能力。

  在估算系统处理能力时,首先要计算系统需要分析的流量大小(Gbit/s),然后根据前面已经取定的计算数据,系统每秒需要进行处理的Flow数量为:(系统需要分析的流量大小×1024×1024×1024)/(500×384×8)

2.6.3 流量数据采集带宽

  采集NetFlow数据需要占用一定的网络带宽。

  计算出系统每秒需要进行处理的Flow数量之后,就可以计算出采集NetFlow数据需要的网络带宽(Mbit/s)最大为:(系统每秒需要进行处理的Flow数量/30)×1500×8/1024/1024


3、应用价值与前景

  NetFlow是Cisco公司的IOS软件的一部分,其当前的版本9目前正在由IETF以IPFIX的名称进行标准化。除Cisco公司外的厂商,如Enterasys公司和Juniper公司等,也在该标准形成的过程中发挥着积极的作用,并已表示有兴趣采用IPFIX,这就使得NetFlow/IPFIX更具吸引力了。

  但NetFlow技术也有一定的局限性,比如它无法提供应用的反应时间。考虑到不断增长的动态端口分配趋势,NetFlow在根据端口特征识别应用方面的能力也还需要提高。

  随着流量监测技术的不断改进和完善,互联网业务流量监测系统必将为提高宽带互联网络业务的服务质量和管理水平发挥更为重要的作用。

你可能感兴趣的:(【网络-Network】)