Qué es Netflow?

Netflow es un protocolo de red  usado para analisis y monitorización de redes inicialmente desarrollado por Cisco Systems. Aunque también es compatible con muchos otros dispositivos de redes lo que hace posible desplegarlo en plataformas como FreeBSD, OpenBSD, Juniper, Alcatel, Foundry etc.

El  propósito de NetFlow es recoger información de tráfico IP y enviar paquetes UDP y SCTP ( los registros) a un servidor NetFlow Collector o NetFlow Analyzer.

NetFlow es útil para los administradores ya que nos brinda la posibilidad de tener el tráfico que pasa a través de la red y recopilar información sobre el uso del ancho de banda, el tipo de tráfico, el volumen de tráfico, cuellos de botella, información por protocolo, etc…

¿Qué es exactamente un flujo (flow)?

Cisco define un flujo de datos como una secuencia unidireccional de paquetes que comparten 5 elementos en común:

  • Dirección IP de origen.
  • Dirección IP destino.
  • Número de puerto de origen.
  • Número de puerto de destino.
  • Protocolo.

¿Qué es un NetFlow Collector?

Es de suponer que no sencillamente se desea coleccionar información, sino también (y por sobre todo) analizar los estadísticas y características de esta información de tráfico.

Para esto es que requerimos de un NetFlow Collector. Se trata de un dispositivo (PC o servidor) ubicado en la red para recoger toda la información de NetFlow que es enviada desde los dispositivos de infraestructura (routers y switches).

NetFlow es un protocolo que genera y recoge esta información, pero también se necesita software que permita realizar la clasificación, almacenamiento y análisis de toda esta información de tráfico. Para esto hay  una amplia diversidad de aplicaciones en el mercado que permiten trabajar sobre la información de NetFlow, una de las mas inportantes es:

Netflow Configurator: http://www.solarwinds.com/products/freetools/netflow_configurator.aspx


¿Cómo sé si mis dispositivos soportan NetFlow?

NetFlow está incorporado en Cisco IOS, por lo que ante todo es preciso verificar si la versión de IOS que estamos utilizando incluye NetFlow. Para esto podemos utilizar una herramienta específica del sitio web de Cisco que es el Cisco Feature Navigator.

Un modo más sencillo y directo, puede ser ingresar a la línea de comando de nuestro dispositivo y aprovechar las facilidades que da el sistema de ayuda de Cisco IOS. Si obtenemos una respuesta como la que sigue, nuestra versión de IOS incluye las funcionalidades NetFlow:

RouterNetflow#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
RouterNetflow(config)#ip flow?
flow-aggregation flow-cache flow-export
RouterNetflow(config)#ip flow
----------------------------------------------------------------------------------------------------------------------

🙂 Por el momento esto es lo basico que debemos saber sobre Netflow 😉

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Configurando Netflow

Para que todo esto funcione necesitamos varias cosas. Primero tenemos que configurar nuestro router Cisco para que la interfaz envíe los registros de estadísticas a un colector de Netflow. Estos paquetes de estadísticas son paquetes UDP. Luego tenemos que configurar el recolector de Netflow y por ultimo tenemos que utilizar un analizador de Netflow (que puede estar en el mismo recolector) para sacar las estadísticas.

Empezamos pues. Lo primero que haremos es configurar la interfaz de red del router de la cual quiero analizar los paquetes:

Nota: Es necesario habilitar NetFlow en todas las interfaces a través de la cual el tráfico fluirá.


RouterNetflow#configure terminal
RouterNetflow(config)#interface FastEthernet 1/1
RouterNetflow(config-if)#ip route-cache flow
RouterNetflow(config-if)#interface serial 1/0
RouterNetflow(config-if)#ip route-cache flow
RouterNetflow(config-if)#exit


Para detener el Netflow basta con denegar con el comando:

RouterNetflow(config-if)# no ip route-cache flow


Ahora le tenemos que decir al router dónde tiene que enviar los paquetes del Netflow:


RouterNetflow(config)#ip flow-export version 5 origin-as
RouterNetflow(config)#ip flow-export destination 192.168.1.101 4444
RouterNetflow(config)#ip flow-export source FastEthernet 1/1

En 192.168.1.101 está nuestro servidor de Linux donde instalaremos el recolector y el analizador. El 4444 es el puerto UDP donde escucharemos paquetes de Netflow. Tenemos que tener en cuenta que si hay un firewall entre nuestro router y nuestro recolector tendremos que abrir el puerto UDP 4444 para dejar pasar este tráfico.

Con esto basicamente queda configuradon nuestro Router Cisco para el analisis de trafico pero existen otras agregaciones como:

    Sistema Autónomo:

La siguiente agregacion muestra cómo configurar una caché de sistema de totalización autónoma con un tamaño de caché de 2046, un tiempo de espera inactivo de 200 segundos, un tiempo de espera de caché activa de 45 minutos, un destino de exportación de direcciones IP de 192.168.1.101, y un puerto de destino de 4444 .

RouterNetflow(config)#ip flow-aggregation cache as
RouterNetflow(config-flow-cache)#cache entries 2046
RouterNetflow(config-flow-cache)#cache timeout inactive 200
RouterNetflow(config-flow-cache)#cache timeout active 45
RouterNetflow(config-flow-cache)#export destination 192.168.1.101 4444
RouterNetflow(config-flow-cache)#enable

    Configuración de Prefijo de Destino:

La siguiente agregación muestra cómo configurar una caché de Prefijo de destino con un tamaño de caché de 2046, un tiempo de espera inactivo de 200 segundos, un tiempo de espera de caché activa de 45 minutos, un destino de exportación de direcciones IP de 192.168.1.101, y un puerto de destino de 4444.

RouterNetflow(config)#ip flow-aggregation cache destination-prefix
RouterNetflow(config-flow-cache)#cache entries 2046
RouterNetflow(config-flow-cache)#cache timeout inactive 200
RouterNetflow(config-flow-cache)#cache timeout active 45
RouterNetflow(config-flow-cache)#export destination 192.168.1.101 4444
RouterNetflow(config-flow-cache)#enable

    Configuración de Prefijo:

La siguiente agregación  muestra cómo configurar una caché de prefijo con un tamaño de caché de 2046, un tiempo de espera inactivo de 200 segundos, un tiempo de espera de caché activa de 45 minutos, un destino de exportación de direcciones IP de 192.168.1.101, y un puerto de destino de 4444.

RouterNetflow(config)#ip flow-aggregation cache prefix
RouterNetflow(config-flow-cache)#cache entries 2046
RouterNetflow(config-flow-cache)#cache timeout inactive 200
RouterNetflow(config-flow-cache)#cache timeout active 45
RouterNetflow(config-flow-cache)#export destination 192.168.1.101 4444
RouterNetflow(config-flow-cache)#enable

    Configuración de puerto de Protocolo:

La siguiente agregación muestra cómo configurar una caché Puerto de Protocolo con un tamaño de caché de 2046, un tiempo de espera inactivo de 200 segundos, un tiempo de espera de caché activa de 45 minutos, un destino de exportación de direcciones IP de 192.168.1.101, y un puerto de destino de 4444.

RouterNetflow(config)#ip flow-aggregation cache protocol-port
RouterNetflow(config-flow-cache)#cache entries 2046
RouterNetflow(config-flow-cache)#cache timeout inactive 200
RouterNetflow(config-flow-cache)#cache timeout active 45
RouterNetflow(config-flow-cache)#export destination 192.168.1.101 4444
RouterNetflow(config-flow-cache)#enable

    Configuración de Prefijo Fuente:

La siguiente agregación muestra cómo configurar una caché de  Prefijo de fuente con un tamaño de caché de 2046, un tiempo de espera inactivo de 200 segundos, un tiempo de espera de caché activa de 45 minutos, un destino de exportación de direcciones IP de 192.168.1.101, y un puerto de destino de 4444 .

RouterNetflow(config)#ip flow-aggregation cache source-prefix
RouterNetflow(config-flow-cache)#cache entries 2046
RouterNetflow(config-flow-cache)#cache timeout inactive 200
RouterNetflow(config-flow-cache)#cache timeout active 45
RouterNetflow(config-flow-cache)#export destination 192.168.1.101 4444
RouterNetflow(config-flow-cache)#enable

Para asegurarnos que el router está bien configurado podemos utilizar los comandos “show ip flow export” para ver la configuración actual del Netflow o “show ip cache flow para ver los paquetes que el Netflow tiene para enviar al recolector.


En el proximo Post explicare como montar un NetFlow Collector ,espero que el post halla sido de ayuda… :).

Fuentes:

http://blog.josepsalom.net/tag/netflow-aplicaciones/

http://www.leopoldomaestro.com/activar-netflow-en-dispositivos-cisco-para-recolectar-informacion-de-trafico-ip/