Internet/Intranet的部署和使用正在迅猛成长,并且导致了企业和消费者计算模式的重大转变。市场已经提出了对流量统计和管理技术的需求,并要求这一技术能有效提供记录网络和应用资源利用率所必须的信息。为此,Cisco系统公司在其IOS交换体系结构中引入一种新的交换技术——NetFlow交换。NetFlow交换在虚拟局域网(VLAN)技术的基础上,在同一个平台上提供了交换和路由两种功能。
Cisco路由和交换平台中的NetFlow服务可提供内置在快速、最优和CEF交换路径之中的网络数据流统计功能。NetFlow服务可利用网络中数据流创造价值,并可在最大限度减小对路由器/交换机性能的影响的前提下提供详细的数据流统计信息。特别是作为其交换功能的一部分,它能够为企业提供网络的容量规划、趋势分析以及数据优先级等方面的信息,这些统计信息包括用户、协议、端口和服务类型等。NetFlow交换可以部署在网络中的任何位置,作为对现有寻径基础设施的扩展。NetFlow还可对访问列表进行有效的处理,进而实现数据包过滤和安全性服务。NetFlow数据可被用于多种多样的用途,如网络管理与规划、企业财务、基于利用率的计费以及针对市场营销目的的数据仓库和数据采集等。
一、NetFlow交换及其特点
NetFlow交换在网络层实现高性能的交换,它提供一个高效的机制,可以用来处理安全访问列表,从而不必像其他交换方式那样,为完成同样的任务而付出很高的性能代价。NetFlow交换识别主机之间的网络流量,并在提供相关服务的同时,对网络流量中的分组进行交换。在传统的网络交换中,每一个输入分组是单独处理的,路由器为每个分组进行一系列独立的查询,利用一系列函数去检查访问列表、获取记账数据、交换该分组。然后将它发送(即交换)到目的地。这些查询包括确定是否采用安全访问过滤,以及更新网络统计计账记录。而在NetFlow交换中,查询过程仅对分组流中的第一个分组进行,当一个网络流被识别并确定了与其相关的服务后,那么后面所有的分组都作为该信息流的一部分,在面向连接的基础上进行处理,这样就绕过了访问列表的检查,进而依次对分组进行交换和获取统计信息。
NetFlow交换中要创建一个信息流高速缓存,里面包含对所有活动信息流进行交换和访问列表检查所需要的信息,利用标准的快速交换路径先处理信息流中的第一个分组,这样就生成了NetFlow高速缓存,这样每个信息流都与一个即将到来的接口端口号和要发出的接口端口号相关联,并且有一个特定的安全访问权限和加密策略。高速缓存中还包含用于数据流统计的条目。随着后面分组的交换,这些条目也不断地更新。NetFlow高速缓存被创建后,那些被标识为属于现有的一个信息流的分组即可以依据高速缓存信息被交换,从而绕过了安全访问列表检查。对于所有活动信息流,在NetFlow高速缓存中保留相应的信息。
对分组进行交换,并且一个任务接一个任务地按顺序为分组提供服务。这种流线型处理分组的方式提高了网络服务的能力,提高了Cisco IOS有关安全性、服务质量(QoS)和网络流量计账的服务性能。同时,NetFlow交换提供了以每个用户和每个应用(即会话)为基础的更有效的服务。
二、NetFlow的数据格式
NetFlow以UDP数据报文的形式输出信息流,它有2种格式: (1)版本1格式。这是最初发布的格式; (2)版本5格式。这是后来发布的一种加强格式,它增加了边界网关协议(BGP)的自治系统(AS)信息和信息流的序列号。
在版本1和版本5 格式中,数据报文由一个头标信息、一个或多个信息流记录构成。通常情况下,接收程序不管接收哪种格式,它都会分配一个足够大的缓冲区,以便数据报文到来时,可以容纳下最大的数据。此外,它使用头标信息中的版本信息来决定如何理解这些数据报文。头标信息中的第二个字段是数据报文中记录的个数,可以用它来对记录进行索引。
因为NetFlow输出采用UDP协议来发送输出的数据报文,所以可能会丢失数据。为了确定信息流输出信息是否丢失,版本5的头标信息格式中包含了一个信息流序列号。这个序列号等于前一个序列号加上刚刚过去的数据报文中信息流的个数。当接收到一个新的数据报文后,接收程序可以从头标信息中的序列号中提取出预期的序列号,这样即可以获取丢失信息流的数目。