Você está na página 1de 14

SNMP

O gerenciamento de redes usa o SNMP para controlar e monitorar redes


heterogêneas.O SNMP é parte integrante do Transmission Control
Protocol/Internet Protocol (TCP/IP),o padrão de redes usado na Internet.

TCP/IP é baseado no modelo OSI para redes.O modelo OSI divide a


comunicação em rede em diversas camadas.São ao todo 7
camadas,repectivamente do menor nível ao nível superior : física, enlace, rede,
transporte, seção, apresentação e aplicação.

A camada física corresponde aos concetores de hardware,fio,aos painéis de


patch, aos blocos punch-down e outros produtos usados para interconectar
equipamentos.
A camada de enlace se refere aos métodos de acesso que o hardware usa
para atuar no meio físico.Exemplos desses métodos incluem Ethernet,Token
Ring,FDDI e o mais novo método de acesso,Asynchronous Transmission Mode
(ATM).
Acima da camada de enlace está a camada de rede.A camada de rede se
refere à forma como o dado é diretamente estabelecido nas condições
prevalescentes.A camada de rede se comunica com a camada de enlace,que por
sua vez se comunica com a camada física.Uma boa analogia é que a camada de
rede é como um motorista de caminhão,a camada de enlace é o caminhão e a
camida física é a estrada.O resto do modelo OSI é a carga do caminhão e do
motorista.É na camada de rede que está situado o protocolo IP.
Pode-se pensar na camada de transporte como sendo o pacote ou caixa.

Para nossos propósitos,as últimas 3 camadas podem ser coletivamente


agrupadas em uma simples camada : o conteúdo dentro do pacote.SNMP está
localizado dentro do pacote,e ele gerencia o pacote,o motorista,o caminhão e a
estrada (todas as camadas) - SNMP pode gerenciar todas as redes heterogêneas
ou desiguais em um sistema de gerenciamento de rede.

Origens
A necessidade de mecanismos de gerenciamento nas redes baseadas em
TCP/IP é atendida pelo SNMP (Simple Network Management Protocol) em
associação com o esquema de MIB (Management Information Base).

Alguns dos objetivos e especificações no projeto do SNMP foram :


• Gerenciamento de rede integrado - A capacidade de gerenciar redes
incorporando componentes que venham de uma variedade de fabricantes
com uma simples aplicação.
• Interoperabilidade - A capacidade de que um equipamento de um
vendedor seja gerneciado pelo equipamento de outro vendedor.
• Padronização - Padrões definem métodos de comunicação e estruturas de
dados de forma que redes não similares possam ser integradas com o
gerenciamento de rede.

Como funciona o SNMP

É baseado em dois elementos : estações de gerenciamento de rede e


elementos da rede.

Estações de gerenciamento da rede - É responsável por rodar aplicações de


gerenciamento que monitorem e controlem os elementos da rede.
Elementos da rede - Hubs inteligentes,roteadores e pontes possuem agentes
que estão localizados dentro do limites dos elementos.Esses agentes SNMP são
responsáveis por realizar as funções que são requisitadas pelas estações de
gerenciamento.

SNMP é o meio pelo qual a estação de gerenciamento e os elementos de


rede se comunicam.É um protocolo simples que permite à um administrador
inspecionar ou alterar variáveis em um elemento de rede a partir de uma estação
de gerenciamento remota.

A transmissão do SNMP emprega o Universal Datagram Protocol da


família TCP/IP para enviar informação.O UDP permite que os agentes SNMP sejam
representados por um pacote simples o que faz com que o protocolo SNMP
requeira um overhead mínimo e tenha muito pouca interferência nas outras
funções da rede.

Todo o monitoramento SNMP é realizado pelo sistema de gerenciamento de


rede. As estações de gerenciamento acessam os elementos de rede para obter a
informação desejada ou para mudar uma variável.Nesse caso estará sendo
realizada uma operação de "polling" (verificação pelo gerente). Quando os
elementos de rede iniciam a comunicação, através do seu agente,para notificar o
gerente de alterações no sistema,suas transmissões são conhecidas como
"traps".

Estações de gerenciamento SNMP (NMS – Network


Management Stations)
A estação de gerenciamento SNMP é uma coleção de aplicações e banco de
dados que controlam um grupo de agentes.Uma estação de gerenciamento de
rede é composta por 5 componentes: uma interface para o usuário, aplicações de
gerenciamento, um banco de dados, um dispositivo SNMP e um canal de
transporte/ligação.
A interface do usuário permite ao operador mandar comandos de
gerenciamento e receber do agente respostas solicitadas ou não.Tal interface
poderia ser em formato texto ou em algum tipo de interface gráfica para o
usuário (GUI).
As aplicações de gerenciamento operam na análise e processamento da
informação de gerenciamento de rede obtida do agente.

O banco de dados,ou variáveis de interesse,contém todos os


nomes,configurações, performances,topologia e dados examinados da rede.O
banco de dados é separado em categorias que incluem a Management
Information Base (MIB), o banco de dados do elemento de rede e o banco de
dados da aplicação de gerenciamento.

A categoria mais importante é a MIB,um banco de dados que contém


definições de objetos que representam recursos efetivos que estão sendo
gerenciados no ambiente SNMP.

É possível através das MIBs I e II (fornecem informações gerais sobre os


elementos da rede,sem levar em conta as características específicas dos
equipamentos) obter informações como tipo e status da interface
(Ethernet,FDDI,ATM),número de pacotes transmitidos,número de pacotes com
erro,endereço IP das rotas etc.

Aplicações SNMP
Vários produtos têm surgido com a finalidade de gerenciar a rede,quase que
em sua totalidade baseados no padrão SNMP e CMIP.O sucesso do SNMP se deve
ao fato de ele ter sido o primeiro protocolo de gerenciamento acessível ao
público,não proprietário e simples em sua implementação,o que possibilita o
gerenciamento efetivo de ambientes com características não similares.
As implementações básicas do SNMP permitem ao gerente monitorar e isolar
falhas,já as aplicações mais sofisticadas permitem gerenciar o desempenho e a
configuração da rede.Estas aplicações,normalmente,incorporam menus e alarmes
para melhorar a interação com o profissional de gerência.

Base de informação gerencial (MIB)


A SMI (Structure of Management Information – estrutura de informações de
gerenciamento) é um método para definir objetos gerenciados e os respectivos
comportamentos. Esse tipo de objeto é o status operacional de uma interface de
roteador (como exemplo, em funcionamento, parada ou em teste). Essa lista
define as informações que a NMS pode utilizar para detectar o funcionamento
geral do dispositivo em que o agente reside.

A MIB (Management Information Base – base de informações de


gerenciamento) pode ser considerada um banco de dados de objetos gerenciados
que o agente rastreia. Todo tipo de informações sobre status ou estatística
acessado pela NMS é definida em uma MIB. A SMI é um método para definir
objetos gerenciados, enquanto a MIB é a definição (por meio da sintaxe da SMI)
dos próprios objetos. Uma MIB define um nome em texto de um objeto gerenciado
e explica o seu significado.

Definição de objetos na MIB


Os objetos são imagens virtuais dos elementos básicos que se quer
monitorar.São definidos usando a Abstract Syntax Notation One (ASN.1) e estão
localizados na MIB (Management Information Base).
Os objetos são definidos segundo um determinado tipo (Object Type).Esses
tipos possuem cinco campos :Nome, Sintaxe, Definição, Acesso e Status.
Nome - É um nome textual para o tipo de objeto denominado Descritor de
Objeto,o qual corresponde à um identificador de objeto.
Sintaxe - É uma sintaxe abstrata para um tipo de objeto.Pode ser uma sintaxe
simples que pode ser um inteiro, uma string de octetos, um identificador de
objetos ou nulo.Pode ser também uma sintaxe construída reunindo tipos básicos
ou uma sintaxe de aplicação tais como Network Adress, IpAddress ou Time Ticks.
Definição - É uma descrição textual da semântica de um tipo de objeto.Trata-se
de um campo de grande importância para MIBs que pretendam ser usadas em um
ambiente multivendedor.
Acesso - Pode ser de leitura, escrita e leitura ou não acessível.
Status - Pode ser obrigatório,opcional ou obsoleto.
Um exemplo de definição de objeto na MIB é visto abaixo :

sysUpTime OBJECT-TYPE
SYNTAX TimeTicks
ACESS read-only
STATUS mandatory
DESCRIPTION
"The time (in hundreths of a second) since the
network management portion of the system was
last re-initialized."
:: = { system 3 }

No caso de tabelas, é ainda as vezes acrescentado um outro campo que é o


campo índice (A análise de tabelas será feita posteriormente neste documento).
Veja abaixo um exemplo de definição de tabela na MIB em ASN.1 :
ifTable OBJECT-TYPE
SYNTAX Sequence of IfEntry
ACESS not-acessible
STATUS mandatory
DESCRIPTION
"An interface entry containing objets at the
subnetwork layer and below for a particular
interface."
INDEX { IfIndex }
:: = { interfaces 2 }

SNMP e UDP

O SNMP usa o UDP (User Datagram Protocol) como protocolo de transporte


para passagem de dados entre gerenciadores e agentes. O UDP foi escolhido por
meio do TCP (Transmission Control Protocol) por não ter conexão, isto é, nenhuma
conexão ponto-a-ponto é estabelecida entre o agente e a NMS quando pacotes
são transferidos de um lado para outro. Esse aspecto do UDP torna-o não
confiável, uma vez que não existe confirmação de pacotes perdidos no nível do
protocolo próprio aplicativo do SNMP se encarrega de detectar se ocorreu perda
de pacotes e retransmite-os, se necessário. Em geral, isso é feito com um simples
timeout (tempo de espera). A NMS envia uma solicitação de UDP para um agente
e aguarda uma resposta. O intervalo de tempo em que a NMS espera depende da
configuração na NMS. Se o timeout for decorrido e a NMS não receber a resposta
do agente, será presumida a perda do pacote e a NMS retransmite a solicitação. O
número de retransmissões de pacotes pela NMS também é configurável.

Quanto à natureza não confiável do UDP não é um grande problema. No pior


dos casos, a NMS emite uma solicitação e nunca recebe uma resposta. Para as
traps, é um pouco diferente. Se um agente envia uma trap e ela nunca chega, a
NMS não sabe se essa trap sequer foi enviada. Nem o próprio agente detecta a
necessidade de reenvio da trap, por que a NMS não é obrigada a enviar uma
resposta para o agente, confirmando o recebimento da trap.

O reverso da natureza incerta do UDP é o baixo overhead, de modo que o


impacto sobre o desempenho da rede é menor. Em uma rede gerenciada e muito
congestionada, o SNMP por meio do TCP é uma péssima idéia. É importante
entender que o TCP não é mágico e que o SNMP foi elaborado para trabalhar com
redes enfrentando problemas.

Quando uma NMS ou um agente precisa executar uma função de SNMP


(como uma solicitação ou uma trap), ocorrem os seguintes eventos na pilha de
protocolos:

Aplicativo
Primeiramente, o aplicativo de SNMP (NMS ou agente) determina o que fará
(pode enviar uma solicitação de SNMP para um agente, pode enviar uma resposta
a uma solicitação de SNMP – enviada a partir do agente – ou enviar uma trap para
uma NMS.

UDP
A camada seguinte, UDP, permite a comunicação entre dois hosts. O
cabeçalho do UDP contém, também, a porta de destino do dispositivo para o qual
ela está enviando uma solicitação ou uma trap, porta 161 ou 162,
respectivamente.

IP
A camada IP tenta fornecer o pacote de SNMP ao destino almejado,
conforme especificado pelo respectivo endereço IP.

MAC (Medium Access Control)


O último evento que deve ocorrer para um pacote de SNMP alcançar seu
destino é ser controlado na rede física, onde pode ser direcionado para o destino
final.
Figura X.X – Conexão através de Internet entre NMS e agente

SMI (Structure of Management Information)antes da MIB

A Structure of Management Information Version 1 define com


exatidão como os objetos gerenciados (informações de
gerenciamento) são nomeados e especifica os respectivos tipos de
dados associados. A Structure of Management Information Version 2
fornece otimizações para o SNMPv2.

Nome
O nome ou identificador de objeto (OID – Object Identifier) define
com exclusividade um objeto gerenciado. Os nomes são exibidos em
dois formatos: numérico e o “legível pelo ser humano”.

Tipo e sintaxe
O tipo de dado de um objeto gerenciado é definido por meio de
um sub-conjunto da Abstract Syntax Notation One(ASN.1). A ASN.1 é
um meio de especificar o modo como os dados são representados e
transmitidos entre gerenciadores e agentes, no contexto do SNMP. A
vantagem em relação à ASN.1 é o fato de que a notação independe da
máquina.

Codificação
Uma única instância de um onjeto gerenciado é codificada em
uma string de octetos por meio do método Basic Encoding Rules
(BER).

Nomeando OIDs

Os objetos gerenciados são organizados em uma hierarquia em


árvore. Essa estrutura é base do esquema de atribuição de nomes do
SNMP. Um ID de objeto é formado por uma sequência de inteiros
baseada nos nós da árvore, separadas por pontos (.). Embora também
exista uma forma legível ao ser humano realizada através de nomes,
onde cada um deles representa um nó da árvore.

Na árvore de objetos, o nó posicionado no início da árvore é


denominado raiz, tudo o que tiver filhos será uma subárvore e tudo o
que não tiver filhos será chamado nó de folha.
Exemplo:

Root-Node  nó-raiz com respectiva subárvore formada por ccit(0),


isso(1), joint(2);
iso(1)  contém uma sub-árvore;
ccit(0), joint(2), directory(1), mgmt(2), experimental(3), private(4)
nós-folha

Examine a definição da subárvore internet e de quatro de suas


sub-árvores:

internet OBJECT IDENTIFIER :: { iso org(3) dod(6) 1}


directory OBJECT IDENTIFIER :: { internet 1}
mgmt OBJECT IDENTIFIER :: { internet 2}
experimental OBJECT IDENTIFIER :: { internet 3}
private OBJECT IDENTIFIER :: { internet 4}

A primeira linha declara internet como a OID 1.3.6.1 como uma


subárvore de isso.org.dod ou 1.3.6 (::= é um operador de definição).
Para a ramificação directory, a notação { internet 1 } informa que ela
faz parte da ramificação internet e que a OID é 1.3.6.1.1. A OID de
mgmt é 1.3.6.1.2, e assim por diante.
Operações do SNMP

Protocol Data Unit (PDU) é o formato de mensagem que os


gerenciadores e agentes utilizam para enviar e receber informações.
Existe um formato PDU padrão para cada uma das seguintes
operações do SNMP:

• get
• get-next
• get-bulk
• set
• get-response
• trap
• notification
• inform
• report

Operação de get

Valores específicos podem ser obtidos através do “get”request para determinar o


desempenho e o estado do dispositivo. Tipicamente, muitos valores e parâmetros
diferentes podem ser determinados através do SNMP, sem a sobrecarga associada com o
login no dispositivo, ou estabelecer uma conexão TCP com o dispositivo.

A solicitação de get é iniciada pela NMS, que a envia para o


agente. O agente recebe a informação e a processa. Se o agente
conseguir obter as informações solicitadas, retornará um get-
response para a NMS, onde é processado.

Um dos itens na solicitação do get é uma vinculação de


variáveis, ou varbind, que é uma lista de objetos da MIB que permite
que o receptor de uma solicitação veja o que o emissor deseja saber.
As vinculações de variáveis podem ser consideradas como os pares
OID=valor que facilitam para o emissor (NMS) selecionar as
informações necessárias quando o receptor preencher a solicitação e
retornar a resposta.
O comando get serve para recuperar um único objeto da MIB de
cada vez.

Operação de get-next

Os gerentes de rede padrão do SNMP para "percorrerem todos os valores SNMP


de um dispositivo (através do" get-request ") para determinar todos os nomes e valores
que um dispositivo operante suporta. Isso é conseguido iniciando-se com o primeiro
objeto SNMP, buscando o nome junto com um "get-next", e repete esta operação até que
um erro é encontrado.

Permite recuperar mais de um objeto de um dispositivo em um


intervalo de tempo.

Permite emitir uma sequência de comandos para recuperar um


grupo de valores de uma MIB. Em outras palavras, para cada objeto
MIB a ser recuperado, são gerados separadamente uma solicitação de
get-next e um get-response.

Como uma OID é uma sequência de inteiros, é fácil para um


agente iniciar na raiz da árvore de objetos da respectiva SMI e descer
até encontrar a OID que está procurando. Quando a NMS receber uma
resposta do agente ao comando get-next recém emitido, ela enviará
outro comando get-next e continuará repetindo esse comandoaté que
o agente retorne um erro, significando que o final da MIB foi
alcançado e não há mais objetos a serem obtidos.

Operação de get-bulk

Permite que um aplicativo de gerenciamento recupere uma


grande seção de uma tabela, de uma só vez. A operação do get
padrão pode tentar recuperar mais de um objeto MIB de uma vez,
mas os tamanhos de mensagens são limitados pelos recursos do
agente. Se o agente não puder retornar todas as respostas solicitadas,
retornará uma mensagem de erro sem dados. Já a operação de get-
bulk instrue o agente a retornar o máximo de respostas possíveis. No
entanto, são possíveis respostas incompletas.

Operação de set
O padrão SNMP fornece um método de efetivação na ação associada a um
dispositivo (através do "set" request) para realizar atividades como desativar interfaces,
desconectar usuários, limpar registros etc. Isso fornece uma maneira de configurar e
controlar os dispositivos de rede via SNMP.

É utilizado para modificar o valor de um objeto gerenciado ou


para criar uma nova linha em uma tabela. Os objetos definidos MIB
como read-write ou write-only podem ser alterados ou criados com
esse comando. Uma NMS pode definir mais de um objeto de cada vez.

Traps do SNMP

Uma trap é um meio de um agente informar à NMS que aconteceu algo


errado.

O padrão SNMP fornece um mecanismo pelo qual os dispositivos podem "chegar"


a um gerente de rede na própria existência (através da "trap" message) para notificar o
gestor de um problema com o dispositivo. Normalmente, isso exige que cada dispositivo
na rede seja configurado para emitir traps SNMP para um ou mais dispositivos de rede
que estão esperando estas traps.

A trap se origina no agente e é enviada para o destino configurado no


próprio agente. O destino da trap costuma ser o endereço IP da NMS. Nenhuma
confirmação de envio é enviada da NMS para o agente, de modo que o agente
não sabe se a trap alcançou a NMS. Como o SNMP usa o UDP e as traps são
elaboradas para informar os problemas ocorridos na rede, os traps estão
propensos principalmente à perda e a não alcançar seus destinos.

Entretanto, o fato de que as traps podem desaparecer não as torna menos


úteis. Eis algumas situações que uma trap pode relatar:

• Uma interface de rede no dispositivo (onde o agente está em execução) foi


paralisada;
• Uma interface de rede no dispositivo (onde o agente está em execução) foi
reativada;
• Uma chamada recebida em um rack de modem não conseguiu estabelecer
uma conexão com o modem;
• A ventoinha em um comutador ou roteador está com defeito.

Mecanismo inform do SNMP

O SNMPv2 fornece um mecanismo inform, que permite a comunicação entre


gerenciadores. Essa operação pode ser útil quando for necessária mais de uma
NMS na rede. Quando um inform é enviado de uma NMS para outra, o receptor
envia uma resposta para o emissor confirmando o recebimento do evento. É
possível utilizar um inform do SNMP para enviar traps do SNMPv2 para uma NMS.
Se for utilizado um inform para esse objetivo, o agente será notificado quando a
NMS receber a trap.

Glossário

Gerenciador → é um servidor executando algum tipo de sistema de software que


pode lidar com tarefas de gerenciamento de uma rede. Costumam ser chamados
NMS (Network Management Stations – estações de gerenciamento de rede) sendo
responsável pela operação de polling e por receber traps de agentes na rede.

Trap → é um método utilizado por um agente para informar à NMS que algo
aconteceu. As traps são enviadas de modo assíncrono, não em resposta a
consultas da NMS.

Agente → é a peça do software executada nos dispositivos da rede gerenciados


pelo administrador. Pode ser um programa separado ou pode ser incorporado ao
sistema operacional. O agente fornece à NMS informações de gerenciamento,
rastreando os diversos aspectos operacionais dos dispositivos.

Poll → é a operação de consultar informações em um agente (roteador,


comutador, servidor UNIX). Essas informações podem ser utilizadas
posteriormente para detectar se ocorreu algum tipo de evento desastroso.
Objetos Gerenciados → informações de gerenciamento.

ASN.1 → é um meio de especificar o modo como os dados são representados e


transmitidos entre gerenciadores e agentes.
BER → define o modo de codificação e decodificação dos objetos para que sejam
transmitidos através de um meio de transporte, como o Ethernet.

Objetos Gerenciados → informações de gerenciamento.

Varbind → vinculações de variáveis – é uma lista de objetos da MIB que permite


que o receptor de uma solicitação veja o que o emissor deseja saber.

PDU → é o formato de mensagens que gerenciadores e agentes utilizam para


enviar e receber informações.

Bibliografia

Mauro, Douglas and Schmidt, Kevin (2001) “Essencial SNMP”, O`Reilly


Gerência de Redes UFF
SNMP : Estrutura,Protocolo e Aplicações UFRJ