O NetFlow é um protocolo para coletar, agregar e registrar dados de fluxo de tráfego em uma rede. Os dados do NetFlow fornecem uma visão mais granular de como a largura de banda e o tráfego de rede estão sendo usados do que outras soluções de monitoramento, como o SNMP.
O NetFlow foi desenvolvido pela Cisco e está incorporado ao software IOS da Cisco nos roteadores e switches da empresa e tem sido suportado em quase todos os dispositivos Cisco desde a versão 11.1 do software Cisco IOS. Muitos outros fabricantes de hardware oferecem suporte ao NetFlow ou usam tecnologias de fluxo alternativas, como jFlow ou sFlow.
Tecnicamente, existem dez versões diferentes do NetFlow. No entanto, várias versões foram lançadas apenas internamente ou nunca foram amplamente implementadas além de um hardware específico.
A versão 1 original do NetFlow é considerada obsoleta e raramente usada atualmente. As versões 2 a 4 eram versões internas, nenhuma implementação pública jamais foi lançada.
A versão 5 ainda é comumente usada hoje, devido a uma grande base de instalação de roteadores e switches Cisco lançados enquanto era a versão padrão. A TI adicionou informações do Border Gateway Protocol e números de sequência de fluxo às exportações do NetFlow. A TI só funciona com fluxos IPv4.
A versão 6 não é mais suportada e não foi amplamente lançada. A versão 7 adicionou suporte para switches Cisco Catalyst usando o modo híbrido ou nativo. A versão 8 tem suporte para quando a agregação do NetFlow baseada em roteador é usada.
A versão 9 é a versão atual e é baseada em modelos. Como tal, ela permite a expansão do suporte sem a necessidade de alterar o formato do registro de fluxo. Essa versão é a preferida do IETF IP Information Export (IPFIX) WG e do IETF Pack Sampling WG (PSAMP) e funciona tanto com IPv4 quanto com IPv6.
O IPFIX é frequentemente chamado de NetFlow v10 porque é baseado no NetFlow v9, mas na verdade não é o NetFlow.
Quase todos os dispositivos Cisco suportam o NetFlow. A única exceção são os Cisco 2900, 3500, 3660 e 3750. Além disso, o NetFlow está disponível para muitos roteadores e switches de outros fornecedores.
Os alertas personalizados e a visualização de dados permitem que você identifique e evite rapidamente problemas de saúde e desempenho da rede.
Um fluxo é uma forma de agrupar um fluxo unidirecional de pacotes em um conjunto específico. Esses conjuntos podem ser configurados com base em atributos correspondentes em cada pacote, incluindo:
À medida que cada pacote é encaminhado, os atributos acima são examinados. Um fluxo é gerado pelo primeiro pacote que passa pelo caminho de comutação padrão. Cada pacote adicional com os mesmos parâmetros (IPS de origem e destino, endereço, porta de origem e destino, classe de serviço) é agrupado em um único fluxo. Qualquer variação no valor de qualquer um dos parâmetros cria um novo fluxo.
Os roteadores Cisco de última geração suportam o NetFlow amostrado, em que apenas um de um determinado número de pacotes é examinado. Isso é para uso em roteadores em que o exame de cada pacote não é prático devido ao volume de tráfego. Os fluxos amostrados reduzem significativamente o impacto no desempenho ao enviar informações de fluxo.
Monitorar e agrupar cada pacote encaminhado por um roteador ou switch gera uma grande quantidade de dados. Esses dados são condensados em um banco de dados dentro do dispositivo de rede chamado cache do NetFlow. Um registro de fluxo é mantido para cada fluxo ativo. Os dados expiram e são exportados do cache para um servidor coletor NetFlow em intervalos regulares com base em cronômetros de fluxo. Por padrão, o cache do NetFlow é verificado a cada segundo.
Os fluxos são agrupados para exportação em um datagrama de exportação do NetFlow . Cada datagrama consiste em até 30 fluxos. De acordo com a Cisco, as exportações padrão do NetFlow usam cerca de 1,5% do tráfego comutado total analisado.
O registro de fluxo da versão 9 é baseado em modelos. Isso significa que os futuros aprimoramentos podem ser acomodados sem a necessidade de alterar o registro de fluxo básico. O formato do registro é definido por um cabeçalho de pacote, seguido de pelo menos um FlowSet de modelo e um FlowSet de dados. O FlowSet modelo fornece uma descrição do que está vindo nos FlowSets de dados. É isso que permite a extensibilidade do registro. Em vez de pré-definir em uma especificação quais dados estão chegando e onde, essa definição é feita dentro do próprio pacote.
O cabeçalho do pacote é basicamente o mesmo da Versão 5. Ele contém, entre outros, o número da versão do pacote, o tempo de atividade do sistema (em milissegundos), um número de sequência e a ID de origem.
Os dados do NetFlow são periodicamente relatados a um coletor NetFlow. O coletor é um servidor ou computador diferente que executa um software receptor NetFlow projetado para coletar, registrar, filtrar e analisar os fluxos resultantes, como o PRTG NetFlow Analyzer da Paessler. O software coletor deve suportar a mesma versão do NetFlow que o servidor exportador. Por exemplo, para monitorar um roteador Cisco usando o NetFlow 5, seria necessário usar o sensor NetFlow V5 no PRTG Network Monitor. Para um roteador que usa o NetFlow 9, seria necessário o sensor NetFlow V9. Ambos os sensores podem ser ativados na mesma máquina ao mesmo tempo, de modo que um único coletor possa receber e relatar dados de ambas as versões do NetFlow.
Os datagramas do NetFlow são exportados usando o User Datagram Protocol (UDP). O endereço IPS do coletor e a porta de destino devem ser configurados no próprio roteador ou switch. Em alguns casos, o SNMP pode ser usado para ativar o NetFlow e configurar o endereço IP do coletor para o qual enviar os dados.
No Cisco IOS, o comando ip flow-export pode ser usado para configurar o IP de destino a partir da linha de comando.
Uma das portas mais populares usadas para as exportações do NetFlow é a 2055, mas basicamente você pode usar qualquer porta, desde que a especifique corretamente no receptor do NetFlow. Como as exportações do NetFlow são enviadas para o coletor, não há necessidade de sondagem, mas não há processo de descoberta automática para o NetFlow disponível como no SNMP por causa disso.
É possível acessar alguns dados do NetFlow via SNMP usando o NetFlow MIB. Embora não tenha sido projetado para substituir a exportação do NetFlow, ele oferece uma maneira de obter acesso aos dados do NetFlow por meio de outro mecanismo. Os dados disponíveis incluem o número de fluxos, fluxos por segundo e pacotes ou bytes por fluxo. A capacidade de acessar uma lista de "top talkers" também pode ser útil em certos casos, mas você obtém esses dados de qualquer forma ao receber e monitorar fluxos.
Há muitas categorias de tráfego que podem ser monitoradas com o NetFlow. O sensor NetFlow V9 para PRTG, por exemplo, permite o monitoramento e a categorização de vários tipos de tráfego por padrão,
As notificações em tempo real significam uma solução de problemas mais rápida para que você possa agir antes que ocorram problemas mais sérios.
O exemplo a seguir mostra o comando NetFlow Top Talkers, que lista os maiores consumidores de pacotes e bytes da rede. Antes de usar o comando Top Talkers, ele precisa ser configurado:
Roteador(config)#ip flow-top-talkers
Roteador(config-flow-top-talkers)#top 10#
Os 10 principais locutores da rede classificados por pacotes:
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.
O uso mais óbvio do NetFlow é o monitoramento da rede. Os dados do NetFlow fornecem informações detalhadas sobre o uso da largura de banda que podem ser segmentadas de várias maneiras, inclusive por usuário, sistema cliente, horário e aplicativo. Os dados que chegam ao coletor do NetFlow são quase em tempo real, o que permite um monitoramento granular específico e a agregação de dados para analisar o panorama geral no momento em que ele acontece.
O monitoramento de padrões de tráfego, padrões de usuários e padrões de aplicativos pode alertar o administrador sobre possíveis problemas antes que eles ocorram e fornecer um recurso valioso para a solução de problemas. Um único computador ou serviço que utiliza uma quantidade suficientemente grande de largura de banda pode afetar o desempenho da rede para outros usuários. Um administrador que observa uma interface de usuário ou painel abrangente pode ser capaz de detectar esse resultado antes que ele aconteça, ou um alerta pode ser gerado para informar o administrador da rede sobre padrões incomuns.
A visão geral do sensor NetFlow V9 do PRTG, por exemplo, indica os Top Talkers, Top Connections, Top Protocols, bem como uma repartição por protocolo, mostrando rapidamente se algum servidor de aplicativos do PRTG está usando muita (ou pouca) largura de banda.
A capacidade de detectar e reagir às mudanças nas condições da rede é uma habilidade valiosa. Melhor ainda é a capacidade de ver o que está por vir e resolver proativamente quaisquer problemas.
A captura de dados do NetFlow por períodos mais longos e a análise das tendências encontradas nos dados oferecem uma oportunidade de saber antecipadamente o que a rede exige. Talvez vários aplicativos em execução no final do mês gerem tráfego adicional que afete o desempenho da rede. Nesse caso, outras atividades de alta largura de banda poderiam ser programadas para diferentes épocas do mês para evitar gargalos.
Além disso, os dados do NetFlow podem ajudar a determinar quando o crescimento do tráfego está realmente se tornando muito alto para o hardware atual suportar, oferecendo bastante tempo de espera para comprar, instalar e configurar roteadores e switches adicionais ou mais rápidos.
Com sua capacidade de identificar fluxos de tráfego específicos (inclusive onde eles se originaram e quais aplicativos os acionaram), os dados do NetFlow podem ser analisados para permitir o faturamento para os clientes, a cobrança de custos internos ou mostrar quanto da rede está sendo usado por usuários, grupos ou aplicativos específicos. Com uma coleta de dados tão detalhada, é fácil ajustar as taxas de faturamento com base na hora do dia, no uso de aplicativos ou na largura de banda total.
Os dados do NetFlow podem mostrar não apenas a quantidade de tráfego que um aplicativo gera, mas também quando e para quem. O NetFlow pode dizer se o aplicativo está otimizado para o grupo de contabilidade, mas gera muito tráfego para um departamento diferente.
O NetFlow também pode ajudar na segurança da rede. Um usuário está gerando repentinamente grandes volumes de tráfego que normalmente não são necessários para o seu trabalho? Talvez a conta tenha sido comprometida? Os dados do NetFlow revelam rapidamente anomalias no tráfego de rede, seja um worm tentando se espalhar, um malware tentando entrar em contato com um servidor de controle ou um funcionário insatisfeito copiando dados confidenciais da empresa.
O PRTG é um software abrangente de monitoramento de rede e mantém o controle de toda a sua infraestrutura de TI.
Embora o tráfego geral gerado pelo NetFlow seja relativamente baixo, é importante localizar os coletores do NetFlow estrategicamente para evitar o envio de dados por conexões caras ou por conexões sem capacidade de lidar com tráfego adicional. A coleta local funciona melhor na maioria dos ambientes.