Faculdade de Informática - PUCRS Faculdade de Informática - PUCRS Redes de Computadores Fernando Luís Dotti SNMP Simple Network Management Protocol 1 Histórico z A única ferramenta efetivamente usada para gerenciamento foi o Internet Control Message Protocol (ICMP) Fernando Luís Dotti Faculdade de Informática - PUCRS z No final dos anos 70 não haviam protocolos de gerenciamento. Redes de Computadores 3 z Com algumas ferramentas suplementares o PING foi uma satisfatória solução para as exigências de gerenciamento de redes por muitos anos. Fernando Luís Dotti Faculdade de Informática - PUCRS z PING -Packet Internet Groper(examinador). Redes de Computadores 4 2 z Era necessário um protocolo com muito mais funcionalidade que PING Fernando Luís Dotti Faculdade de Informática - PUCRS z 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. Redes de Computadores 5 z Como cresceu a necessidade de mais ferramentas de gerenciamento de rede, três promissoras abordagens surgiram: Fernando Luís Dotti Faculdade de Informática - PUCRS z Simple Gateway Monitoring Protocol (SGMP) emitido em novembro de 1987. O SGMP era um meio simples de monitorar roteadores. Redes de Computadores 6 3 Fernando Luís Dotti Faculdade de Informática - PUCRS z 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). z Simple Network Management Protocol (SNMP): Uma versão melhorada do SGMP. z 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 z SNMP logo tornou-se o protocolo de gerenciamento padronizado mais usado. CMOT definhou. Fernando Luís Dotti Faculdade de Informática - PUCRS z 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. Redes de Computadores 8 4 z Então, foi elaborado o SNMP versão2, que supre algumas destas deficiências. Fernando Luís Dotti Faculdade de Informática - PUCRS z SNMP apresentava deficiências nas áreas de segurança e funcionalidade Faculdade de Informática - PUCRS Redes de Computadores 9 Arquitetura de gerenciamento de redes 5 Fernando Luís Dotti Faculdade de Informática - PUCRS z Elementos: • Estação de gerenciamento; • Agente de gerenciamento; • Base de informações de gerenciamento (MIB-Management Information Base); • Protocolo de gerenciamento de rede. 11 z Estação de gerenciamento: serve de interface para o gerente da rede no sistema de gerenciamento. Terá no mínimo: Fernando Luís Dotti Faculdade de Informática - PUCRS Redes de Computadores Redes de Computadores 12 6 Fernando Luís Dotti Faculdade de Informática - PUCRS z Um conjunto de aplicações para análise de dados; z Uma interface pela qual o gerente deve monitorar e controlar a rede; z A capacidade de traduzir as exigências do gerente no monitoramento e controle de elementos na rede. z Uma base de dados de informações extraídas das MIB’s de todas entidades gerenciadas na rede. Redes de Computadores 13 Fernando Luís Dotti Faculdade de Informática - PUCRS z 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 z Cada objeto é um dado variável que representa um aspecto do agente gerenciado. O conjunto destes objetos é a MIB. Fernando Luís Dotti Faculdade de Informática - PUCRS z MIB: O meio pelo qual recursos devem ser gerenciados na rede é representá-los como objetos. Redes de Computadores 15 z O protocolo usado para o gerenciamento de redes TCP/IP é o SNMP. Este protocolo inclui as seguintes capacidades: Fernando Luís Dotti Faculdade de Informática - PUCRS z Protocolo de gerenciamento de rede: A estação de gerenciamento e os agentes são vinculados por um protocolo de gerenciamento de rede. Redes de Computadores 16 8 Fernando Luís Dotti Faculdade de Informática - PUCRS z Get: permite que a estação pegue o valor de objetos do agente; z 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); z Set: permite que a estação estabeleça o valor para objetos do agente; z Trap: permite a um agente notificar estação de eventos significativos. Faculdade de Informática - PUCRS Redes de Computadores 17 Protocolo de Gerenciamento de rede 9 z 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). Fernando Luís Dotti Faculdade de Informática - PUCRS z SNMP foi designado para ser um protocolo do conjunto de protocolos TCP/IP. Ele opera sobre o User Datagram Protocol (UDP). 19 z 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. z O processo gerente realiza o gerenciamento da rede utilizando SNMP. Fernando Luís Dotti Faculdade de Informática - PUCRS Redes de Computadores Redes de Computadores 20 10 Fernando Luís Dotti Faculdade de Informática - PUCRS gerente SNMP UDP IP Protocolos Network-Dependent Mensagens SNMP Trap GetResponse SetRequest GetNextRequest getRequest Trap GetResponse SetRequest GetNextRequest getRequest estação de gerenciamento SNMP agente SNMP Aplicação de Recursos gerenciados gerenciamento objetos gerenciados aplicação de gerenciamento de objetos agente SNMP UDP IP Protocolos Network-Dependent rede ou internet Redes de Computadores 21 Mensagens Trap z 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. Fernando Luís Dotti Faculdade de Informática - PUCRS z técnica Trap-directed-polling Redes de Computadores 22 11 Proxies z 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. Fernando Luís Dotti Faculdade de Informática - PUCRS z O uso do SNMP exige que todos os agentes, assim como as estações de gerenciamento, suportem UDP e IP. Redes de Computadores 23 z Um agente SNMP atua como um proxy para um ou mais dispositivos. Fernando Luís Dotti Faculdade de Informática - PUCRS z Para acomodar estes dispositivos, foi desenvolvido o conceito de proxy. z O agente proxy converte cada mensagem para o protocolo de gerenciamento usado pelo dispositivo. Redes de Computadores 24 12 Faculdade de Informática - PUCRS Estrutura de informação de gerenciamento (SMI) Fernando Luís Dotti Faculdade de Informática - PUCRS z Define a estrutura geral na qual a MIB pode ser definida e construída. z 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 z A MIB pode armazenar z A SMI não suporta a criação de estruturas de dados complexas. Fernando Luís Dotti Faculdade de Informática - PUCRS y tipos simples de dados escalares e y vetores bi-dimensionais de escalares. Redes de Computadores 27 Fernando Luís Dotti Faculdade de Informática - PUCRS z A linguagem usada para definir a SMI é a ASN.1 (Abstract Syntax Notation One). Redes de Computadores 28 14 Módulos Fernando Luís Dotti Faculdade de Informática - PUCRS z 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 <<declarações>> END Fernando Luís Dotti Faculdade de Informática - PUCRS <<links>> Redes de Computadores 30 15 Fernando Luís Dotti Faculdade de Informática - PUCRS z <<módulo>> : é o nome do módulo; z <<links>> : importação de bibliotecas ou outros módulos; z <<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). 31 Redes de Computadores Tipos e Valores z Definição de tipos e valores : nometipo : : = nomevalor nometipo : : = VALUE Fernando Luís Dotti Faculdade de Informática - PUCRS TYPE Redes de Computadores 32 16 z INTEGER : inteiros z OCTET STRING : uma string de octetos , onde cada byte pode ter qualquer valor de 0 a 255. z OBJECT IDENTIFIER : um meio de identificar algum objeto. É uma seqüência de números inteiros não negativos, dispostos em uma árvore. z NULL : Atualmente este tipo não é usado. Fernando Luís Dotti Faculdade de Informática - PUCRS Tipos Simples Redes de Computadores 33 Tipos Construídos z SEQUENCE OF <<tipo>> : uma lista ordenada de zero ou mais elementos do mesmo tipo ASN.1 (vetores). Fernando Luís Dotti Faculdade de Informática - PUCRS z SEQUENCE : uma lista ordenada de zero ou mais elementos de um ou mais tipos ASN.1 (Chamado de estrutura, em outras linguagens). Redes de Computadores 34 17 Tipos Rotulados Fernando Luís Dotti Faculdade de Informática - PUCRS z 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 z A partir de um tipo já existente, cria-se um subtipo definindo quais elementos do tipo original serão permitidos no subtipo. Fernando Luís Dotti Faculdade de Informática - PUCRS Subtipos Redes de Computadores 36 18 z IpAdress : representa um endereço IP. z 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 ). z Counter : Um inteiro não negativo que é incrementado em 1 até alcançar um valor máximo. Fernando Luís Dotti Faculdade de Informática - PUCRS A SMI define seis novos tipos : 37 z Gauge : Um inteiro não negativo que pode ser incrementado ou decrementado em 1. z TimeTicks : Conta o tempo em centenas de segundos a partir de um determinado tempo. z Opaque : Codifica uma instância de qualquer tipo ASN.1. O resultado é uma string de octetos Fernando Luís Dotti Faculdade de Informática - PUCRS Redes de Computadores Redes de Computadores 38 19 A SMI define também dois tipos construídos: z list : SEQUENCE { <tipo1> ... <tipo n> Fernando Luís Dotti Faculdade de Informática - PUCRS <list> : : = Redes de Computadores 39 z table: z list é definido para ser usado como as colunas de table. Fernando Luís Dotti Faculdade de Informática - PUCRS <table> : : = SEQUENCE OF <list> Redes de Computadores 40 20 Objetos • Cada objeto é definido seguindo este modelo: Fernando Luís Dotti Faculdade de Informática - PUCRS 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 z SINTAX : define o tipo de dado do objeto. Pode ser um tipo básico ou um tipo definido por um usuário. z ACCESS : pode ser: - 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. Fernando Luís Dotti Faculdade de Informática - PUCRS - read-only : as instancias do objeto podem ser lidas, mas não alteradas; Redes de Computadores 42 21 z STATUS : - mandatory :os nós gerenciados devem implementar este objeto; - optional :os nós gerenciados podem implementar este objeto; z Os objetos em uma MIB são organizados em uma árvore. Fernando Luís Dotti Faculdade de Informática - PUCRS - obsolete : os nós gerenciados não podem implementar este objeto. Redes de Computadores 43 SNMP versão 2 Fernando Luís Dotti Faculdade de Informática - PUCRS z 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 z Inform: permite a um gerente notificar à outro gerente de eventos significativos. Fernando Luís Dotti Faculdade de Informática - PUCRS z 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); Redes de Computadores 45 MIB do SNMPv2 z Cada MIB é organizada em grupos( grupo é uma coleção de objetos). Fernando Luís Dotti Faculdade de Informática - PUCRS z Os objetos definidos como parte do SNMPv2 são organizados em três MIB’s. Redes de Computadores 46 23 A MIB SNMPv2 z Esta informação permite ao agente monitorar a quantidade de atividade de um agente e a quantidade de recursos de um agente. Fernando Luís Dotti Faculdade de Informática - PUCRS z Define objetos que descrevem o comportamento de uma entidade. Redes de Computadores 47 Contém 5 grupos: z Gurpo de Estatísticas SNMPv1 : Fernando Luís Dotti Faculdade de Informática - PUCRS z Gurpo de Estatísticas SNMPv2 : controla o número de mensagens enviadas, mensagens recebidas, mensagens com erros. z Gurpo Fonte de objetos : permite que uma entidade SNMPv2 atue como agente. Redes de Computadores 48 24 z 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 Fernando Luís Dotti Faculdade de Informática - PUCRS z Gurpo Trap : permite que entidades SNMPv2 que atuam como agentes gerem mensagens trap. Redes de Computadores 49 A MIB gerente-para-gerente z Esta MIB deve ser usada para permitir o uso de gerentes intermediários. Fernando Luís Dotti Faculdade de Informática - PUCRS z Permite a um gerente superior definir eventos que um gerente subordinado usará para mandar mensagens de alerta para o gerente superior. Redes de Computadores 50 25 Consiste em dois grupos: z Grupo de Evento : quando um alarme é disparado, ele aciona um evento, que é o InformRequest, que é enviado a um gerente superior. Fernando Luís Dotti Faculdade de Informática - PUCRS z Grupo de Alarme : define um conjunto de alarmes para os objetos. 51 Redes de Computadores Aplicações de gerenciamento Gerente Agente Gerente/Agente MIB MIB Fernando Luís Dotti Faculdade de Informática - PUCRS MIB Agente Agente Agente MIB MIB MIB Redes de Computadores 52 26 A MIB do grupo Fernando Luís Dotti Faculdade de Informática - PUCRS z A MIB do grupo está relacionada com a segurança. Redes de Computadores 53 z Os serviços de segurança no SNMPv2 são três: privacidade, autenticação e controle de acesso. Fernando Luís Dotti Faculdade de Informática - PUCRS Segurança SNMPv2 Redes de Computadores 54 27 Fernando Luís Dotti Faculdade de Informática - PUCRS z Privacidade: proteção de dados transmitidos. O mecanismo de proteção usado é a criptografia. z 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. z Controle de acesso: garantir que apenas usuários autorizados tenham acesso a uma MIB, e possam modificar os dados da MIB. 55 Faculdade de Informática - PUCRS Redes de Computadores Exemplo MIB-II 28 Faculdade de Informática - PUCRS Grupos que formam a MIB-II Grupo de sistema • Contém informações de configuração: system OBJECT IDENTIFIER : := { mib 1 } z sysDescr: descrição do dispositivo z sysName: nome do dispositivo z sysLocation: localização física do dispositivo z sysServices: serviços oferecidos pelo dispositivo Fernando Luís Dotti Faculdade de Informática - PUCRS z Alguns objetos : 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: z ifNumber : o número interfaces em um nó Fernando Luís Dotti Faculdade de Informática - PUCRS interfaces OBJECT IDENTIFIER : := { mib 2 } Redes de Computadores 59 --Tabela do grupo de interfaces ifTable OBJECT IDENTIFIER : := { interfaces 2 } z Alguns objetos da tabela : Fernando Luís Dotti Faculdade de Informática - PUCRS ifEntry OBJECT IDENTIFIER : := { ifTable 2 } z z z z z 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 at OBJECT IDENTIFIER : : = { mib 3 } atTable OBJECT IDENTIFIER : : = { at 1 } atEntry OBJECT IDENTIFIER : : = { atTable 1} Fernando Luís Dotti Faculdade de Informática - PUCRS z 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. Redes de Computadores 61 z atIfIndex : numero da interface z atPhysAdress : endereço de mídia para mapeamento z atNetAdress : endereço IP para mapeamento Fernando Luís Dotti Faculdade de Informática - PUCRS z Cada linha da tabela possui três colunas: Redes de Computadores 62 31 Grupo IP z 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 } z z z z 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 Fernando Luís Dotti Faculdade de Informática - PUCRS z Alguns escalares: Redes de Computadores 63 z Alguns objetos da tabela de endereços IP: z ipAdEntAddr : endereço IP desta entrada z ipAdEntIfIndex : número da interface Fernando Luís Dotti Faculdade de Informática - PUCRS --tabela de endereços ipAddrTable OBJECT IDENTIFIER : : = { ip 20 } ipAddrEntry OBJECT IDENTIFIER : : = { ipAddrTable 1 } Redes de Computadores 64 32 z Alguns objetos da tabela de roteamento IP: z z z z ipRouteDest : endereço IP de destino ipRouteIfIndex : número da interface ipRouteMetric1: métrica de roteamento #1 ipRouteProto : mecanismo usado para determinar a rota Fernando Luís Dotti Faculdade de Informática - PUCRS --tabela de roteamento ipRoutingTable OBJECT IDENTIFIER : : = { ip 21 } ipRoutingEntry OBJECT IDENTIFIER: := {ipRoutingTable 1 } Redes de Computadores 65 z Alguns objetos da tabela de tradução de endereços IP: z ipNetToMediaIfIndex : número da interface z ipNetToMediaPhysAddress : endereço da media para mapeament Fernando Luís Dotti Faculdade de Informática - PUCRS --tabela de tradução de endereços ipNetToMediaTable OBJECT IDENTIFIER : : = { ip 22 } ipNetToMediaEntry OBJECT IDENTIFIER : : = { ipNetToMediaTable 1} Redes de Computadores 66 33 • 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 } Fernando Luís Dotti Faculdade de Informática - PUCRS Grupo ICMP Redes de Computadores 67 Grupo TCP • Contém vários escalares e uma tabela : tcp OBJECT IDENTIFIER : : = { mib 6 } z tcpRtoAlgorithm : identifica o algoritmo de retransmissão z tcpRtoMin : tempo mínimo de retransmissão em milisegundos z tcpRtoMáx : tempo máximo de retransmissão em milisegundos z tcpMaxConn : número máximo de conexões TCP permitidas simultaneamente Fernando Luís Dotti Faculdade de Informática - PUCRS z Alguns escalares: Redes de Computadores 68 34 z Alguns objetos da tabela: z tcpConnState : estado da conexão Fernando Luís Dotti Faculdade de Informática - PUCRS --tabela do grupo TCP tcpConnTable OBJECT IDENTIFIER : : = { tcp 13 } tcpConnEntry OBJECT IDENTIFIER : : ={ tcpConnTable 1} z tcpConnLocalAdress : endereço IP local Redes de Computadores 69 Grupo UDP • Contém quatro contadores e uma tabela: z Alguns escalares: z udpNoPorts : datagramas com destino desconhecido z udpInErros : datagramas descartados por erro de formato Fernando Luís Dotti Faculdade de Informática - PUCRS udp OBJECT IDENTIFIER : : = { mib 7 } Redes de Computadores 70 35 z Os objetos da tabela: z udpLocalAddress : endereço IP local z udpLocalPort : porta UDP local Fernando Luís Dotti Faculdade de Informática - PUCRS --tabela do grupo UDP udpTable OBJECT IDENTIFIER : : = { udp 5 } udpEntry OBJECT IDENTIFIER : : = { udpTable 1 } Redes de Computadores 71 z Deve ser implementado pelos nós que implementam o Exterior Gateway Protocol. Fernando Luís Dotti Faculdade de Informática - PUCRS Grupo EGP Redes de Computadores 72 36 Grupo de transmissão Fernando Luís Dotti Faculdade de Informática - PUCRS z É um espaço livre, usado par incluir novas definições. Redes de Computadores 73 Grupo SNMP z Permite a manipulação de funções do SNMP. * Os objetos mais importantes já foram citados (Get, Set, ...). Fernando Luís Dotti Faculdade de Informática - PUCRS snmp OBJECT IDENTIFIER : : = { mib 11 } Redes de Computadores 74 37