O que é SNMP?
Como o próprio nome diz, o SNMP é um protocolo muito, muito simples. Ele recebeu alguns upgrades na sua vida (por isso existem algumas versões, como v2c e v3) mas mantém características de um protocolo básico, quase inocente (vou explicar mais abaixo o que eu quero dizer). Existem diversos textos e vídeos na Internet explicando em detalhes esse protocolo, o meu objetivo aqui é fazer um resumo fácil de entender desse protocolo.
O SNMP é um protocolo de gerenciamento. Isso quer dizer que ele tem pouca utilidade para os usuários convencionais. Ele é um aliado dos gestores, administradores de redes e qualquer pessoa que precisa manter. Ele funciona assim: um equipamento A faz uma pergunta para o equipamento B, o equipamento B responde. Simples assim!
Perguntas e Respostas
Vamos ver alguns exemplos:
- equipamento A pergunta ao equipamento B: "Quanto está a ocupação da sua CPU agora?" o equipamento B responde "83%".
- equipamento A pergunta ao equipamento B: "Qual a a temperatura de cada processador?" o equipamento B responde "Processado 1 está em 45C, processador 2 está em 48C"
- equipamento A pergunta ao equipamento B: "Que horas são no seu relógio?" o equipamento B responde "22:30"
- e assim vai
O SNMP é um protocolo de "Pergunta/Resposta" (para quem já ouviu falar de traps, vamos falar deles daqui a pouco).
De onde vem as perguntas?
Qualquer equipamento na rede pode mandar uma pergunta para outro. Existem diversos programas grátis na Internet que permitem você, do seu computador, enviar perguntas para qualquer equipamento na rede, e obter as informações disponíveis via SNMP. Procure por "MIB Browser" e veja.
Ai você deve estar se perguntando: como assim qualquer equipamento na rede pode enviar uma pergunta e receber uma resposta? Eu preciso de uma senha! Você está quase correto.
Lembra que eu disse acima que o SNMP era um protocolo um pouco "inocente"? Ele foi criado em uma época onde não existiam hackers e não se preocupava muito com segurança (faz tempo). Então a grande maioria dos equipamentos vem com uma senha padrão: "private". Isso mesmo, p-r-i-v-a-t-e. Simples assim. Se você tentar nos equipamentos na sua rede vai funcionar a maioria das vezes porque ninguém muda. Mas qual é o usuário? Não existe! Existe apenas senha, que na verdade é chamado de community (como eu disse, na época segurança não era prioridade).
E mesmo se você mudar a community (mudar a senha), ainda assim ela vai ter trafegada na rede aberta, sem criptografia, e qualquer pessoa que capturar o pacote vai ter acesso a senha.
Na versão v3 do SNMP já existe o conceito de usuário e senha, na versão v2c a coisa já é um pouco melhor, mas na versão v1, é tudo muito simples.
Uma das opções é simplesmente não habilitar o SNMP (hoje em dia a maioria dos equipamentos vem com SNMP desabilitado de fabrica), mas se você habilitar, procure ter certeza que apenas a versão mais segura (v3 ou v2c) está habilitada.
Outra opção de segurança é só reponder as requisições de SNMP vindas de IP cadastrados. Não é uma das formas mais seguras de se proteger um sistemas. Mas eu avisei que SNMP era das antigas!
História
O SNMP foi criado pelo departamento de defesa dos EUA (DARPA) para gerenciar "coisas". Que tipo de coisas? Qualquer coisa que estivesse conectado na rede. Dentro de um tanque de guerra existem diversos equipamentos eletrônicos conectados em rede, dentro de uma base de lançamento de misseis existem diversos equipamento conectados em rede.
Então o SNMP é um protocolo genérico, mas por isso mesmo rapidamente perceberam que ele poderia ser usado para gerenciar qualquer coisa, roteadores, switches, cafeteiras, máquinas de lavar roupa. Está em rede? Dá para usar SNMP.
Obviamente o equipamento gerenciado precisa suportar SNMP, mas por ser um protocolo bem simples, qualquer fabricante de equipamentos (mesmo com pouca memória e processador) pode implementar SNMP, essa é uma das razões dele se tornar tão popular.
Padrão Aberto
Outra razão do SNMP ser popular é que ele não é de ninguém. Qualquer fabricante pode adicionar ao seu equipamento e, imediatamente, ele vai estar compatível com centenas de softwares de gerenciamento que estão hoje disponíveis no mercado.
Como fazer a pergunta?
Então você tem o seu programa de SNMP (para fazer perguntas) e um equipamento para acessar (para responder as perguntas), como é feita é pergunta? Você lembra que eu disse que o SNMP era muito simples? Pois até nisso ele é bem simples. Para fazer uma pergunta, você manda um número, simples assim!
Por exemplo, para saber quantos pacotes IP a porta número 2 de um roteador recebeu até agora, você manda a seguinte pergunta: "1.3.6.1.2.1.4.3.2" e ele reponde com um número, por exemplo "23488910", indicando que foram 23.488.910 pacotes até agora (desde que o roteador foi ligado).
Agora você deve estar se perguntando: como eu vou saber que eu tenho que perguntar 1.3.6.1.2.1.4.3.2 para saber isso? Ai entram as MIBs. MIB é um nome complicado para algo simples: é uma tabela com todas perguntas que você pode fazer para um equipamento.
Existem algumas MIB padrão, como MIB II, que indicam algumas perguntas padrões (como essa que eu passei acima) que um equipamento pode responder. Se um fabricante diz que seu equipamento suporta MIB II, é porque esse equipamento responde a qualquer pergunta que esteja nessa lista.
Mas os fabricantes também podem inventar novas perguntas, e ai eles publicam as MIBs do seus equipamento. Você tem um switch que suporta SNMP? Veja com o fabricante porque ele provavelmente fornece um arquivo de MIB para esse roteador. Você pega esse arquivo, joga no seu programa de SNMP (lembra do MIB Browser que eu falei acima?) e pronto? O seu programa de SNMP já tem uma nova lista de perguntas que ele pode fazer.
O que acontece se você pegar uma pergunta de um fabricante e jogar para o equipamento de outro? Nada! Se você enviar para um equipamento uma pergunta que ele não sabe responder, ele não responde!
Traps
Todo equipamento de SNMP trabalha com o conceito de "pooling", que é como se fosse um censo. Chega alguém, pergunta, você responde, e acabou. O SNMP é assim. O software de SNMP manda uma pergunta, o equipamento responde (se a community/senha estiver correta). Mas e se acontecer uma tragédia?
Por exemplo, eu tenho um programa de gerenciamento de SNMP, ele programo ele para a cada 5 minutos perguntar para o roteador se o link Internet está no ar. O gerenciado de SNMP manda "1.3.6.1.2.1.31.1.1.1.14" e o roteador reponde 1 para link no ar, e 0 para link down (a MIB informa isso tudo). Mas se o link cair, posso demorar 5 minutos para ficar sabendo (tempo que o gerenciador demora para perguntar novamente). Eu posso diminuir esse tempo (uma pergunta a cada 5 segundos), mas ai eu vou lotar a rede de pacotes. O que fazer?
Ai entra o TRAP, que é que o equipamento gerenciado informa ao gerenciador SNMP que algo aconteceu. Então no roteador você informa o endereço IP do servidor de SNMP, se o link cair, o roteador imediatamente envia o aviso. Muito melhor!
Como eu consigo saber quais TRAPS o meu equipamento suporta? Adivinaha só? Na MIB! Lá também está descrito quais TRAPS o equipamento suporta. Então quando você importa (alias, os programas de MIB chamam esse processo de importar de "compilar a MIB", coisa das antigas) a MIB no programa de SNMP, ele tem mostra quais traps são suportados (link up, link down, excesso de erros, etc, etc.)
Resumo
A ideia deste texto foi dar um resumo rápido e simplificado do que é o SNMP. Se você tiver dúvidas, pode deixar nos comentários que a gente responde mais rápido possível. Obviamente se você precisar de informações mais detalhadas sobre o protocolo, o Google também é seu amigo.
Fonte: http://tecnologiaerede.blogspot.com.br/2017/01/o-que-e-snmp-simple-network-management.html