IP : Simple Network Management Protocol (SNMP)

MIB Compilers and Loading MIBs

15 Outubro 2016 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback


Índice


Introdução

A maioria dos sistemas de gerenciamento de rede (NMS) fornecem uma maneira do usuário carregar MIBs. Carregar um MIB é uma maneira de um NMS aprender sobre novos objetos MIB, como seus nomes, identificadores de objeto (OID) e qual tipo de dados (por exemplo: Contador).

O MIB pôde ser analisado gramaticalmente quando está carregado ou pôde acontecer mais tarde, por exemplo, quando um aplicativo NMS é executado. O software que executa a análise é um compilador MIB.

Todo o MIB sintaticamente correto deve com sucesso ser analisado gramaticalmente pelo compilador de MIB de qualquer vendedor. Infelizmente, os compiladores de MIB diferentes podem exibir caprichos diferentes.

Cisco faz esforços contínuos para assegurar-se de que o MIBs publicado aos clientes esteja sintaticamente correto. Cisco igualmente evita as construções MIB que provaram ser problemáticas nos produtos de NMS popular. Apesar desses esforços, não é possível satisfazer as peculiaridades de todos os compiladores MIB no campo.

Este documento endereça alguns dos problemas comuns e sugere ações alternativas. Se você encontra qualquens um problemas com o compilador de MIB do seu vendedor (à excecpção do RFC 14xx contra a edição do RFC 19xx), é devido a uma deficiência nesse compilador de MIB. Você pode desejar incitar seus vendedor ou vendedores fixar seus compiladores.

Pré-requisitos

Requisitos

Os leitores deste documento devem ser familiares com o MIBs.

Componentes Utilizados

Este documento não se restringe a versões de software e hardware específicas.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.

Convenções

Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.

Problemas comuns de carregamento de MIB

Ordem de carga

O ordem de carga é o mais importante e problema comum quando você está carregando o MIBs. Muito MIBs usa as definições que são definidas no outro MIBs. Essas definições estão listadas na cláusula IMPORTS próxima à parte superior do MIB.

Por exemplo, se o MIB mumble importar uma definição do MIB bumble, alguns compiladores MIB requerem que o MIB bumble seja carregado antes de carregar o MIB mumble. Se você obtém a ordem da carga errada, o compilador reivindicará que o MIBs importado é indeterminado.

Esta é uma lista de MIBs de que importação de muito a outra MIBs, e da ordem em que você deve a carregar. Isto toma provavelmente de 95 por cento de edições da ordem da carga (mais do outro MIBs pode ser carregado em toda a ordem):

  • SNMPv2-SMI.my

  • SNMPv2-TC.my

  • SNMPv2-MIB.my

  • RFC1213-MIB.my

  • IF-MIB.my

  • CISCO-SMI.my

  • CISCO-PRODUCTS-MIB.my

  • CISCO-TC.my

Nota: Se você está carregando as versões v1 deste MIBs, o nome de arquivo de MIB olhará realmente como IF-MIB-V1SMI.my (“-V1SMI” é adicionado ao nome do MIBs que foi convertido de v2 a v1). A exceção a esta é o RFC1213-MIB.my MIB, que existe somente como uma versão v1 (isto é, não há nenhum RFC1213-MIB-V1SMI.my).

Se você tenta carregar um outro MIB, e se o compilador se queixa sobre os artigos indeterminados, a seguir identifique do que MIBs este MIB está importando e verifique que você carregou todo o MIBs restante primeiramente.

Nota: Para cada MIB, você pode ver a lista exata do MIBs que precisa de ser carregado antes dela — com a ordem exata da compilação — no SNMP Object Navigator > no MIBs da vista & da transferência; selecione dependências da vista MIB e transfira o MIB.

Incompatibilidades em definições de tipos de dados

Embora as definições de tipo de dado do Cisco MIB não sejam incompatíveis, pode ser que você entenda dessa forma no caso de alguns MIBs de RFC padrão. Por exemplo:

  • O MIB mumble define: SomeDatatype:: = INTEGER(0..100)

  • O MIB tropeça define: SomeDatatype:: = INTEGER(1..50)

Este exemplo é considerado um erro trivial e o MIB é carregado com êxito com uma mensagem de advertência.

O exemplo a seguir é considerado como sendo um erro não-trivial (mesmo se as duas definições forem equivalentes), e a MIB não é analisada com êxito.

  • O MIB mumble define: SomeDatatype:: = DisplayString

  • O MIB tropeça define: SomeDatatype:: = SÉRIE DE OCTETO (SIZE(0..255))

Se seu compilador de MIB trata estes como erros, ou se você deseja obter livrado dos mensagens de advertência, a seguir edite um do MIBs que define este mesmo datatype de modo que as definições combinem.

Redefinições do identificador de objeto

Você pode encontrar redefinições OID se você carrega este MIBs (embora pode haver outros exemplos onde este erro ocorre):

Por exemplo:

  • OLD-CISCO-CPU-MIB.my define: IDENTIFICADOR do lcpuOBJECT:: = {local 1}

  • OLD-CISCO-ENV-MIB.my define: IDENTIFICADOR do lenvOBJECT:: = {local 1}

Quando você carrega este dois MIBs, o compilador de MIB pode queixar-se sobre o IDENTIFICADOR DE OBJETO do lcpu que está sendo redefinido com um lenv do novo nome. Os OLD-CISCO-MEMORY-MIB.my e os OLD-CISCO-SYSTEM-MIB.my dão similarmente novos nomes ao {local 1}.

Isso é tratado como um erro trivial e o MIB é carregado com êxito com uma mensagem de erro.

Se o MIB não carrega com sucesso, ou se você deseja obter livrado do mensagem de advertência, a seguir edite um do MIBs de modo que todo o MIBs use o mesmo nome.

Definições dos tipos de dados embutidos

Muitos compiladores de MIB têm o conhecimento incorporado de alguns datatypes, tais como o DisplayString. Alguns destes compiladores queixam-se se veem uma definição para estes datatypes em um MIB. Por exemplo, DisplayString é definido em SNMPv2-TC.

A solução é remover ou assinalar como comentário a definição ofensiva no arquivo MIB.

Tamanhos alternativos

Este é sintaticamente um exemplo válido, que indiquem que um valor do tipo MyDatatype será 0, 5, ou 20 octetos de comprimento:

MyDatatype ::= OCTET STRING (SIZE(0 | 5 | 20))

Alguns compiladores de MIB não aceitam esta sintaxe. Geralmente, uma solução suficiente é escolher um dos tamanhos e remover o outro. Você deve manter o tamanho o maior. Por exemplo, o exemplo anterior seria mudado a este:

MyDatatype ::= OCTET STRING (SIZE(20))

Identificadores de objeto ímpar

Alguns OID são considerados impares porque não referem um nó no S I (como a maioria de identificadores de objeto). Contudo, são sintaticamente válidos. Um exemplo comum é o identificador de objeto nulo, por exemplo, {0 0}. Alguns compiladores de MIB não se importam com os identificadores de objeto que não correspondem a um nó no S I. Estes são os exemplos da sintaxe de MIB que poderiam causar problemas para estes compiladores:

zeroDotZero OBJECT IDENTIFIER ::= { 0 0 }
myMIBObject OBJECT-TYPE
DEFVAL { {0 0} }

A ação alternativa é remover ou comentar para fora aqueles tipos de referências no arquivo MIB.

Definições de armadilhas

No MIBs SNMPv1, as armadilhas são definidas com o macro do TIPO DE ARMADILHA. No MIBs SNMPv2, as armadilhas são definidas usando o macro NOTIFICATION-TYPE.

Alguns compiladores de MIB não gostam destas definições nos arquivos MIB que estão analisando gramaticalmente (não apoiam estes macro).

Se este é o caso, você pode remover as definições de armadilha ou comentar para fora as definições (por exemplo, põe o delimitador de comentário MIB -- no início das linhas).

Compiladores baseado em RFC 14xx contra compiladores baseado em RFC 19xx

O RFCs 1442 define até 1452 o SNMPv2 partido-baseado. Estes RFC obsoleted pelo RFCs 1902 mais novo do padrão de esboço com 1908.

A propósito da sintaxe de MIB, há muito poucas diferenças entre estas duas versões de SNMPv2; há algum, contudo. O MIBs de Cisco é baseado atualmente em regras do RFC 19xx.

Nota: Há alguns anos atrás, quando o MIBs de Cisco era RFC 14xx-based, alguns compiladores baseado em RFC 19xx queixar-se-iam sobre Unsigned32:: = linha TEXTUAL-CONVENTION no MIBs CISCO-TC.my e PNNI-MIB.my. Isto é porque Unsigned32 é um datatype predefinido no RFC 19xx. Por este motivo, Cisco usou-se para ter as versões alternativa deste MIBs (CISCO-TC-NO-U32.my e PNNI-MIB-NO-U32.my) sem a definição para Unsigned32, a carregar nos compiladores que já sabem sobre este tipo de dados. Isto é já não aplicável.

MIBS de carregamento e de compilação no NMS da terceira

O melhor e a maioria de maneira eficiente carregar o MIBs, as armadilhas, e os ícones de Cisco no NMS da terceira são usar o utilitário de integração dos CiscoWorks (utilitário de integração), que é disponível como parte do CiscoWorks Common Services (ou autônomo de http://www.cisco.com/cgi-bin/tablebuild.pl/cw2000-utility), com o adaptador correspondente do utilitário de integração de http://www.cisco.com/tacpage/sw-center/cw2000/cmc3rd.shtml e do pacote de dados de integração do gerenciamento de rede (NMIDB) o mais atrasado. Verifique a documentação do utilitário de integração para mais detalhes.

Alternativamente, você pode consultar a documentação do NMS da terceira na carga e na compilação MIB. Este documento inclui instruções para o HP OpenView e o IBM NetView; mas você deve ainda consultar o HP ou a documentação IBM, porque o Produtos pode mudar.

Do GUI do HP OpenView ou do IBM NetView

Siga estas etapas para carregar o MIBs de Cisco que você quer:

  1. Copie os arquivos no diretório /usr/OV/snmp_mibs da estação de gerenciamento de rede.

    Este é o diretório padrão onde o HP OpenView e o IBM NetView procuram documentos MIB. Se você colocá-los em outro lugar, especifique os nomes explícitos do caminho na interface gráfica loadmib.

  2. Ajuste as permissões de modo que você tenha o acesso de leitura ao MIBs.

  3. Do menu GUI, escolha opções > carga/descarregue o MIBs.

  4. Siga as instruções na documentação de plataforma, para compilar ou carregar o MIBs de Cisco.

Da interface da linha de comando do HP OpenView ou do IBM NetView

Emita /opt/OV/bin/xnmloadmib - carregue o comando filename, carregar o arquivo MIB.


Informações Relacionadas


Document ID: 26015