240 likes | 387 Views
SNMP Simple Network Management Protocol. O que é SNMP. Gerencia proativa Baseada em IP Sucessor do SGMP Gerencia inclusive impressoras, modems, fontes de energia, sensores, etc. Simple Network Management Protocol.
E N D
O que é SNMP • Gerencia proativa • Baseada em IP • Sucessor do SGMP • Gerencia inclusive impressoras, modems, fontes de energia, sensores, etc
Simple Network Management Protocol • SNMP é um sistema que providencia facilidades para gerenciar e monitorar recursos de rede • Componentes do SNMP: • Agentes SNMP • Gerente SNMP • Management Information Bases (MIBs) • Protocolo SNMP
Simple Network Management Protocol • O Agente SNMP é um software residente nos equipamentos de rede, como roteadores, computadores, impressoras, etc… que mantém bases de dados com informações sobre suas configurações e status corrente • As informações nas bases de dados são descritas pelas Management Information Bases (MIBs) • Um Gerente SNMP é um programa que contacta os agentes SNMP solicitando informações sobre o status dos equipamentos que estão sendo monitorados. Podem também modificar algum parâmetro nestes equipamentos • O protocolo SNMP é uma protocolo da camada de aplicação utilizado pelos agentes e gerentes para receber e enviar dados
SNMP • Interações no SNMP
Relacionamento entre as entidades consultas respostas Gerente Agente traps informes confirmações
MIBS • Uma MIB especifica o objeto gerenciado • Uma MIB é um arquivo de texto uqe descreve o objeto gerenciado utilizando a sintaxe ASN.1 (Abstract Syntax Notation 1) • ASN.1 é uma linguagem formal para descrever dados e suas propriedades • No Linux, Os arquivos MIB estão no diretório /usr/share/snmp/mibs • Multiplos arquivos MIB • MIB-II (definida na RFC 1213) define os objetos gerenciados nas redes TCP/IP
Exemplos de MIBs • ATM MIB • Frame Relay DTE Interface Type MIB • BGP Version 4 MIB • Raius Authentication Server MIB • Mail Monitoring MIB • DNS Server MIB
Estrutura de informações de gerenciamento • SMI (Structure of Management Information) • Método para definir objetos gerenciados e seus comportamentos • Como um dicionário que mostra a pronuncia e apresenta o significado • Agentes possuem uma lista de objetos por ele rastreados • As MIBs (Management Information Base) podem ser consideradas como bancos de dados de objetos gerenciados • Um agente pode implementar várias MIBs
Árvore MIB Tudo o que tiver filhos será uma sub-árvore Tudo o que não tiver filhos será chamado folha (nó de folha) Internet OBJECT IDENTIFIER ::= { isso org(3) dod(6) 1} Directory OBJECT IDENTIFIER ::= { internet 1 } Mgmt OBJECT IDENTIFIER ::= { internet 2}
Objetos Gerenciados • Cada objeto gerenciado e assinalado por um object identifier(OID) • O OID está especificado nos arquivos MIB • Um OID pode ser representado como uma sequência de inteiros separados por pontos decimais ou por strings de texto: • Example: • 1.3.6.1.2.1.4.6. • iso.org.dod.internet.mgmt.mib-2.ip.ipForwDatagrams • Quando um gerente SNMP requisita uma objeto, ele envia a OID para o agente SNMP
Organization of managed objects • Objetos gerenciados são organizados em uma árvore hierárquica e as OIDs refletem a estrutura da hierarquia. • Cada OID repersenta um nó da árvore. • A OID 1.3.6.1.2.1 (iso.org.dod.internet.mgmt.mib-2) está no topo da hierarquia para todos os objetos gerenciados na MIB-II. • Fábricas de equipamentos de rede podem adicionar objetos específicos na hierarquia.
Definição de um objeto gerenciado em uma MIB • Especificação do ipForwDatagrams na MIB-II. ipForwDatagrams OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The number of input datagrams for which this entity was not their final IP destination, as a result of which an attempt was made to find a route to forward them to that final destination. In entities which do not act as IP Gateways, this counter will include only those packets which were Source-Routed via this entity, and the Source- Route option processing was successful." ::= { ip 6 }
Tipos de dados aceitos na SMI • INTEGER (32 bits) – Status operacional da interface • OCTET STRING – Representar endereços físicos • Counter (32 bits) de 0 à 2³² -1 (4.294.967.295), retorna a zero quando o valor máximo é alcançado • OBJECT IDENTIFIER – Decimal separado por pontos • NULL – Atualmente sem uso • SEQUENCE – Define listas de tipos de dados • SEQUENCE OF – Define um objeto dentro de uma sequence • IpAddress – Representa um endereço IPv4 • NetworkAddress – Idêntico ao IpAddress • Gauge – Contador que pode aumentar ou diminuir aleatoriamente. (Velocidade da interface) • TimeTicks – Tempo em centésimos de segundos • Opaque – Permite o armazenamento de qualquer codificação dentro de uma OCTET STRING
Estrutura da MIB TORRADEIRA-MIB DEFINITIONS ::= BEGIN IMPORTSenterprises FROM RFC1155-SMI OBJECT-TYPE FROM RFC-1212DisplayString FROM RFC-1213; Epilogue OBJECT IDENTIFIER ::= {enterprises 23955}Torradeira OBJECT IDENTIFIER ::= {epilogue 2} torradeiraFabricanteOBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "O nome do fabricante da torradeira. Por exemplo, Torradeira Capaz." ::= {torradeira 1} torradeiraNomeModelo OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "O nome do modelo da torradeira. Por exemplo,Automatic Power.” ::= {torradeira 2} torradeiraControle OBJECT-TYPE SYNTAX INTEGER {up (1), down (2)} ACCESS read-write STATUS mandatory DESCRIPTION "Esta variável controla o status corrennte da torradeira. Para Ligar a torradeira (1), para desligá-la (2).” ::= {torradeira 3}
Remote Monitoring(RMON) • Oferece a NMS dados estatísticos sobre uma LAN ou WAN inteira, no nível de pacotes. • Análise pode ser efetuada off-line
Protocolo SNMP • OS Gerentes SNMP e os Agentes SNMP comunicam-se utilizando o protocolo SNMP • Generalizando: Gerentes enviam queries e Agentes respondem • Exceção: Traps são inicializadas pelos Agentes.
SNMP Protocol • Get-request. Requisita o valor de um ou mais objetos • Get-next-request. Requisita o valor do próximo objeto de acordo com uma ordem lexicográfica das OIDs. • Set-request. Uma requisição para modificar o valor de um ou mais objetos • Get-response. Enviada pelo Agente SNMP em resposta a uma get-request,get-next-request, ou set-request. • Trap. Um trap SNMP é uma notificação enviada por um agente SNMP para um gerente SNMP dada a ocorrência de algum evento que solicita providencia urgente
Traps • Traps são mensagens assincronas enviadas por um agente para um gerente • As traps normalmente são eventos críticos • As traps incluem: • linkDown: interface desativada • coldStart – reinicialização inesperada (pro exemplo um crash do sistema) • warmStart – reinicialização do SO • linkUp – O oposto do linkDown • (SNMP) Falha de autenticação • …
SNMP Versions • Três versões do SNMP são utilizadas atualmente: • SNMPv1 (1990) • SNMPv2c (1996) • Adicionou a função “GetBulk” • Adicionou o RMON (remote monitoring) • SNMPv3 (2002) • Maior segurança • Todas as versões continuam a ser utilizadas atualmente • Muitos agentes e gerentes SNMP suportam as três versões.
Formato dos pacotes SNMP • Mensagens Get/Set SNMPv1: Cleartext string that is used as a password PDU type, e.g.:32: SNMPv1 Get 64: SNMPv2 Get Unique ID to match requests with replies Sequence of name-value pairs
Segurança SNMP • SNMPv1 usa strings de comunidades (community) em formato texto sem encriptação • SNMPv2 tinha o objetivo de resolver problemas de segurança, (O “c” em SNMPv2c para “community”). • SNMPv3 possui vários aspectos de segurança: • Garantir que um pacote não foi modificado (integridade), • Garantir que uma mensagens vem de um local válido (autenticação) • Garantir que uma mensagem não pode ser lida por uma pessoa não autorizada (privacidade).
Agentes extensíveis Complementar os agentes com recursos próprios snmpd.conf # Pesquisa processo em execução procsendmail 10 1 Procfixsendmail /etc/init.d/sendmailrestart • prErrorFlag – Emite o sinal. • prErrMessage– Escreve a mensagem de erro. • prErrFix – Executa o comando. Se o aplicativo gerenciador escrever o valor 1 no registrador do agente prErrFix, o agente executará o comando. No comando snmpset deve ser indicado o OID pertencente ao programa monitorado:prErrFix.número. Exemplo: snmpset –v1 –c privatelocalhost prErrFix.1 i 1