Desde a criação da primeira rede de computadores, denominada ARPANET que era utilizada para fins militares, as redes de computadores e o seu respectivo uso cresceram de forma global. Como consequência deste fato, houve um aumento não somente em escala, mas também em complexidade da mesma. Nesse sentido, com o passar do tempo se tornava cada vez mais necessária a implantação de um protocolo padronizado e aberto que gerenciasse a rede a fim de que se tivesse um controle maior de tudo que envolvia a estrutura funcional das redes de computadores.

Até que em abril de 1988, a Internet architecture board (IAB) publicou uma documentação muito importante, a RFC 1052, esta Request For Comments expunha os paradigmas relacionados ao gerenciamento de redes e seus respectivos requisitos.

O primeiro protocolo a ser utilizado foi o Simple network management protocol (SNMP). Derivado do protocolo de monitoração de gateways IP (SGMP) e desenvolvido pelo Engineering Task Force (IETF),  o objetivo a princípio era criar um artifício rápido e prático a fim de esquivar-se dos obstáculos da administração de redes da época. Mesmo assim, em 1989 o protocolo dado como transitório, foi substancialmente importante para evolução da gerência de redes. 

Em 1991, foi publicada a primeira versão do protocolo SNMP original, o SNMPv1 com algumas melhorias em relação à estrutura de funcionamento inicial do mesmo, ainda assim, antes, na década de 80 emergiram dois protocolos de gerenciamento diferentes que utilizavam como base o SNMP original, porém com algumas melhorias, eles eram grandes potenciais protocolos de gerenciamento, estamos falando do Common Management Information Protocol (CMIP) e o SNMPv2.

O SNMPv2 (1993) foi muito bem recebido no mercado, ainda mais a sua atualização para o SNMPv2c que é o mais utilizado hoje em dia, Já CMIP, apesar de ser bem mais detalhado que o SNMPv1 e até mesmo que o SNMPv2, não foi e não é amplamente utilizado por alguns fatores como:

  • Apesar de ser derivado do SNMP ele utiliza muito mais recursos do sistema por ser mais complexo do que o SNMP e utilizar o TCP como protocolo de transporte;
  • Ele é muito difícil de programar, possui uma quantidade diversa de variáveis;
  • Possui muito mais operações que o SNMP;

Então o grande problema do CMIP é que ele se tornou um sistema muito grande e complexo, ou seja, poucas redes conseguem suportá-lo de forma satisfatória.

O SNMP passou então a ser largamente utilizado a partir da década de 90 com várias melhorias, como por exemplo, a implementação de módulos de MIB RMON, e a versão do SNMP mais segura foi oficialmente homologada em 1998, o SNMPv3.

Seguem abaixo links relativos a algumas RFCs que documentam as versões do SNMP:

SNMPv1: RFC 1157 de 1990;

SNMPv2: Tem como RFCs principais 3416, 3417 e 3418;

SNMPv3: RFC 3410 a 3418 e 2576;

DEFINIÇÃO DO PROTOCOLO SNMP

Simple Network Management Protocol é um protocolo aberto da camada de aplicação que estabelece a troca de informações de gerenciamento, coletando e demonstrando dados de gerenciamento de redes como variáveis (fetch-store paradigm).

O SNMP utiliza o protocolo UDP como de transporte (porta padrão UDP 161), onde as mensagens são encapsuladas em datagramas IP. Através do uso do mesmo, um sistema de gerência da rede solicita informações (pooling) aos ativos da rede (agentes), altera ou busca valores consultados e obtém respostas conforme as suas respectivas requisições.

Por utilizar um protocolo de transporte não orientado à conexão, o próprio SNMP assume o papel de verificação de mensagens não recebidas, para evitar retransmissões ilimitadas, ele utiliza um timeout, onde o número de tentativas é definido pelo gestor da infraestrutura operacional da rede.

Podemos representar através de uma forma rudimentar a interação entre esses elementos conforme a imagem abaixo: 

Esquema rudimentar de funcionamento do SNMP
Esquema rudimentar de funcionamento do SNMP

SMI – STRUCTURE OF MANAGEMENT INFORMATION

As informações de gerenciamento da rede solicitadas e coletadas via SNMP devem ser padronizadas consoante a sua organização, nomenclatura, regras e procedimentos. O tratamento e a modelagem de informações de gerenciamento são normalmente feitas a partir de conceitos relacionados à orientação de objetos, esse conceito abstrai o comportamento dos ativos de rede, eles representarão uma realidade ou aspecto concreto dos dispositivos da rede, como por exemplo a descrição de cada uma das interfaces de um roteador em um objeto denominado ifdescr.

Vários objetos estão organizados hierarquicamente dentro de um banco de dados lógico chamado MIB (Management Information Base), toda essa padronização de arquivos de MIBs é feita pelo Structure Management Information (SMI) por um template (MIB II). Além disso, outra reponsabilidade importante do SMI é indicar como a linguagem de descrição de dados ASN.1 será utilizada para a definição de objetos e os tipos de dados associados a cada um dos objetos.

A descrição da MIB evidencia a formalização da sua estrutura, cada objeto pertencente a ela e as suas características. A descrição da MIB é importante devido à sua padronização e utilização universal, independente do Fabricante. 

Vamos citar alguns tipos de dados importantes no SNMP e dar alguns exemplos:

  • INTEGER
  • STRING
  • OCTETSTRING
  • COUNTER (couter32, couter64)
  • OBJECTIDENTIFIER
  • NULL
  • SEQUENCE
  • SEQUENCE OF
  • IPADDRESS
  • NETWORKADDRESS
  • GAUGE (gauge32, gauge64)
  • TIMETICKS
  • OPAQUE

Cada objeto está associado a um tipo de dado, por exemplo, o ifdescr está associado normalmente ao tipo de dado STRING.

OID – OBJECT IDENTIFIER

Um tipo de dado do SNMP que gostaríamos de dar um destaque especial é o OID. O Object Identifier é uma string composta de números inteiros separados por pontos, já que a MIB pode ser visualizada como uma árvore que segue um template, normalmente o  MIB II, cada nó é representado por um número, então o OID é o caminho pelo qual um determinado objeto está dentro de uma MIB.

Então, quando o gerente solicita uma informação ao agente, é normalmente indicado na procura, o OID do objeto procurado. Falando em solicitação de informação vamos fazer uma abordagem dos tipos de operações do SNMP.

TIPOS DE OPERAÇÕES DO SNMP

O gerente pode solicitar informações (request) de formas diferentes:

  • GET-REQUEST: É uma consulta do gerente para o agente para capturar o valor de uma variável;
  • SET-REQUEST: É uma requisição do gerente para o agente para alterar o valor de uma variável. Exemplo: Alterar hostname;
  • GET-NEXT-REQUEST: É uma requisição do gerente para o agente para capturar o valor da variável seguinte;
  • GET-BULK-REQUEST: implantada no SNMPv2, melhora a recuperação de variáveis consideravelmente. Essa operação, de forma eficiente, pede o máximo de dados que um agente pode enviar em um único response.

O agente pode se comunicar com o gerente das seguintes formas:

  • RESPONSE: Resposta por parte do agente à solicitação do gerente;
  • TRAP: Notificação enviada por parte do agente ao gerente;
  • INFORM-REQUEST: Novo tipo de TRAP implementada no SNMPv2, essa operação trabalha com checagem de envio e recebimento de notificações, diferentemente de uma TRAP tradicional.

Cada operação é executada segundo o que quer se obter de informação, por exemplo, existem comandos que são baseados nessas operações, o pacote NET-SNMP do Linux possui comandos SNMP.

O comando SNMP WALK é baseado na operação GET-NEXT-REQUEST, isso significa que quando ele é executado, são feitas várias solicitações a cada linha (variável ou index) da tabela relacionada ao objeto, cada informação de cada linha da tabela do objeto vem em um pacote response diferente.

A imagem abaixo mostra o MIB browser do SLAview em uma consulta SNMP a MIB IF-MIB no objeto ifdescr, esta primeira, dá detalhes do objeto:

Ifdescr – MIB browser do SLAview
Ifdescr – MIB browser do SLAview

Vale destacar que o item acesso se refere a permissão do objeto, como está com a letra R, então esse objeto só permite operação de leitura, ou seja, não permite a operação SET-REQUEST.

Já esta abaixo mostra o resultado efetivo da consulta a um roteador cisco:

SNMP WALK – MIB browser SLAview
SNMP WALK – MIB browser SLAview

O PROTOCOLO SNMP E A GESTÃO DO AMBIENTE DE TI

Normalmente, sistemas de monitoramento são utilizados para que as áreas do FCAPS possam ser atendidas. Comumente, o protocolo SNMP é utilizado dentro desses sistemas para atender as áreas de desempenho e falhas.

Atualmente o protocolo SNMP é o mais utilizado no mundo em se tratando de monitoramento de redes. Nesse sentido, na rede existem diversos equipamentos gerenciáveis via SNMP além dos dispositivos mais tradicionais como roteadores e swtiches. Sensores, impressoras, nobreaks, geradores, raspberry, PABX são alguns exemplos de dispositivos que também podem ser monitorados atualmente.

Em se tratando do gerenciamento de falhas e desempenho, qualquer um destes dispositivos que responder ao protocolo SNMP pode ser monitorado, seja usando MIBs que abertas ou até mesmo extensões proprietárias de MIBs fornecidas pelo fabricante para otimizar o detalhamento de informações desses equipamentos.

Além disso, com o SLAview esses dispositivos podem ser monitorados via script com utilização de coletas customizadas para gerar uma personalização de coletas padrão em dados mais úteis e específicos.

CONSIDERAÇÕES FINAIS

Portanto, é inegável a importância do protocolo SNMP para o gerenciamento e monitoramento de todo ambiente de TI. Por isso, a Telcomanager traz ao mercado o SLAview, sistema baseado em coleta SNMP, ICMP e via scripts, um sistema robusto de análise de performance e desempenho para todo o seu ambiente de TI.

Pensando nisso, a Telcomanager, líder da América Latina no setor de software para gerência de redes, desde 2002 no mercado com uma metodologia única e inovadora, disponibiliza soluções inteligentes para o monitoramento de dados de modo a prover visibilidade completa à infraestrutura do cliente, permitindo que sua empresa acompanhe os principais aspectos de sua rede.

Publicado em 22/07/2022