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在根据端口特征识别应用方面的能力也还需要提高。
随着流量监测技术的不断改进和完善,互联网业务流量监测系统必将为提高宽带互联网络业务的服务质量和管理水平发挥更为重要的作用。