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 Management Stations)
SNMP
(NMS
–
Network
A estação de gerenciamento SNMP é uma coleção de aplicações e banco dados que controlam um grupo de agentes.Uma estação de gerenciamento rede é composta por 5 componentes: uma interface para o usuário, aplicações gerenciamento, um banco de dados, um dispositivo SNMP e um canal transporte/ligação.
de de de de
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 getresponse 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 getbulk 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