Gerência de Redes




          SNMP




     Frederico Madeira
   LPIC­1, LPIC­2, CCNA
   fred@madeira.eng.br
   www.madeira.eng.br
Protocolos para
    Gerenciamento de Redes

➔
    Internet
      ➔
        SNMPv1, SNMPv2, SNMPv3

ISO/ITU-T X.700 Series:
➔

  ➔
   CMIP/S (Common Management Information Protocol /
  Service)

ITU-T M.3000 Series:
➔

  ➔
   TMN (Telecommunication Management Networks)
Conceitos do SNMP
➔
    Simple Network Management Protocol (Protocolo
    Simples de Gerenciamento de redes), definido na
    RFC1157
➔
    Permite coletar informações sobre o estado dos
    equipamentos da rede (ou softwares de rede),
    possibilitando ao administrador da rede monitorar
    o funcionamento do sistema.
➔
    Protocolo padrão para gerenciamento de redes
    TCP/IP (Internet)

➔
    A IAB (Internet Architecture Board) recomenda
    que todas as implementações TCP/IP sejam
    gerenciáveis

➔
    Todas os dispositivos de rede devem suportar
    SNMP
Conceitos do SNMP
Arquitetura do SNMP
➔
    Uma ou mais Estações de Gerência (Gerente),
    rodando aplicações de gerência, monitoração e controle.
➔
    Diversos Elementos de rede (Agente) como
    roteadores, switch, ou outros hosts de rede.
     ➔
        MIB – Management Information Base
         ➔
           Coleção de objetos gerenciados
         ➔
           Essencialmente, cada objeto gerenciado é uma
           variável
         ➔
           Operações de Monitoramento: leitura dos valores
           dos objetos gerenciados
         • Operações de Controle: alteração dos valores
           dos objetos gerenciados
➔
    Protocolo de gerenciamento de rede, através deste,
    são trocadas mensagens entre os elementos de rede e
    a estação de gerência
Serviços SNMP

                      Get Request
   Get    Gerente    Get Response     Agente


                    GetNext Request
GetNext   Gerente    Get Response     Agente


                     Set Request
    Set   Gerente    Get Response     Agente


                     Trap Request
          Gerente                     Agente
   Trap
Serviços SNMP
➔
    Get Request:
     ➔
       Recupera os valores dos objetos da MIB em
       um agente de um NE

➔
    Get-Next Request:
     ➔
       Recupera os valores do próximo objeto da MIB
       em um agente de um NE

➔
    Set Request:
     ➔
       Atualiza os valores dos objetos da MIB em um
       agente de um NE

➔
    Trap Request:
     ➔
       Notifica   o    Gerente   de   um    evento
       extraordinário no NE
Arquitetura
Portas padrão no SNMP
           Estação de
          Gerenciamento                           Network Elements (NEs)


 Gerente                                                 Agente
      SNMP                                               SNMP
162              Any                               161              Any
       UDP                                                UDP

         IP                                                IP

      Ethernet                                           Ethernet
                          Requisições/Respostas



                              Traps SNMP

          O SNMP usa o protocolo UDP para transporte de dados
                      entre os gerentes e agentes
SNMP
➔
  SNMP utiliza o serviço de transporte sem conexão
(UDP)
➔
 Motivação:

    ➔
        Robustez
        ➔
          em casos de haver deterioração da rede
          (quando       torna-se      mais      importante
          gerenciamento), perda de pacotes pode
          inviabilizar um serviço de transporte confiável.

    ➔
        há vantagens em operar um protocolo sem
        conexão
        ➔
          havendo gerenciamento de um número
          elevado    de    sistemas,   haveria   muitas
          “conexões” para manter, caso se utilizasse um
          protocolo orientado à conexão.
SNMP Community
➔
    O SNMP provê apenas uma primitiva com
    capacidade limitada de segurança, o conceito
    de comunidade

➔
    Uma comunidade SNMP é uma relação de
    autenticação e controle de acesso entre um
    agente e um conjunto de estações gerentes.

➔
    Para o serviço de autenticação, o Nome de
    Comunidade funciona como um mecanismo
    rudimentar, onde cada mensagem trocada entre
    agentes e gerentes é autenticada pela inclusão
    do Nome de Comunidade correto
➔
MIB
➔
    Management Information Base:
    ➔
      Uma coleção de objetos definidos
    ➔
      Contem          variáveis        organizadas
      hierarquicamente que correspondem aos
      objetos gerenciados
➔
    Structure    of   Management      Information
    (SMI):
     ➔
       Conjunto de regras que gerenciam como os
       objetos devem ser definidos
     ➔
       Objetos são definidos usando ASN.1 (Abstract
       Syntax Notation)
➔
    Object Identifier (OID):
     ➔
       Identificador global de um tipo de objeto
     ➔
       Consiste em uma sequencia de digitos, que
       especificam a posição de um objeto na árvore
       global do identificador de objeto
MIB
MIB
Os arquivos MIB definem uma hierarquia em forma
de árvore e, nela, os contadores são identificados
pela sua posição e a nomenclatura para
endereçamento parte da raiz, separando cada nível
por pontos. São exemplos de endereços MIB:


.iso.org.dod.internet.mgmt.mib.ip.ipDefaultTTL
.iso.org.dod.internet.mgmt.mib.ip.ipInReceives


Esses endereços podem ser representados na forma
numérica:
1.3.6.1.2.1.4.2
1.3.6.1.3.1.4.3
RFC 1213 : MIB - II
➔
    RFC 1156 especifica o MIB-I SNMP genérica aceita
    como padrão.

➔
    RFC 1213 especifica o MIB–II SNMP, adicionado
    uma série de objetos para complementar MIB-I.
    Atualmente MIB – II é a MIB SNMP genérica
    padrão.

➔
    A palavra genérica é usada aqui para diferenciar
    das MIBs privativas de fabricantes.

➔
    A RFC 1213 define 10 grupos básicos de objetos
    MIB – II SNMP genéricos
RFC 1213 : MIB - II
  ➔
                            system (1) : implementação obrigatória em todos
                            os sistemas, contém variáveis que descrevem
                            informações administrativas, tais como sysDescr
                            (1.3.6.1.2.1.1.1), sysUpTime (1.3.6.1.2.1.1.3),
                            sysContact      (1.3.6.1.2.1.1.4)  e   sysName
                            (1.3.6.1.2.1.1.5).
                                 system (mib-2) (1)
                                                          sysDescr (1)
Variáveis do Grupo System




                                                         sysObjectId (2)

                                                         sysUpTime (3)

                                                          sysContact (4)

                                                         sysName (5)

                                                         sysLocation (6)

                                                         sysServices (7)
RFC 1213 : MIB - II
➔
     interfaces (2) : de implementação obrigatória em
     todos os sistemas, mantém uma lista das
     interfaces do sistema que suportam IP, e, para
     cada interface há uma tabela de estatísticas de
     tráfego. Exemplos : ifSpeed, ifMtu, iflnOctets,
     iflnErros, ifOutDiscards, etc.


    interfaces (2)                      ifIndex (1)
                                        ifDescr (2)
        ifNumber (1)                    ifType (3)

                                        ifMtu (4)
          ifTable (2)
                                        ifSpeed (5)

                                        ifPhysAddress (6)
                ifEntry (ifTable 1)
                                           ...
Exemplo: Ramificação da MIB
para Interfaces



• iso.org.dod.internet.mgmt.mib-2.interfaces ...
• (ou .1.3.6.1.2.1.2.)
   –   ... ifNumber.0 = 24
   –   ... ifTable.ifEntry.ifDescr.1 = “utp ethernet”
   –   ... ifTable.ifEntry.ifDescr.2 = “utp ethernet”
   –   ... ...
   –   ... ifTable.ifEntry.ifDescr.24 = “utp fast ethernet”
   –   ... ifTable.ifEntry.ifPhysAddress.24 = 0:d0:9:a5:7f:cb
   –   ... ifTable.ifEntry.ifType.24 = Fast Ethernet (100BaseT) (6
   –   ... ifTable.ifEntry.ifInOctets.24 = 168176112
   –   ... ifTable.ifEntry.ifOutOctets.24 = 145859106
   –   ... ifTable.ifEntry.ifOutErrors.24 = 15
RFC 1213 : MIB - II
➔
    address translation (3):
    ➔
      Implementação obrigatória mas sem utilidade prática na
      MIB-II
    ➔
      Originalmente definido para mapeamento de endereço IP e
      o endereço físico na MIB I.
    ➔
      Dada a multiplicação de protocolos, foi definido que cada
      protocolo manterá sua própria tabela de mapeamento de
      endereços
    ➔
      Definido na MIB-II por questões de compatibilidade com a
      MIB-I.
➔
    ip (4):
    ➔
       Implementação obrigatória em todos os sistemas,
    ➔
       descreve a função do sistema (ipForwarding), mantém uma
       série de estatísticas sobre IP (iplnReceives, iplnDiscards,
       ipForwDatagrams, ipReasmOK, ipFragCreates, etc.),
    ➔
       contém três tabelas, uma de endereços IP das interfaces do
       sistema, um de roteamento (ipRouteDest, ipRoutelfndex,
       ipRouteMetric1, ipRouteNextHop, ipRouteProto, etc), e uma
       de mapeamento entre endereços IP e físicos
RFC 1213 : MIB - II
➔
    icmp (5):
    ➔
      Implementação obrigatória somente em sistemas
      que suportam ICMP,
    ➔
      Mantém uma série de estatísticas sobre ICMP, tais
      como icmplnErros, icmplnDestUnreachs,
      icmpOutredirects, etc.

➔
    tcp (6):
     ➔
       Implementação obrigatória somente em sistemas
       que suportam TCP
     ➔
       Mantém a configuração TCP (tcpRtoAlgorithm,
       tcpRtoMax, tcpAttemptFails, tcplnSegs,
       tcpRetransSegs, etc.), e uma tabela de conexões
       TCP ativas (tcpConnState, tcpConnLocalAddress,
       tcpConnRemPort, etc.)
RFC 1213 : MIB - II
upd (7):
➔


 ➔
   Implementação obrigatória somente em sistemas
   que suportam UDP
 ➔
   Mantém     uma    série   de    estáticas  UDP
   (udplnDatagramas, udplnErros, udpOutDatagrams,
   etc) e uma tabela de portas UDP utilizadas por
   aplicações locais do sistema )udpLocalAddress,
   udpLocalPort).

➔
    egp (8):
    ➔
      Implementação obrigatória somente em sistemas
      que suportam EGP,
    ➔
      mantém uma série de estatísticas EGP (egplnMsgs,
      egpOutErros, etc) e uma tabela de nós vizinhos e as
      estatísticas individuais de troca de tráfego EGP
      (egpNeighState,      egpNeigAddr,    egpNeilnErrs,
      egpNeiOutMsgs, egpNeighStateUps, etc.).
RFC 1213 : MIB - II
➔
    Transmission (9):
    ➔
      definido para agrupar objetos referentes a
      gerenciamento de meios de transmissão, por
      exemplo, RS232, X25, Frame-Relay, etc.

➔
    Snmp (10):
    ➔
      Implementação obrigatoria para todos os sistemas
      que suportam SNMP
    ➔
      Mantém uma série de estáticas sobre o SNMP, tais
      como snmplnPkts, snmplnBadCommunityNames,
      snmpOutBadValues, etc.
    ➔
      Alguns dos objetos podem ter valor nulo,
      dependendo do papel desempenhado pelo sistema
      (agente ou estação de gerenciamento).
Vendor MIB
➔
    MIBs privadas
     ➔
       RFC 1155 define a localização da MIBs criadas por
       fabricantes.

    ➔
        Denominadas de vendor MIBs ou MIB privadas.

    ➔
        Cada fabricante solicita e recebe uma designação
        abaixo da sub-árvore private(4).enterprise(1), a
        partir da qual define suas MIBs.

    ➔
        estas extensões podem ser manuseadas usando
        SNMP, desde que a estação de gerenciamento
        possua sua especificação, de preferência em
        ASN.1.
NET-SNMP
➔
    É uma plataforma portável para SNMP v1 e v2,
    que fornece uma coleção de ferramentas de
    gerenciamento de rede.



      Operações de gerenciamento   Aplicações de gerenciamento




             Snmpget                          Walk
           Snmpgetnext                       Netstat
             Snmpset                         Status
            Snmptrapd                         Test
NET-SNMP - Apps
➔
    SnmpNetStat é baseado na operação netstat,
    do UNIX, e permite a obtenção de informações
    relacionadas a rede, como por exemplo sockets
    ativos e estado das interfaces.

➔
    SnmpWalk é uma aplicação SNMP que usa
    requisições GetNext para recuperar toda uma
    árvore de informações sobre uma entidade de
    rede.

➔
    Snmpget é uma aplicação SNMP que usa
    requisições Get para obter uma dada variável em
    uma entidade de rede

Introdução ao SNMP

  • 1.
    Gerência de Redes SNMP Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br
  • 2.
    Protocolos para Gerenciamento de Redes ➔ Internet ➔ SNMPv1, SNMPv2, SNMPv3 ISO/ITU-T X.700 Series: ➔ ➔ CMIP/S (Common Management Information Protocol / Service) ITU-T M.3000 Series: ➔ ➔ TMN (Telecommunication Management Networks)
  • 3.
    Conceitos do SNMP ➔ Simple Network Management Protocol (Protocolo Simples de Gerenciamento de redes), definido na RFC1157 ➔ Permite coletar informações sobre o estado dos equipamentos da rede (ou softwares de rede), possibilitando ao administrador da rede monitorar o funcionamento do sistema. ➔ Protocolo padrão para gerenciamento de redes TCP/IP (Internet) ➔ A IAB (Internet Architecture Board) recomenda que todas as implementações TCP/IP sejam gerenciáveis ➔ Todas os dispositivos de rede devem suportar SNMP
  • 4.
    Conceitos do SNMP Arquiteturado SNMP ➔ Uma ou mais Estações de Gerência (Gerente), rodando aplicações de gerência, monitoração e controle. ➔ Diversos Elementos de rede (Agente) como roteadores, switch, ou outros hosts de rede. ➔ MIB – Management Information Base ➔ Coleção de objetos gerenciados ➔ Essencialmente, cada objeto gerenciado é uma variável ➔ Operações de Monitoramento: leitura dos valores dos objetos gerenciados • Operações de Controle: alteração dos valores dos objetos gerenciados ➔ Protocolo de gerenciamento de rede, através deste, são trocadas mensagens entre os elementos de rede e a estação de gerência
  • 5.
    Serviços SNMP Get Request Get Gerente Get Response Agente GetNext Request GetNext Gerente Get Response Agente Set Request Set Gerente Get Response Agente Trap Request Gerente Agente Trap
  • 6.
    Serviços SNMP ➔ Get Request: ➔ Recupera os valores dos objetos da MIB em um agente de um NE ➔ Get-Next Request: ➔ Recupera os valores do próximo objeto da MIB em um agente de um NE ➔ Set Request: ➔ Atualiza os valores dos objetos da MIB em um agente de um NE ➔ Trap Request: ➔ Notifica o Gerente de um evento extraordinário no NE
  • 7.
  • 8.
    Portas padrão noSNMP Estação de Gerenciamento Network Elements (NEs) Gerente Agente SNMP SNMP 162 Any 161 Any UDP UDP IP IP Ethernet Ethernet Requisições/Respostas Traps SNMP O SNMP usa o protocolo UDP para transporte de dados entre os gerentes e agentes
  • 9.
    SNMP ➔ SNMPutiliza o serviço de transporte sem conexão (UDP) ➔ Motivação: ➔ Robustez ➔ em casos de haver deterioração da rede (quando torna-se mais importante gerenciamento), perda de pacotes pode inviabilizar um serviço de transporte confiável. ➔ há vantagens em operar um protocolo sem conexão ➔ havendo gerenciamento de um número elevado de sistemas, haveria muitas “conexões” para manter, caso se utilizasse um protocolo orientado à conexão.
  • 10.
    SNMP Community ➔ O SNMP provê apenas uma primitiva com capacidade limitada de segurança, o conceito de comunidade ➔ Uma comunidade SNMP é uma relação de autenticação e controle de acesso entre um agente e um conjunto de estações gerentes. ➔ Para o serviço de autenticação, o Nome de Comunidade funciona como um mecanismo rudimentar, onde cada mensagem trocada entre agentes e gerentes é autenticada pela inclusão do Nome de Comunidade correto ➔
  • 11.
    MIB ➔ Management Information Base: ➔ Uma coleção de objetos definidos ➔ Contem variáveis organizadas hierarquicamente que correspondem aos objetos gerenciados ➔ Structure of Management Information (SMI): ➔ Conjunto de regras que gerenciam como os objetos devem ser definidos ➔ Objetos são definidos usando ASN.1 (Abstract Syntax Notation) ➔ Object Identifier (OID): ➔ Identificador global de um tipo de objeto ➔ Consiste em uma sequencia de digitos, que especificam a posição de um objeto na árvore global do identificador de objeto
  • 12.
  • 13.
    MIB Os arquivos MIBdefinem uma hierarquia em forma de árvore e, nela, os contadores são identificados pela sua posição e a nomenclatura para endereçamento parte da raiz, separando cada nível por pontos. São exemplos de endereços MIB: .iso.org.dod.internet.mgmt.mib.ip.ipDefaultTTL .iso.org.dod.internet.mgmt.mib.ip.ipInReceives Esses endereços podem ser representados na forma numérica: 1.3.6.1.2.1.4.2 1.3.6.1.3.1.4.3
  • 14.
    RFC 1213 :MIB - II ➔ RFC 1156 especifica o MIB-I SNMP genérica aceita como padrão. ➔ RFC 1213 especifica o MIB–II SNMP, adicionado uma série de objetos para complementar MIB-I. Atualmente MIB – II é a MIB SNMP genérica padrão. ➔ A palavra genérica é usada aqui para diferenciar das MIBs privativas de fabricantes. ➔ A RFC 1213 define 10 grupos básicos de objetos MIB – II SNMP genéricos
  • 15.
    RFC 1213 :MIB - II ➔ system (1) : implementação obrigatória em todos os sistemas, contém variáveis que descrevem informações administrativas, tais como sysDescr (1.3.6.1.2.1.1.1), sysUpTime (1.3.6.1.2.1.1.3), sysContact (1.3.6.1.2.1.1.4) e sysName (1.3.6.1.2.1.1.5). system (mib-2) (1) sysDescr (1) Variáveis do Grupo System sysObjectId (2) sysUpTime (3) sysContact (4) sysName (5) sysLocation (6) sysServices (7)
  • 16.
    RFC 1213 :MIB - II ➔ interfaces (2) : de implementação obrigatória em todos os sistemas, mantém uma lista das interfaces do sistema que suportam IP, e, para cada interface há uma tabela de estatísticas de tráfego. Exemplos : ifSpeed, ifMtu, iflnOctets, iflnErros, ifOutDiscards, etc. interfaces (2) ifIndex (1) ifDescr (2) ifNumber (1) ifType (3) ifMtu (4) ifTable (2) ifSpeed (5) ifPhysAddress (6) ifEntry (ifTable 1) ...
  • 17.
    Exemplo: Ramificação daMIB para Interfaces • iso.org.dod.internet.mgmt.mib-2.interfaces ... • (ou .1.3.6.1.2.1.2.) – ... ifNumber.0 = 24 – ... ifTable.ifEntry.ifDescr.1 = “utp ethernet” – ... ifTable.ifEntry.ifDescr.2 = “utp ethernet” – ... ... – ... ifTable.ifEntry.ifDescr.24 = “utp fast ethernet” – ... ifTable.ifEntry.ifPhysAddress.24 = 0:d0:9:a5:7f:cb – ... ifTable.ifEntry.ifType.24 = Fast Ethernet (100BaseT) (6 – ... ifTable.ifEntry.ifInOctets.24 = 168176112 – ... ifTable.ifEntry.ifOutOctets.24 = 145859106 – ... ifTable.ifEntry.ifOutErrors.24 = 15
  • 18.
    RFC 1213 :MIB - II ➔ address translation (3): ➔ Implementação obrigatória mas sem utilidade prática na MIB-II ➔ Originalmente definido para mapeamento de endereço IP e o endereço físico na MIB I. ➔ Dada a multiplicação de protocolos, foi definido que cada protocolo manterá sua própria tabela de mapeamento de endereços ➔ Definido na MIB-II por questões de compatibilidade com a MIB-I. ➔ ip (4): ➔ Implementação obrigatória em todos os sistemas, ➔ descreve a função do sistema (ipForwarding), mantém uma série de estatísticas sobre IP (iplnReceives, iplnDiscards, ipForwDatagrams, ipReasmOK, ipFragCreates, etc.), ➔ contém três tabelas, uma de endereços IP das interfaces do sistema, um de roteamento (ipRouteDest, ipRoutelfndex, ipRouteMetric1, ipRouteNextHop, ipRouteProto, etc), e uma de mapeamento entre endereços IP e físicos
  • 19.
    RFC 1213 :MIB - II ➔ icmp (5): ➔ Implementação obrigatória somente em sistemas que suportam ICMP, ➔ Mantém uma série de estatísticas sobre ICMP, tais como icmplnErros, icmplnDestUnreachs, icmpOutredirects, etc. ➔ tcp (6): ➔ Implementação obrigatória somente em sistemas que suportam TCP ➔ Mantém a configuração TCP (tcpRtoAlgorithm, tcpRtoMax, tcpAttemptFails, tcplnSegs, tcpRetransSegs, etc.), e uma tabela de conexões TCP ativas (tcpConnState, tcpConnLocalAddress, tcpConnRemPort, etc.)
  • 20.
    RFC 1213 :MIB - II upd (7): ➔ ➔ Implementação obrigatória somente em sistemas que suportam UDP ➔ Mantém uma série de estáticas UDP (udplnDatagramas, udplnErros, udpOutDatagrams, etc) e uma tabela de portas UDP utilizadas por aplicações locais do sistema )udpLocalAddress, udpLocalPort). ➔ egp (8): ➔ Implementação obrigatória somente em sistemas que suportam EGP, ➔ mantém uma série de estatísticas EGP (egplnMsgs, egpOutErros, etc) e uma tabela de nós vizinhos e as estatísticas individuais de troca de tráfego EGP (egpNeighState, egpNeigAddr, egpNeilnErrs, egpNeiOutMsgs, egpNeighStateUps, etc.).
  • 21.
    RFC 1213 :MIB - II ➔ Transmission (9): ➔ definido para agrupar objetos referentes a gerenciamento de meios de transmissão, por exemplo, RS232, X25, Frame-Relay, etc. ➔ Snmp (10): ➔ Implementação obrigatoria para todos os sistemas que suportam SNMP ➔ Mantém uma série de estáticas sobre o SNMP, tais como snmplnPkts, snmplnBadCommunityNames, snmpOutBadValues, etc. ➔ Alguns dos objetos podem ter valor nulo, dependendo do papel desempenhado pelo sistema (agente ou estação de gerenciamento).
  • 22.
    Vendor MIB ➔ MIBs privadas ➔ RFC 1155 define a localização da MIBs criadas por fabricantes. ➔ Denominadas de vendor MIBs ou MIB privadas. ➔ Cada fabricante solicita e recebe uma designação abaixo da sub-árvore private(4).enterprise(1), a partir da qual define suas MIBs. ➔ estas extensões podem ser manuseadas usando SNMP, desde que a estação de gerenciamento possua sua especificação, de preferência em ASN.1.
  • 23.
    NET-SNMP ➔ É uma plataforma portável para SNMP v1 e v2, que fornece uma coleção de ferramentas de gerenciamento de rede. Operações de gerenciamento Aplicações de gerenciamento Snmpget Walk Snmpgetnext Netstat Snmpset Status Snmptrapd Test
  • 24.
    NET-SNMP - Apps ➔ SnmpNetStat é baseado na operação netstat, do UNIX, e permite a obtenção de informações relacionadas a rede, como por exemplo sockets ativos e estado das interfaces. ➔ SnmpWalk é uma aplicação SNMP que usa requisições GetNext para recuperar toda uma árvore de informações sobre uma entidade de rede. ➔ Snmpget é uma aplicação SNMP que usa requisições Get para obter uma dada variável em uma entidade de rede