Redes de Computadores SNMP Simple Network Management Protocol 1
Histórico No final dos anos 70 não haviam protocolos de gerenciamento. A única ferramenta efetivamente usada para gerenciamento foi o Internet Control Message Protocol (ICMP) Redes de Computadores 3 PING -Packet Internet Groper(examinador). Com algumas ferramentas suplementares o PING foi uma satisfatória solução para as exigências de gerenciamento de redes por muitos anos. Redes de Computadores 4 2
No final dos anos 80 o crescimento da Internet tornouse exponencial e a atenção foi voltada para o desenvolvimento de uma capacidade de gerenciamento de rede mais poderosa. Era necessário um protocolo com muito mais funcionalidade que PING Redes de Computadores 5 Simple Gateway Monitoring Protocol (SGMP) emitido em novembro de 1987. O SGMP era um meio simples de monitorar roteadores. Como cresceu a necessidade de mais ferramentas de gerenciamento de rede, três promissoras abordagens surgiram: Redes de Computadores 6 3
High-Level Entity Management System (HEMS): Uma generalização do talvez primeiro protocolo de gerenciamento de rede usado na Internet, o Host Monitoring Protocol (HMP). Simple Network Management Protocol (SNMP): Uma versão melhorada do SGMP. Common management Information Protocol (CMIP) sobre TCP/IP -(CMOT): uma tentativa de incorporar o protocolo (CMIP), serviços, e estrutura de base de dados para gerenciamento de redes sendo padronizado pelo ISO. Redes de Computadores 7 No início de 1988, o Internet Activities Board (IAB) revisou estas propostas e aprovou o desenvolvimento do SNMP como uma solução a curto prazo e CMOT como uma solução de longo alcance. SNMP logo tornou-se o protocolo de gerenciamento padronizado mais usado. CMOT definhou. Redes de Computadores 8 4
SNMP apresentava deficiências nas áreas de segurança e funcionalidade Então, foi elaborado o SNMP versão2, que supre algumas destas deficiências. Redes de Computadores 9 Arquitetura de gerenciamento de redes 5
Elementos: Estação de gerenciamento; Agente de gerenciamento; Base de informações de gerenciamento (MIB-Management Information Base); Protocolo de gerenciamento de rede. Redes de Computadores 11 Estação de gerenciamento: serve de interface para o gerente da rede no sistema de gerenciamento. Terá no mínimo: Redes de Computadores 12 6
Um conjunto de aplicações para análise de dados; Uma interface pela qual o gerente deve monitorar e controlar a rede; A capacidade de traduzir as exigências do gerente no monitoramento e controle de elementos na rede. Uma base de dados de informações extraídas das MIB s de todas entidades gerenciadas na rede. Redes de Computadores 13 Agente de gerenciamento: responde aos pedidos por informação de uma estação, e algumas vezes, manda à estação informações importantes que não foram pedidas. Redes de Computadores 14 7
MIB: O meio pelo qual recursos devem ser gerenciados na rede é representá-los como objetos. Cada objeto é um dado variável que representa um aspecto do agente gerenciado. O conjunto destes objetos é a MIB. Redes de Computadores 15 Protocolo de gerenciamento de rede: A estação de gerenciamento e os agentes são vinculados por um protocolo de gerenciamento de rede. O protocolo usado para o gerenciamento de redes TCP/IP é o SNMP. Este protocolo inclui as seguintes capacidades: Redes de Computadores 16 8
Get: permite que a estação pegue o valor de objetos do agente; Get Next: permite que a estação pegue o valor do próximo objeto (em relação à posição do objeto na árvore da MIB); Set: permite que a estação estabeleça o valor para objetos do agente; Trap: permite a um agente notificar estação de eventos significativos. Redes de Computadores 17 Protocolo de Gerenciamento de rede 9
SNMP foi designado para ser um protocolo do conjunto de protocolos TCP/IP. Ele opera sobre o User Datagram Protocol (UDP). Não usa TCP porque TCP é orientado-aconexão(connection-oriented) e o SNMP e UDP são não-orientados-a-conexão (connectionless-oriented). Redes de Computadores 19 Para uma estação, um processo agente interpreta as mensagens SNMP e controla o acesso à MIB mantida na estação, oferecendo uma interface para o processo gerente. O processo gerente realiza o gerenciamento da rede utilizando SNMP. Redes de Computadores 20 10
estação de gerenciamento SNMP getrequest Aplicação de gerenciamento GetNextRequest SetRequest GetResponse Trap gerente SNMP UDP IP Protocolos Network-Dependent aplicação de gerenciamento de objetos Mensagens SNMP rede ou internet Recursos gerenciados getrequest agente SNMP objetos gerenciados GetNextRequest SetRequest GetResponse Trap agente SNMP UDP IP Protocolos Network-Dependent Redes de Computadores 21 Mensagens Trap técnica Trap-directed-polling Cada agente deve notificar a estação de qualquer evento fora do comum. Estes eventos são comunicados através de mensagens, chamadas de traps. Redes de Computadores 22 11
Proxies O uso do SNMP exige que todos os agentes, assim como as estações de gerenciamento, suportem UDP e IP. Isto exclui o gerenciamento de alguns dispositivos, assim como algumas bridges e modems, que não suportam nenhuma parte do conjunto de protocolos TCP/IP. Redes de Computadores 23 Para acomodar estes dispositivos, foi desenvolvido o conceito de proxy. Um agente SNMP atua como um proxy para um ou mais dispositivos. O agente proxy converte cada mensagem para o protocolo de gerenciamento usado pelo dispositivo. Redes de Computadores 24 12
Estrutura de informação de gerenciamento (SMI) Define a estrutura geral na qual a MIB pode ser definida e construída. Identifica o tipo de dado que pode ser usado pela MIB, e como os recursos são representados e nomeados na MIB. Redes de Computadores 26 13
A MIB pode armazenar tipos simples de dados escalares e vetores bi-dimensionais de escalares. A SMI não suporta a criação de estruturas de dados complexas. Redes de Computadores 27 A linguagem usada para definir a SMI é a ASN.1 (Abstract Syntax Notation One). Redes de Computadores 28 14
Módulos Um módulo é um conjunto de descrições ASN.1 relativas a um tema comum. Por exemplo, a especificação de um protocolo ou de uma MIB. Redes de Computadores 29 <<módulo>> DEFINITIONS : : = BEGIN <<links>> <<declarações>> END Redes de Computadores 30 15
<<módulo>> : é o nome do módulo; <<links>> : importação de bibliotecas ou outros módulos; <<declarações>> : contém as definições de : - Tipos : definem novas estruturas de dados (iniciam com letra maiúscula). - Valores : instâncias de um tipo (inicia com letra minúscula). - Macros : usados para extender a gramática da linguagem ASN.1(letras maiúsculas). Redes de Computadores 31 Tipos e Valores Definição de tipos e valores : nometipo : : = TYPE nomevalor nometipo : : = VALUE Redes de Computadores 32 16
Tipos Simples INTEGER : inteiros OCTET STRING : uma string de octetos, onde cada byte pode ter qualquer valor de 0 a 255. OBJECT IDENTIFIER : um meio de identificar algum objeto. É uma seqüência de números inteiros não negativos, dispostos em uma árvore. NULL : Atualmente este tipo não é usado. Redes de Computadores 33 Tipos Construídos SEQUENCE : uma lista ordenada de zero ou mais elementos de um ou mais tipos ASN.1 (Chamado de estrutura, em outras linguagens). SEQUENCE OF <<tipo>> : uma lista ordenada de zero ou mais elementos do mesmo tipo ASN.1 (vetores). Redes de Computadores 34 17
Tipos Rotulados Definição de um novo tipo rotulando um tipo já existente. O tipo original e o novo tipo só diferem no rótulo. Redes de Computadores 35 Subtipos A partir de um tipo já existente, cria-se um subtipo definindo quais elementos do tipo original serão permitidos no subtipo. Redes de Computadores 36 18
A SMI define seis novos tipos : IpAdress : representa um endereço IP. NetworkAdress : representa um endereço de alguma família de protocolos (atualmente a única disponível é a IP, então NetworkAdress é a mesma coisa que IpAdress ). Counter : Um inteiro não negativo que é incrementado em 1 até alcançar um valor máximo. Redes de Computadores 37 Gauge : Um inteiro não negativo que pode ser incrementado ou decrementado em 1. TimeTicks : Conta o tempo em centenas de segundos a partir de um determinado tempo. Opaque : Codifica uma instância de qualquer tipo ASN.1. O resultado é uma string de octetos Redes de Computadores 38 19
A SMI define também dois tipos construídos: list : <list> : : = SEQUENCE { <tipo1>... <tipo n> Redes de Computadores 39 table: <table> : : = SEQUENCE OF <list> list é definido para ser usado como as colunas de table. Redes de Computadores 40 20
Objetos Cada objeto é definido seguindo este modelo: objeto OBJECT IDENYIFIER : : = { tipo sufixo } --identificador nome OBJECT -TYPE --definição dos tipos SINTAX tipo ACCESS acesso STATUS estado : : = valor (valor do nome do objeto) Redes de Computadores 41 SINTAX : define o tipo de dado do objeto. Pode ser um tipo básico ou um tipo definido por um usuário. ACCESS : pode ser: - read-only : as instancias do objeto podem ser lidas, mas não alteradas; - read-write : as instancias do objeto podem ser lidas ou alteradas; - write-only : as instancias do objeto podem ser alteradas, mas não lidas; - not-accessible : as instancias do objeto não podem ser lidas nem alteradas. Redes de Computadores 42 21
STATUS : - mandatory :os nós gerenciados devem implementar este objeto; - optional :os nós gerenciados podem implementar este objeto; - obsolete : os nós gerenciados não podem implementar este objeto. Os objetos em uma MIB são organizados em uma árvore. Redes de Computadores 43 SNMP versão 2 Além dos mecanismos de troca de mensagens do SNMP versão 1(Get, GetNext, Set, Trap e Response), a versão 2 inclui o GetBulk e o Inform. Redes de Computadores 44 22
GetBulk (bulk = grande volume): semelhante ao GetNext, mas permite que a estação pegue o valor dos n próximos objetos (em relação à posição do objeto na árvore da MIB); Inform: permite a um gerente notificar à outro gerente de eventos significativos. Redes de Computadores 45 MIB do SNMPv2 Os objetos definidos como parte do SNMPv2 são organizados em três MIB s. Cada MIB é organizada em grupos( grupo é uma coleção de objetos). Redes de Computadores 46 23
A MIB SNMPv2 Define objetos que descrevem o comportamento de uma entidade. Esta informação permite ao agente monitorar a quantidade de atividade de um agente e a quantidade de recursos de um agente. Redes de Computadores 47 Contém 5 grupos: Gurpo de Estatísticas SNMPv2 : controla o número de mensagens enviadas, mensagens recebidas, mensagens com erros. Gurpo de Estatísticas SNMPv1 : Gurpo Fonte de objetos : permite que uma entidade SNMPv2 atue como agente. Redes de Computadores 48 24
Gurpo Trap : permite que entidades SNMPv2 que atuam como agentes gerem mensagens trap. Gurpo Set : serve para resolver dois problemas que podem ocorrer com o uso da operação Set. Primeiro, ordem da execução de operações. Segundo, o uso da operação Set por múltiplos gerentes pode resultar em uma base de dados inconsistente Redes de Computadores 49 A MIB gerente-para-gerente Permite a um gerente superior definir eventos que um gerente subordinado usará para mandar mensagens de alerta para o gerente superior. Esta MIB deve ser usada para permitir o uso de gerentes intermediários. Redes de Computadores 50 25
Consiste em dois grupos: Grupo de Alarme : define um conjunto de alarmes para os objetos. Grupo de Evento : quando um alarme é disparado, ele aciona um evento, que é o InformRequest, que é enviado a um gerente superior. Redes de Computadores 51 Aplicações de gerenciamento Gerente MIB Gerente/Agente Agente MIB MIB Agente Agente Agente MIB MIB MIB Redes de Computadores 52 26
A MIB do grupo A MIB do grupo está relacionada com a segurança. Redes de Computadores 53 Segurança SNMPv2 Os serviços de segurança no SNMPv2 são três: privacidade, autenticação e controle de acesso. Redes de Computadores 54 27
Privacidade: proteção de dados transmitidos. O mecanismo de proteção usado é a criptografia. Autenticação: qualquer dado é autentico quando não é alterado e quando vem da fonte que diz ter vindo. O mecanismo de autenticação para SNMPv2 é o MD5 digest authentication protocol. Controle de acesso: garantir que apenas usuários autorizados tenham acesso a uma MIB, e possam modificar os dados da MIB. Redes de Computadores 55 Exemplo MIB-II 28
Grupos que formam a MIB-II Grupo de sistema Contém informações de configuração: system OBJECT IDENTIFIER : := { mib 1 } Alguns objetos : sysdescr: descrição do dispositivo sysname: nome do dispositivo syslocation: localização física do dispositivo sysservices: serviços oferecidos pelo dispositivo Redes de Computadores 58 29
Grupo de interfaces contém informações sobre as entidades da interface. Este grupo contém dois níveis de objetos, o número interfaces em um nó e uma tabela contendo informação destas interfaces: interfaces OBJECT IDENTIFIER : := { mib 2 } ifnumber : o número interfaces em um nó Redes de Computadores 59 --Tabela do grupo de interfaces iftable OBJECT IDENTIFIER : := { interfaces 2 } ifentry OBJECT IDENTIFIER : := { iftable 2 } Alguns objetos da tabela : ifindex : número da interface ifdescr : descrição da interface iftype : tipo da interface ifmtu : tamanho máximo da unidade de transferência ifspeed : velocidade de transferência em bits / segundo Redes de Computadores 60 30
Grupo de tradução de endereço Contém informações sobre endereços. É composto de uma tabela usada para mapear endereços IP em endereços de nível 2 dependentes da rede em uso. at OBJECT IDENTIFIER : : = { mib 3 } attable OBJECT IDENTIFIER : : = { at 1 } atentry OBJECT IDENTIFIER : : = { attable 1} Redes de Computadores 61 Cada linha da tabela possui três colunas: atifindex : numero da interface atphysadress : endereço de mídia para mapeamento atnetadress : endereço IP para mapeamento Redes de Computadores 62 31
Grupo IP Possui vários escalares e três tabelas ( de endereços IP, de roteamento IP, de tradução de endereços IP ) ip OBJECT IDENTIFIER : : = { mib 4 } Alguns escalares: ipforwarding : atua como um roteador ou como um host IpInReceives : total de datagramas recebidos ipinhdrerrors: datagramas descartados por erro de formato ipinaddrerrors:datagramas descartados por erro de entrega Redes de Computadores 63 --tabela de endereços ipaddrtable OBJECT IDENTIFIER : : = { ip 20 } ipaddrentry OBJECT IDENTIFIER : : = { ipaddrtable 1 } Alguns objetos da tabela de endereços IP: ipadentaddr : endereço IP desta entrada ipadentifindex : número da interface Redes de Computadores 64 32
--tabela de roteamento iproutingtable OBJECT IDENTIFIER : : = { ip 21 } iproutingentry OBJECT IDENTIFIER: := {iproutingtable 1 } Alguns objetos da tabela de roteamento IP: iproutedest : endereço IP de destino iprouteifindex : número da interface iproutemetric1: métrica de roteamento #1 iprouteproto : mecanismo usado para determinar a rota Redes de Computadores 65 --tabela de tradução de endereços ipnettomediatable OBJECT IDENTIFIER : : = { ip 22 } ipnettomediaentry OBJECT IDENTIFIER : : = 1 } { ipnettomediatable Alguns objetos da tabela de tradução de endereços IP: ipnettomediaifindex : número da interface ipnettomediaphysaddress : endereço da media para mapeament Redes de Computadores 66 33
Grupo ICMP Consiste em 26 contadores, que controlam o número de vezes que uma mensagem do tipo foi gerada, o número de vezes que a mensagem deste tipo foi recebida pela entidade IP local, o número de mensagens ICMP recebidas, enviadas, recebidas com erro, ou não enviadas devido a um erro. icmp OBJECT IDENTIFIER : : = { mib 5 } Redes de Computadores 67 Grupo TCP Contém vários escalares e uma tabela : tcp OBJECT IDENTIFIER : : = { mib 6 } Alguns escalares: tcprtoalgorithm : identifica o algoritmo de retransmissão tcprtomin : tempo mínimo de retransmissão em milisegundos tcprtomáx : tempo máximo de retransmissão em milisegundos tcpmaxconn : número máximo de conexões TCP permitidas simultaneamente Redes de Computadores 68 34
--tabela do grupo TCP tcpconntable OBJECT IDENTIFIER : : = { tcp 13 } tcpconnentry OBJECT IDENTIFIER : : ={ tcpconntable 1} Alguns objetos da tabela: tcpconnstate : estado da conexão tcpconnlocaladress : endereço IP local Redes de Computadores 69 Grupo UDP Contém quatro contadores e uma tabela: udp OBJECT IDENTIFIER : : = { mib 7 } Alguns escalares: udpnoports : datagramas com destino desconhecido udpinerros : datagramas descartados por erro de formato Redes de Computadores 70 35
--tabela do grupo UDP udptable OBJECT IDENTIFIER : : = { udp 5 } udpentry OBJECT IDENTIFIER : : = { udptable 1 } Os objetos da tabela: udplocaladdress : endereço IP local udplocalport : porta UDP local Redes de Computadores 71 Grupo EGP Deve ser implementado pelos nós que implementam o Exterior Gateway Protocol. Redes de Computadores 72 36
Grupo de transmissão É um espaço livre, usado par incluir novas definições. Redes de Computadores 73 Grupo SNMP Permite a manipulação de funções do SNMP. snmp OBJECT IDENTIFIER : : = { mib 11 } * Os objetos mais importantes já foram citados (Get, Set,...). Redes de Computadores 74 37