O que é SNMP ?

O que é SNMP ?

Introdução

O SNMP (Simple Network Management Protocol) como o nome já diz, é um protocolo de rede para o gerenciamento de redes simples. Sua origem ocorreu em 1988, com o propósito de melhorar o gerenciamento e monitoramento dos ativos de uma rede de computadores, evitando conflitos por conta dos fabricantes.
O Resultado disso é um protocolo da camada de aplicação utilizado em larga escala no mercado até hoje para o monitoramento e gerenciamento de redes TCP/IP e, saber detalhes do seu funcionamento irá trazer um entendimento maior quando estiver utilizando ferramentas populares de monitoramento, como o Zabbix ou até mesmo o Grafana, que já falamos no blog no post sobre a pilha TIG .

O SNMP

O SNMP funciona com um padrão de agente e gerente, onde o agente é responsável pela coleta dos dados e envio das informações para o gerente, além de enviar alertas, chamados de “traps”.
O gerente por sua vez, recebe os dados dos agentes e os interpreta e analisa, além de solicitar aos agentes as informações desejadas. Se você já precisou monitorar um firewall, roteador, switch ou até mesmo uma impressora por exemplo, que não suporte a instalação de um agente como o Telegraf, Zabbix-Agent ou semelhante, mas já possui o SNMP disponível, colocado pelo próprio fabricante, então este será o agente que enviará as informações que precisamos para monitorar esse tipo de equipamento.
Apesar do SNMP ser o nome da solução ele não atua sozinho, o protocolo é responsável pela comunicação entre agente e gerente, para o monitoramento acontecer, utilizamos as  MIB’s e OID’s conforme esquema abaixo:

MIB, OID, SMI?

Existem dois tipos de MIB, a MIB-I e a MIB-II, a MIB-II é a MIB implementada por padrão em todos os agentes com suporte a SNMP_._ As MIB’s (Management Information Base) NÃO são softwares ou bases de dados, e sim, um conjunto de informações que dão ao agente SNMP as habilidades necessárias para coletar as informações do dispositivo e enviar ao gerente.

OID’s  (Object Identifiers) são objetos únicos dentro da MIB, organizados de maneira hierárquica (Semelhante a um DNS) então, se o gerente quiser saber a temperatura da CPU daquele dispositivo, será solicitado ao agente e, utilizando os recursos disponíveis (MIB e OID) essa resposta será coletada.

Apenas para ilustração e melhor compreensão, segue um exemplo de uma árvore OID: 

Como dito antes, se trata de uma árvore hierárquica, sendo que para chegar a OID da microsoft, por exemplo, eu faria o caminho: Iso (1) .org (3) .dod (6) .internet (1) .private (4).microsoft(311) ou apenas 1.3.6.1.4.1.311.

Normalmente as OID’s possuem caminhos ainda mais longos, como por exemplo a OID que tem informações do Hardware de um Firewall CISCO:

Texto e número da OID: 1 (iso). 3 (org). 6 (dod). 1 (internet). 4 (private). 1 (enterprises). 9 (cisco). 9 (ciscoMgmt). 147 (ciscoFirewallMIB). 1 (ciscoFirewallMIBObjects). 2 (cfwSystem). 1 (cfwStatus). 1 (cfwHardwareStatusTable). 1 (cfwHardwareStatusEntry). 2 (cfwHardwareInformation)

Numericamente essa OID é: 1.3.6.1.4.1.9.9.147.1.2.1.1.1.2

Ok, entendi o que é uma MIB e uma OID, mas o que diabos é o SMI?

SMI (Structure of Management Information) é um template ou um modelo na qual as MIB’s são construídas, padronizando todas as MIB’s para que tenham os mesmos formatos de informações. Portanto um fabricante, ao fazer com que o dispositivo produzido ( Firewalls, servidores, PC’s … ) possua uma MIB para que seja possível o agente SNMP trabalhar, ele seguirá todos os padrões estabelecidos na RFC-1213 .

SNMP v1, SNMP v2, SNMP v3 …

Existem três versões do protocolo SNMP, havendo algumas diferenças de funcionalidades e segurança.

O SNMP v1, possui 5 funções para interagir com a MIB e não possui recursos de segurança.

• Get-Request: Função usada para acessar uma variável específica na MIB do ativo da rede.

• Get-Netx-Request: Esta função é usada para o acesso a valores em sequência na MIB do equipamento. Ela é útil quando estamos buscando vários valores na MIB.

• Set-Request: Função utilizada para alterar valores na MIB do ativo da rede.

• Get-Response:  Função é usada como resposta das 3 funções anteriores.

• Trap: Uma função que permite o agente notificar ao gerente quando determinado evento ocorrer, podendo ou não gerar uma ação com o propósito de recuperar ou corrigir algo.

O SNMP v2, ainda sem recursos de segurança possui duas novas funções:

• Get-Bulk-Request: Diferente das funções que já existiam na versão 1 (Get-Request ou do Get-Next-Request) essa função tornou possível o acesso de grandes blocos de dados de maneira mais eficiente.

• Inform-Request: É uma função que permite a existência de mais de um gerente, situação impossível para o snmp v1.

O SNMP v3 adicionou vários recursos para melhorar a segurança na troca de informações entre agente e gerente, das quais anteriormente não havia nenhuma. Porém ainda existem muitos dispositivos que usam versões desatualizadas do SNMP.

Conclusão

Após compreender esse post, entendemos um dos maiores protocolos de rede em sua totalidade. Ele com certeza será abordado em provas e certificações de rede, esperamos que tenha sido útil e que vocês possam entender melhor o monitoramento de redes executado em empresas de uma maneira um pouco mais teórica, que com certeza tornará  a parte prática mais eficiente!

Neste post é isso galera!  Até mais!

MID SNMP

Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !