9 de agosto de 2021

¿Qué es Netflow?

 En los últimos años ha ganado relevancia, de modo creciente, una herramienta muy particular: NetFlow.
Originalmente creada para monitorear comunicaciones individuales, hoy es una herramienta utilizada para el análisis tanto de prestaciones de calidad de servicio como de seguridad.
Es por esto que consideré conveniente preguntarnos, ¿qué es NetFlow?

NetFlow es una herramienta de monitoreo desarrollada por Cisco e introducida en las diferentes formulaciones de IOS a partir del año 1996 (Cisco IOS 11.x). Esta herramienta permite relevar información estadística referida al tráfico en la red cuando ingresa o sale a través de una interfaz.
Si bien inicialmente estaba incorporada en la imagen de IOS solamente de algunos dispositivos, progresivamente se ha incorporado a nuevas plataformas de modo que en la actualidad, en redes que utilizan IOS XE, está disponible prácticamente en toda la infraestructura de la red corporativa.
Responde a 2 premisas básicas:
  • Es completamente transparente a las aplicaciones y dispositivos que operan en la red.
  • No es necesario que sea soportada en todos los dispositivos de la infraestructura de la red.
Su implementación tiene múltiples aplicaciones posibles, las más frecuentes son:
  • Registro estadístico de tráfico para realizar un análisis de línea base.
  • Facturación de servicios de red a usuarios.
  • Monitoreo y análisis del tráfico y aplicaciones que están corriendo en la red.
  • Diseño general de seguridad de la red.
  • Detección y prevención de ataques DoS o DDoS.
  • Monitoreo de tráfico malicioso en la red.
Con este propósito NetFlow releva estadística de comunicaciones utilizando el concepto de flujo (flow).
¿Qué es un flujo? Un stream o cadena unidireccional de paquetes entre un sistema de origen y un sistema destino específicos que es identificada tomando como base de referencia 7 parámetros específicos:
  • Dirección IP origen.
  • Dirección ID destino.
  • Puerto TCP o UDP de origen.
  • Puerto TCP o UDP de destino.
  • Tipo de protocolo (campo del encabezado IP).
  • Tipo de servicio (campo del encabezado IP).
  • Interfaz lógica de ingreso.
Esta misma definición de flujo se aplica a tráfico IPv4 e IPv6.
A esta información básica se puede agregar información complementaria a partir de NetFlow versión 9. Los registros NetFlow solo contienen información estadística, no contenido de los paquetes.

Estos datos se exportan como registros de NetFlow hacia un servidor que concentra esos datos y en donde se analizan.
El registro de una comunicación se genera cuando una comunicación TCP llega a su fin, o por un contador de inactividad de la comunicación, o se puede definir por configuración que periódicamente se genere el registro aún cuando la comunicación no ha terminado. 
Transporte de los registros
Los registros de NetFlow se transportan utilizando segmentos UDP que suelen estar dirigidos al puerto 2055 del collector, pero que también puede utilizar otros puertos. 
El dispositivo que genera los registros, en general, no retiene los datos correspondientes a los registros que se envían al collector. Esto no permite realizar un seguimiento del transporte de los registros con lo que, si se produjera la pérdida de algún segmento, no se puede recuperar la información.
Por este motivo algunas implementaciones de NetFlow utilizan SCTP para asegurar el envío de los registros. Particularmente cuando se trata de NetFlow versión 8 o 9.
El inconveniente de este tipo de implementaciones es que se requiere interacción entre cada exporter y cada collector definido; esto puede tener un impacto significativo en la performance de ambos componentes.

Arquitectura de NetFlow
La implementación de NetFlow supone una arquitectura específica:
  • Exporter
    Uno o varios dispositivos que tienen Netflow habilitado.
  • Collector
    Una consola que recolecta y concentra la información.
  • Aplicación de análisis
    Aplicación que procesa los datos generados por el exporter y concentrados en el collector para obtener información significativa.
    Cisco StealthWatch es un ejemplo de este tipo de aplicaciones.

Versiones de NetFlow

Desde su lanzamiento NetFlow ha tenido diferentes versiones.
La versión implementada en los dispositivos Cisco actuales es NetFlow v9. Adicionalmente, la herramienta se abrió con múltiples RFCs de la IETF, lo que dio lugar a IPFIX: 
  • RFC 3954 - NetFlow versión 9.
  • RFC 5101 - Especificación del protocolo de IPFIX para el intercambio de información de flujo de tráfico.
  • RFC 5102 - Modelo de información para IPFIX.
  • RFC 5103 - Exportación bidireccional usando IPFIX.
  • RFC 5153 - Directrices para la aplicación de IPFIX.
  • RFC 5470 - Arquitectura de IPFIX.
  • RFC 5471 - Pautas para las pruebas de IPFIX.
  • RFC 5472 - Pertinencia de IPFIX.
NetFlow es una marca registrada de Cisco.
Pero muchos otros fabricantes han desarrollado herramientas semejantes que cumplen la misma tarea:
  • Argus 
  • Jflow o cflowd de Juniper Networks
  • NetStream de 3Com/HP
  • NetStream de Huawei Technologies
  • Cflowd de Nokia
  • Rflow de Ericsson
  • AppFlow de Citrix
  • sFlow implementado por varios fabricantes: Alcatel Lucent, Allied Telesis, Arista Networks, Brocade, Dell, D-Link, Enterasys, Extreme, F5, Fortinet, Hewlett-Packard, Hitachi, Huawei, IBM, Juniper, LG-Ericsson, ZTE, ZyXEL, etc.


Estás invitado a participar de nuestro grupo en Facebook:

https://www.facebook.com/groups/librosnetworking/

O si preferís redes sociales con mayor control de tu privacidad,
podés participar de nuestro grupo en VKontakte
https://vk.com/libros.networking

o seguir las principales novedades en el grupo de Telegram:
https://t.me/LibrosNetworking


Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.