NetFlow es un protocolo para recopilar, agregar y registrar datos de flujo de tráfico en una red. Los datos de NetFlow ofrecen una visión más detallada de cómo se utilizan el ancho de banda y el tráfico de red que otras soluciones de monitoreo, como SNMP.
NetFlow fue desarrollado por Cisco y está integrado en el software IOS de los routers y conmutadores de la empresa, y es compatible con casi todos los dispositivos Cisco desde la versión 11.1 del software IOS de Cisco. Muchos otros fabricantes de hardware soportan NetFlow o utilizan tecnologías de flujo alternativas, como jFlow o sFlow.
Técnicamente existen diez versiones diferentes de NetFlow. Sin embargo, varias versiones sólo se publicaron internamente o nunca se implantaron de forma generalizada más allá de un hardware específico.
La versión 1 original de NetFlow se considera obsoleta y rara vez se utiliza en la actualidad. Las versiones 2 a 4 eran versiones internas, nunca se publicó ninguna implementación pública.
La versión 5 se sigue utilizando hoy en día debido a la gran cantidad de instalaciones de routers y switches Cisco que se lanzaron cuando era la versión estándar. Añadió información de Border Gateway Protocol y números de secuencia de flujo a las exportaciones de NetFlow. Sólo funciona con flujos IPv4.
La versión 6 ya no recibe soporte y no se lanzó de forma generalizada. La versión 7 añadió compatibilidad con los conmutadores Cisco Catalyst que utilizan el modo híbrido o nativo. La versión 8 tiene soporte para cuando se utiliza la agregación NetFlow basada en router.
La versión 9 es la actual y está basada en plantillas. Como tal, permite ampliar la compatibilidad sin necesidad de cambiar el formato del registro de flujo. Esta versión es la preferida por el Grupo de Trabajo de Exportación de Información IP (IPFIX) del IETF y el Grupo de Trabajo de Muestreo de Paquetes (PSAMP) del IETF y funciona tanto con IPv4 como con IPv6.
A menudo se hace referencia a IPFIX como NetFlow v10 porque se basa en NetFlow v9, pero en realidad no es NetFlow.
Casi todos los dispositivos Cisco soportan NetFlow. La única excepción son Cisco 2900, 3500, 3660, 3750. Además, NetFlow está disponible para muchos routers y switches de otros fabricantes.
Las alertas personalizadas y la visualización de datos le permiten identificar y prevenir rápidamente los problemas de salud y rendimiento de la red.
Un flujo es una forma de agrupar un flujo unidireccional de paquetes en un conjunto específico. Estos conjuntos pueden configurarse basándose en atributos coincidentes en cada paquete, entre los que se incluyen:
A medida que se reenvía cada paquete, se examinan los atributos anteriores. El primer paquete que pasa por la ruta de conmutación estándar genera un flujo. Cada paquete adicional con los mismos parámetros (IP de origen y destino, dirección, puerto de origen y destino, clase de servicio) se agrupa en un único flujo. Cualquier variación en el valor de cualquiera de los parámetros crea un nuevo flujo.
Los routers Cisco de gama alta admiten NetFlow muestreado, en el que sólo se examina uno de cada cierto número de paquetes. Esto es para uso en routers donde examinar cada paquete es poco práctico debido al volumen de tráfico. Los flujos muestreados reducen significativamente el impacto en el rendimiento al enviar información de flujo.
Monitorear y agrupar cada paquete reenviado por un router o switch genera una gran cantidad de datos. Estos datos se condensan en una base de datos dentro del dispositivo de red denominada caché de NetFlow. Se mantiene un registro de flujo para cada flujo activo. Los datos caducan y se exportan desde la caché a un servidor colector de NetFlow a intervalos regulares basados en temporizadores de flujo. Por defecto, la caché de NetFlow se comprueba cada segundo.
Los flujos se agrupan para su exportación en un datagrama de exportación de NetFlow . Cada datagrama consta de hasta 30 flujos. Según Cisco, las exportaciones de NetFlow estándar utilizan aproximadamente el 1,5 por ciento del tráfico conmutado total analizado.
El registro de flujo de la versión 9 se basa en plantillas. Esto significa que se pueden acomodar futuras mejoras sin tener que cambiar el registro de flujo básico. El formato del registro está definido por una cabecera de paquete, seguida de al menos un FlowSet de plantilla y un FlowSet de datos. El FlowSet de plantilla proporciona una descripción de lo que viene en los FlowSets de datos. Esto es lo que permite la extensibilidad del registro. En lugar de predefinir en una especificación qué datos vienen y dónde, esa definición se hace dentro del propio paquete.
La cabecera del paquete es básicamente la misma que en la versión 5. Contiene, entre otros, el número de versión del paquete, el tiempo de actividad del sistema (en milisegundos), un número de secuencia y el ID de origen.
Los datos de NetFlow se informan periódicamente a un recopilador de NetFlow. El recopilador es un servidor u ordenador diferente que ejecuta un software receptor de NetFlow diseñado para recopilar, registrar, filtrar y analizar los flujos resultantes, como PRTG NetFlow Analyzer de Paessler. El software colector debe ser compatible con la misma versión de NetFlow que el servidor exportador. Por ejemplo, para monitorear un router Cisco usando NetFlow 5, uno necesitaría usar el sensor NetFlow V5 en PRTG Network Monitor. Para un router que utiliza NetFlow 9, se necesitaría el sensor NetFlow V9. Ambos sensores pueden ser habilitados en la misma máquina al mismo tiempo, de modo que un solo colector puede recibir e informar sobre los datos de ambas versiones de NetFlow.
Los datagramas NetFlow se exportan utilizando el Protocolo de Datagramas de Usuario (UDP). La dirección IP del recopilador y el puerto de destino deben configurarse en el propio enrutador o conmutador. En algunos casos, se puede utilizar SNMP para activar NetFlow y configurar la dirección IP del colector al que enviar los datos.
En Cisco IOS, se puede utilizar el comando ip flow-export para configurar la IP de destino desde la línea de comandos.
Uno de los puertos más populares utilizados para las exportaciones de NetFlow es el 2055, pero básicamente se puede utilizar cualquier puerto siempre que se especifique correctamente en el receptor de NetFlow. Como las exportaciones de NetFlow son empujadas al recolector, no hay necesidad de sondeo, pero no hay proceso de descubrimiento automático para NetFlow disponible como con SNMP debido a esto.
Es posible acceder a algunos datos de NetFlow a través de SNMP utilizando la MIB de NetFlow. Aunque no está diseñado para sustituir a la exportación de NetFlow, ofrece una forma de acceder a los datos de NetFlow a través de otro mecanismo. Los datos disponibles incluyen el número de flujos, flujos por segundo y paquetes o bytes por flujo. La posibilidad de acceder a una lista de "top talkers" también podría ser útil en ciertos casos, pero estos datos se obtienen de todos modos al recibir y monitorear flujos.
Hay muchas categorías de tráfico que se pueden monitorear con NetFlow. El sensor NetFlow V9 para PRTG, por ejemplo, permite monitorear y categorizar numerosos tipos de tráfico por defecto,
Las notificaciones en tiempo real significan una solución de problemas más rápida para que pueda actuar antes de que se produzcan problemas más graves.
A continuación se muestra el comando NetFlow Top Talkers, que enumera los mayores consumidores de paquetes y bytes de la red. Antes de utilizar el comando Top Talkers, hay que configurarlo:
Router(config)#ip flow-top-talkers
Router(config-flow-top-talkers)#top 10#
Los top 10 talkers de la red ordenados por paquetes:
R3#show ip flow top-talkers
SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts
Et1/0 172.16.10.2 Et0/0 172.16.1.84 06 0087 0087 2100
Et1/0 172.16.10.2 Et0/0 172.16.1.85 06 0089 0089 1892
Et1/0 172.16.10.2 Et0/0 172.16.1.86 06 0185 0185 1762
Et1/0 172.16.10.2 Et0/0 172.16.1.86 06 00B3 00B3 2
Et1/0 172.16.10.2 Et0/0 172.16.1.84 06 0050 0050 1
Et1/0 172.16.10.2 Et0/0 172.16.1.85 06 0050 0050 1
7 of 10 top talkers shown. 7 flows processed.
El uso más obvio de NetFlow es el monitoreo de redes. Los datos de NetFlow proporcionan información detallada sobre el uso del ancho de banda que puede segmentarse de numerosas formas, entre ellas por usuario, sistema cliente, hora y aplicación. Los datos que llegan al recolector de NetFlow son casi en tiempo real, lo que permite monitorear granularmente y agregar datos para tener una visión general de lo que está sucediendo.
Monitorear los patrones de tráfico, de usuario y de aplicación puede alertar a un administrador sobre problemas potenciales antes de que ocurran y proporcionar un valioso recurso para la solución de problemas. Un solo ordenador o servicio que utilice una cantidad suficientemente grande de ancho de banda puede afectar al rendimiento de la red para otros usuarios. Un administrador que observe una interfaz de usuario completa o un panel puede ser capaz de detectar este resultado antes de que se produzca, o podría generarse una alerta para informar al administrador de red sobre patrones inusuales.
El Resumen del sensor PRTG NetFlow V9, por ejemplo, indica Top Talkers, Top Connections, Top Protocols, así como un desglose por protocolo, mostrando de un vistazo si algún servidor o aplicación está utilizando demasiado (o muy poco) ancho de banda.
La capacidad de detectar y reaccionar ante los cambios en las condiciones de la red es una habilidad muy valiosa. Aún mejor es la capacidad de ver lo que está por venir y abordar proactivamente cualquier problema.
Capturar datos de NetFlow durante largos periodos de tiempo y analizar las tendencias encontradas en los datos ofrece la oportunidad de saber de antemano lo que necesita la red. Puede que varias aplicaciones que se ejecutan a final de mes generen un tráfico adicional que afecte al rendimiento de la red. En ese caso, podrían programarse otras actividades de gran ancho de banda para distintos horarios del mes a fin de evitar cuellos de botella.
Además, los datos de NetFlow pueden ayudar a determinar cuándo el crecimiento del tráfico está siendo demasiado elevado para que el hardware actual pueda gestionarlo, lo que ofrece tiempo suficiente para adquirir, instalar y configurar routers y conmutadores adicionales o más rápidos.
Gracias a su capacidad para identificar flujos de tráfico específicos (incluyendo dónde se originaron y qué aplicaciones los desencadenaron), los datos de NetFlow pueden analizarse para permitir la facturación a los clientes, la devolución de costes internos o mostrar qué parte de la red está siendo utilizada por usuarios, grupos o aplicaciones específicos. Con una recopilación de datos tan detallada, es fácil ajustar las tarifas de facturación en función de la hora del día, el uso de aplicaciones o el ancho de banda total.
Los datos de NetFlow pueden mostrar no sólo cuánto tráfico genera una aplicación, sino cuándo y para quién. NetFlow puede decir si la aplicación está optimizada para el grupo de contabilidad, pero genera mucho tráfico para un departamento diferente.
NetFlow también puede ayudar con la seguridad de la red. ¿Está un usuario generando de repente grandes cantidades de tráfico que normalmente no necesita para su trabajo? ¿Quizás la cuenta ha sido comprometida? Los datos de NetFlow revelan rápidamente anomalías en el tráfico de la red, ya se trate de un gusano que intenta propagarse, de malware que intenta ponerse en contacto con un servidor de control o de un empleado descontento que copia datos confidenciales de la empresa.
PRTG es un software de monitoreo de red integral y realiza un seguimiento de toda su infraestructura de TI.
Aunque el tráfico general generado por NetFlow es relativamente bajo, es importante ubicar los recolectores de NetFlow estratégicamente para evitar enviar datos a través de conexiones caras o a través de aquellas sin capacidad para manejar tráfico adicional. La recopilación local funciona mejor para la mayoría de los entornos.