Por Oscar Gerometta
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:
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:
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.
- 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.
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.
Tomado de: http://librosnetworking.blogspot.com/2021/08/que-es-netflow.html