Monitoramento de Redes com Software Livre Estudo de caso no POP-GO Giovane César Moreira Moura 2º Fórum Goiano do Software Livre 1º de Outubro 2005 RNP/REF/0236 Monitoramento 2000 RNP de Redes com Software Livre
Quem é a RNP? Rede Nacional de Ensino e Pesquisa Cronologia Primeira rede de acesso à Internet no Brasil; Criada em 1989 com objetivo de interligar universidades; Programa prioritário do Sepin/MCT; Em 1994 já atingia todas as regiões do país; Em 2000/2001 atualizado o backbone (RNP2) para novas aplicações; POPs (Point of Presence) em todos os estados.
RNP Hoje Aplicações avançadas em redes Gerencia tráfego de internet de produção (e-mail, navegação...) quanto aplicações avançadas para experimentação; Interliga mais de 200 instituições de pesquisa nacionais, atendendo a 800 mil usuários; Backbone de produção: interliga IFES, Institutos de pesquisa, museus, hospitais, ONGs, instituições de fomento que se adequem na política RNP; Backbone de experimentação: suporte a aplicações de Internet2, como bibliotecas digitais, ensino e conferência a distância,etc. Nesta rede são realizados os testes de novas tecnologias.
Pesquisa e Desenvolvimento Inovação Pesquisa na RNP Rede com suporte à Multicast, MPLS, QoS, etc...; Grupos de trabalhos (GT's) específicos de pesquisa: vídeo digital, P2P...; Parceira com universidades; Projeto GIGA: 17 pontos de RJ-SP em uma rede com capacidade de 2,5 Gbps; Produção de vasta documentação disponível no site http://rnp.br.
Operação Segurança CAIS - Centro de Atendimento a Incidentes de Segurança Atua na detecção,resolução e prevenção de incidentes; Alerta CAIS alertas sobre segurança a toda comunidade; Testes e recomendação de ferramentas de segurança; Recomendação de políticas para os POPs.
Conexões Interligação com redes de pesquisa
Backbone RNP2 Linhas Nacionais Hoje: Até 622Mbps POP-GO->POP-DF = 34Mpbs; Em todas as capitais; IPV6 Final do Ano: 1OGbps 4 enlaces de 10Gbps 6 de 2,5Gbps
Backbone RNP2 Linhas Internacionais Conexões com: Internet comercial Internet2 Links como RJ-Miami (155 Mpbs POS) Link Rede Clara (100Mpbs Ethernet)
POP-GO: Estrutura RNP em Goiás Hospedada na UFG Equipe POP-GO: Benedito, Cláudio, Daniel, Frederico, Frederico Augusto, Giovane Conexão de 34Mbps com POP-DF; Interliga várias instituições, como UFG, CEFET, Embrapa, SECTEC,UEG, Secretaria municipal de Educação, e Remav (tráfego local); Link POP-GO -> POP-DF alugado da BrT ou Embratel. Topologia Lógica POP-GO
Monitoramento Por que monitorar? Conhecer sua infra-estrutura; Dimensionamento : se seu disco cresce 5GB/mês, você sabe que em X meses precisará comprar outro; se seu link está sempre acima de 90%, melhor providenciar um upgrade; Caracterização do tráfego; Segurança; Estudo.
POP-GO: Projeto de Monitoramento Origem: necessidade de 1 relatório Problema: os pacotes no POP-GO com destino ao estado de GO iam até Curitiba para serem roteados ; Solução: viabilizar um PTT (ponto de troca de tráfego) entre POP-GO e Brasil Telecom; Justificativa para um PTT? Grande quantidade de tráfego trocado entre BrT e POP-GO; Como obter esta informação?
Escolha da Tecnologia Diversas tecnologias a escolha... Ferramentas tradicionais como TCPDump, Ethereal, Trafshow e outras não conseguem lidar bem com grandes volumes de dados a um custo viável; SNMP fornece poucos dados... Ex: informa que o link está em 90% de uso, e que o servidor web responde por 85%. Mas será que o servidor web não pode estar sendo um zumbi? Com SNMP, você terá que usar tcpdump e outras ferramentas baixo nível; A escolha? Netflow: tecnologia líder, escalável, suporta grande volume de dados. Ex: ele te diz se o tráfego no servidor web é mesmo web ou não de uma forma mais simples; Presente no roteador de borda do POP-GO. Bastava configurá-lo para isso.
Netflow Características Fornece uma visão do tráfego de rede no nível de sessão: grava informações sobre cada transação TCP/IP; Permite responder se 1.5Mbps de tráfego para o servidor web é realmente tráfego web (ou se ele foi comprometido e roda outros serviços); Permite: billing (quantos bytes o IP x trafegou?), monitoramento de aplicações (qual o tráfego na porta padrão do emule?), monitoramento de usários (por IP), data warehouse e datamining (responde quem, o que, onde e por quanto tempo )
Netflow O que é flow? Sequência uniredicional de pacotes; Identificado por 7 campos chave: IP de origem, IP de destino, porta de origem, porta de destino, ToS, Tipo de Protocolo e interface do roteador. Algo como log da rede Formato do pacote Netflow v9
Netflow Arquitetura 3 componentes:
Configuração Sensor: Roteador Cisco 7500 Roteadores Cisco suportam Netflow (embora exija muito do processador). POP-GO é assim que opera; Podemos utilizar uma estação Linux/*BSD e utilizar o softflowd com sensor faça em casa! Coloque no firewall da empresa! Comando softflowd: #softflowd -i eth0 -n 10.1.0.1:8818
Configuração Coletor SO: Linux (Slackware, mas poderia outra distribuição) Coleta: uso de flow-tools (conjunto de softwares) Exemplo para coletar dados: #flow-capture -w /netflow -E20G 10.1.0.2 0/0/8818 Flow-tools contém vários softwares (flow-cat, flow-filter, flow-header, flow-scan..). Combine-os via pipes para obter relatórios. Vide documentação online.
Configuração Relatórios SO: Slackware (também poderia ser outra distro) Relatórios: flow-tools, cflow... Utilizamos flow-tools Demonstração: 1. Abrir os arquivos de fluxo: flowdumper <arquivo> (vem com flow) ou flow-cat <arquivo> flow-print 2. Tráfego na porta do emule, ou http flow-cat <diretorio> flow-filter -p <porta> flow stat-f0
Configuração Relatórios (continuação... ) Demonstração: 3. Quem mais usou emule (porta padrão) flow-cat <dir> flow-filter -P4662 flow-stat -f9 S2 4. Quem acessou o IP da playboy.com.br? a) Primeiro criamos uma acl ip access-list standard playboy permit 200.196.241.202 0.255.255.255 b) passamos ela como parâmetro flow-cat <dir> flow-filter -f acl -D playboy flow-stat -f9 -S2
Configuração Relatórios (continuação... ) Demonstração: 5. Quais sites um determinado IP mais acessou? a) coloque na acl b) execute : flow-cat <diretório> flow-filter -f acl -S usuario flow-stat -f9 -S2 6. Quais os destinos mais acessados? flow-cat <dir> flow-stat -f8 -p -S3 >fora.txt testes com o arquivo gerado: IP google.com: 64.4.32.7 IP playboy.com.br: 200.196.241.202 Quantidade de tráfego 7. Quais os destinos mais acessados em %? flow-cat <dir> flow-stat -f9 -p -P -S3 >dentro.txt
Configuração Relatórios (continuação... ) Demonstração: 8. Quem internamente acessou mais quais destinos? flow-cat <dir> flow-stat -f10 -p -S4 > inout.txt
Relatório PTT POP-GO e BrT Resultados Dados foram coletados por 40 dias (melhor espaço amostral) Concluímos que:
Nova Fase: Caracterização do tráfego Novas metas Necessidade: Identificar, contabilizar e gerar gráficos diários do tráfego por serviço; Análise feita durante a noite; Geração de gráficos automaticamente; Disponibilização dos dados no site do POP-GO. Decidimos utilizar Netflow para contabilizar e caracterizar o tráfego: saber qual o volume nas portas mais comuns 80 http, 25 smtp, 20 ftpdata; Uso de ferramentas livres então para gerar gráficos e estatísticas.
Software Livre é integração Uso de diversas ferramentas em diferentes fases Coleta Análise Adapt. Gráficos Flow-tools código RRDTool novo
Softwares desenvolvidos Shell Script e C Script n_generate: gerar os relatórios do flow-tools. Resultado: relatórios flow-tools completos Script n_ripdata: extrai dos relatórios apenas os campos chave converte.c: converte os campos chave de bytes para gigabytes. Script NGRAPHS: armazena campos chave, gera gráficos e coloca na árvore de diretórios Todos sob a GPL, disponíveis no site do POP-GO
Ordem de execução Script daily Executado as 00:01 diariamente pelo crond #!/bin/bash #scrip daily a ser executado diariamente pelo crond #Giovane Moreira -giovane@gmail.com #scripts abaixo (n_generatte,n_ripdata e NGRAPHS geram o no #final os gráficos, que são passados via scp ao servidor web /var/scripts/n_generate /var/scripts/n_ripdata /var/scripts/ngraphs scp -r -i /var/grafico/.ssh/id_rsa /var/scripts/graphs/ login@servidorweb:/var/www/htdocs/
Resultados Site POP-GO http://www.pop-go.rnp.br Vá em Monitoramento
Estrutura POP-GO: Estrutura Netflow
Entendendo a ferramenta... RRDTool RoundRobin Database Ferramenta de gravação de dados e geração de gráficos; Desenvolvida por Tobias Oetiker, na Suíça; Licença GPL ; Evolução do MRTG monitora qualquer coisa, crescimento de bactérias, tráfego de rede... ; Como um SGBD, armazena dados. Porém no front-end gera gráficos; Tamanho da base de dados definido na criação.
Entendendo as ferramentas... RRDTool Exemplo Exemplo oficial
Entendendo o código... Descendo o nível Ver Artigo;
Temos muito o que melhorar! Objetivos Desenvolver uma ferramenta integrada de monitoramento baseada na web (como um Cacti para Netflow); Ferramenta livre; Extrair mais dados e usar todos os recursos; Conto com a ajuda de vocês, comunidade em geral.
POP-GO: Monitoramento Dúvidas? Comentários? Sobre monitoramento; Sobre Netflow; Sobre RNP; Sobre código; Sobre SO;?
Agradecimentos Obrigado A todos vocês; A organização do 2º FGSL; A Equipe RNP, POP-GO, UFGNet e UFG; Entre em contato: giovane@gmail.com