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的头标信息格式中包含了一个信息流序列号。这个序列号等于前一个序列号加上刚刚过去的数据报文中信息流的个数。当接收到一个新的数据报文后,接收程序可以从头标信息中的序列号中提取出预期的序列号,这样即可以获取丢失信息流的数目。
三、配置NetFlow交换
---- 在一个路由器中,NetFlow交换涉及到标识分组信息流、执行交换和处理访问列表。它不涉及路由器之间的任何连接设置协议,也不涉及对其他任何网络设备或端点工作站的连接设置协议。它也不要求对分组本身或其他任何网络设备进行任何外部修改。所以,NetFlow交换对现有的网络,包括端点工作站、应用软件和网络设备(如局域网交换机)是完全透明的。此外,因为NetFlow交换在每个互联的网络设备中独立地进行,所以并不需要在网络中的每个路由器中都操作它,网络规划人员可以在路由器/接口的基础上有选择地激活NetFlow交换(和NetFlow数据输出),这样就可以在特定的网络位置上进行数据流交换、控制和记账。
---- 在一个接口上配置NetFlow时,这个接口就不再使用其他交换模式了。为了配置NetFlow交换,在接口配置模式下,利用以下面命令为ip路由启用NetFlow交换:
---- ip route-cache flow
---- 该命令的no格式可以禁用NetFlow交换,具体命令如下:
---- no ip route-cache flow
---- 通常,NetFlow高速缓存的默认值可以满足需求。然而网络治理员也可以通过增加或减少高速缓存中保留的条目数,来满足信息流比率的需要。系统的默认值是64KB个流动高速缓存条目,每个高速缓存条目大约占用64B的存储空间。为了在NetFlow高速缓存中自定义条目的个数,在全局配置模式下,使用下面的命令即可改变NetFlow高速缓存中保留的条目的个数:
---- ip flow-cache entries number
---- 其中number为条目的个数,范围是1024~524288,默认值是65536。
---- Cisco公司的部分路由器带有路由/交换处理器(RSP)和VIP控制器。对VIP控制器可以这样配置:通过VIP交换接收分组,而不必每个分组都要RSP参与,这种处理称为分散式交换,可以降低对RSP的需求。可以通过配置VIP硬件,使之进行NetFlow交换。
---- 为了在VIP上配置分散式交换,首先要根据所使用的协议为IP路由配置路由器,然后就可以使用下面的命令,在全局配置模式下,开始配置IP分散式交换和NetFlow交换了。
---- interface type slot/port-adapter/port;指定接口,并且进入接口配置模式
---- ip route-cache distributed;在该接口中启用IP分组的VIP分散式交换
---- ip route-cache flow; 指定信息流交换
---- 当RSP或VIP进行信息流交换时,它们使用信息流高速缓存取代目的地网络高速缓存来交换IP分组。信息流高速缓存使用源头和目的地的网络地址、协议以及源头和目的地的端口号来区分各条目。
四、治理和使用NetFlow交换的统计信息
---- 通过NetFlow交换,还可以获取丰富的统计信息,这些统计信息包括IP分组大小的分布、IP信息流交换的高速缓存信息,以及信息流信息,例如协议、总的信息流数量和每秒的信息流数量等。上述信息可以帮助网络治理员分析路由器的运行情况。为了治理NetFlow交换的统计信息,可以在授权的可执行模式下,利用“show ip cache flow”命令显示NetFlow交换的综合统计信息,以便网络治理人员了解当前网络的流量以及各种应用的数据流情况。附图是使用该命令的输出信息范例。 IP packet size distribution给出分组大小分布的情况(百分比),如这里的.554表明55.4%的分组数在33~64B之间;接下来的数字描述了Netflow高速缓冲区的使用情况; 后面的2个表中具体地给出了使用各种协议的分组和当前信息流的统计信息。 NetFlow交换的信息还可以输出到网络治理应用程序中。为了在信息流到期时,将NetFlow高速缓存中保留的NetFlow交换的统计信息输出到一个工作站中,在全局配置模式下,利用下面的命令即可: ip flow-eXPort ip-address udp-port version 5 [origin-as peer-as] 在版本5中,用这条命令来配置路由器,把NetFlow高速缓存条目输出到工作站,可以选择指定最初的AS或同等的AS,默认值是2种AS都不输出,这样可以提高性能。为了保证数据来自有效的NetFlow源头,Cisco公司建议接收程序检查数据报文,首先检查数据报文的大小,确定它至少可以容纳版本字段和计数字段。然后,应该证实版本是有效的版本1或5,而且接收到的字节数足以容纳头标信息和对信息流记录进行计数。 NetFlow交换的这些信息用途很广,可以用来为企业网络治理与分析提供依据,为网络治理员合理规划企业的网络结构、均衡网络负载和优化网络性能提供参考等,为ISP提供计费根据、为诊断网络入侵和查找网络攻击提供线索以及帮助企业实现进行数据采集等等。