![Listagem SNMP Walk vs MIB OID](https://rvso.com/image/658341/Listagem%20SNMP%20Walk%20vs%20MIB%20OID.png)
(Há uma pergunta no final desta história, fique comigo!)
Depois de muita pesquisa, acredito que comecei a entender os fundamentos do SNMP. Sempre soube que um sistema de gerenciamento SNMP consumiria dados de um dispositivo (e potencialmente enviaria dados para dispositivos também), mas tive problemas para entender como configurar essa configuração.
Agora estou usando um sistema de gerenciamento SNMP, então é hora de descobrir. Então, mergulhei na compreensão de MIBs e OIDs. A meu ver, um fornecedor lançará um MIB para seu produto, que deve conter OIDs específicos do produto. O MIB é como um catálogo de coisas que podem ser consultadas no dispositivo, e os OIDs são os itens específicos que podem ser consultados. (Por favor, corrija-me se eu estiver entendendo mal.)
Por exemplo, a SonicWall pode fornecer um MIB para um firmware específico para um de seus Firewalls. Portanto, se eu quisesse monitorar o máximo de conexões disponíveis para esse firewall, eu baixaria o MIB de mysonicwall.com, importaria o MIB para um navegador MIB e procuraria um OID apropriado que correspondesse ao máximo de conexões. Então posso inserir esse OID em meu sistema de gerenciamento SNMP para monitorar essa métrica.
Tudo isso faz sentido para mim, espero estar entendendo corretamente. Acho o processo bastante desajeitado, especialmente quando existem APIs autodescritivas hoje em dia, mas ei, o SNMP foi criado nos anos 80, então acho que trabalhamos com o que temos.
Mas onde esse entendimento falha para mim é quando eu atuo e o SNMP anda no meu SonicWall. Fazer a caminhada produz mais de 500 OIDs que são retornados. Mas quando examino o MIB fornecido pela SonicWall, ele contém apenas uma fração dos OIDs listados. Isso ocorre porque a maioria dos OIDs descobertos durante a caminhada não são específicos da SonicWall, mas sim OIDs genéricos padrão da indústria?
Além disso, existe uma maneira decente de obter um relatório de TODOS os dados (sejam específicos do SonicWall ou padrão do setor) que meu SonicWall pode fornecer via SNMP? Como alguma ferramenta em que eu pudesse inserir os dados do SNMP e retornar o que todos eles significam?
Além disso, se eu tiver alguma lacuna no meu entendimento sobre SNMP, MIBs e OIDs, receberia com satisfação o feedback. Obrigado!!!!
Responder1
Ok, então aqui está o que minha pesquisa sobre SNMP revelou. Não posso verificar se tudo isso está 100% preciso, mas sinto que tenho uma compreensão muito melhor do SNMP em geral e espero que essas informações ajudem alguém que está apenas começando.
Primeiro, o SNMP me parece um sistema confuso. Foi desenvolvido no final dos anos 80 e simplesmente não existe uma boa alternativa, então acho que trabalhamos com o que temos.
O SNMP é composto de três partes: um sistema de gerenciamento SNMP, pelo menos um dispositivo de rede e um agente de software nesses dispositivos de rede. Por exemplo, você pode usar Naigos ou MaxFocus como um sistema de gerenciamento SNMP para consultar dispositivos em sua rede, como impressoras, switches, roteadores, etc. Esses componentes de software basicamente produzem um monte de dados SNMP com base no funcionamento do dispositivo. Por exemplo, uma impressora pode produzir dados sobre seus níveis de toner, ou um roteador pode produzir dados sobre quantas conexões simultâneas suporta atualmente. O sistema de gerenciamento SNMP pode então consultar esses dispositivos para obter essas informações.
Mas como isso é realmente feito? Bem, algumas organizações de padronização criaram MIBs na década de 80 para ajudar nisso. Uma MIB é basicamente uma grande árvore de dados de atributos SNMP que podem ser consultados. Esses MIBs padrão cobrem uma grande quantidade de atributos que podem ser consultados - desde toner até configurações de rede - mas como você pode imaginar, à medida que novos dispositivos e tecnologias surgem, eles não cobrem tudo. Portanto, os fabricantes produziram MIBs específicos para produtos que ajudam a preencher essas lacunas.
Os MIBs parecem muito bons, mas a realidade é que muitas vezes parecem ser difíceis de entender e mal escritos. Às vezes, eles não são escritos de acordo com as especificações adequadas, por isso fica difícil utilizá-los. Dito isso, o processo geral para usar uma MIB para descobrir quais itens você pode consultar no dispositivo de sua escolha (roteador, impressora, etc.) é este:
- Obtenha um software MIB Browser gratuito. Eles são todos ruins, mas acho que o NetTools Pro da Axence ou o MIB Browser da ManageEngine são os menos ruins.
- A maioria dos navegadores MIB vem com os arquivos MIB "padrão" pré-carregados. Mas se você quiser saber quais itens específicos do fornecedor você pode consultar em seus dispositivos, você terá que baixar um arquivo MIB personalizado do seu fornecedor. (Sonicwall, HP, etc) Se o seu fornecedor não oferece arquivos MIB, existem alguns recursos online que hospedam vários arquivos MIB. Acho que existe um chamado MIB Depot ou algo assim...
- Depois de fazer o download do arquivo MIB específico do fornecedor personalizado, importe-o para o navegador MIB.
- Agora realizamos o que chamamos de "walk" no seu dispositivo SNMP. Para fazer isso, você precisará inserir o endereço IP do dispositivo e sua string de comunidade. (A string de comunidade é na verdade apenas uma senha ou segredo compartilhado usado para autenticação. Por que os criadores do SNMP decidiram que precisavam ser diferentes e chamá-lo de string de comunidade está além da minha compreensão...) Devo também mencionar que o dispositivo que você está consultando precisa ser configurado para permitir consultas SNMP. Isso geralmente é feito por meio da interface da web do dispositivo, que normalmente também é onde você define a sequência da comunidade.
- Depois de conectar seu navegador MIB ao seu dispositivo, execute a função "walk". Cada navegador MIB funciona de maneira um pouco diferente, então você precisará brincar um pouco para ver como funciona a função walk. Mas, em geral, deve retornar uma lista de OIDs do seu dispositivo. Esses IDs correspondem a uma entrada nos arquivos MIB. Normalmente você pode clicar duas vezes ou destacar um desses OIDs e ele encontrará o item MIB correspondente que lhe dirá para que esse OID é usado, por exemplo, níveis de toner, versão do sistema operacional, conexões de rede, etc. em seu sistema de gerenciamento SNMP e comece a monitorar esse atributo!
Então, depois de toda a minha pesquisa, descobri que o SNMP me parece, pelo menos, um sistema muito falho e complicado. Mas pelo que li parece que, pelo menos, depois de configurado, ele tende a ser confiável e rápido. Espero que esta informação ajude alguém que está apenas se aprofundando no mundo do SNMP! Aqui está outra referência que achei útil:
http://www.allthingsmax.com/2014/02/take-snmp-walk-creating-new-snmp-checks.html
ATUALIZAÇÃO: vou adicionar outra dica aqui. Ao percorrer os valores OID de um dispositivo, há dois tipos diferentes de valores que você pode recuperar: escalar e tabular.
Tabular é usado para dispositivos que precisam fornecer o mesmo tipo de valor para vários componentes. Por exemplo, um roteador pode ter 9 portas. Cada porta possui um endereço físico ou endereço MAC diferente. isso é representado por uma tabela em uma MIB.
Escalar é usado para valores que não requerem um layout tabular.
A PARTE IMPORTANTE: Os valores escalares são sempre anexados com 0,0 e os valores tabulares são anexados com um número que representa um valor de dispositivo específico. Por exemplo, em um roteador, a porta 1 provavelmente seria anexada com .1, a porta 2 com .2 e assim por diante. Então, ao inserir o OID em seu sistema de gerenciamento SNMP, você precisa incluir este último caractere numérico. Por exemplo, ifPhysAddress = .1.3.6.1.2.1.2.2.1.6, mas sem anexar um valor tabular não adiantará nada. Isso é semelhante para valores escalares que sempre precisarão de um .0 anexado. Um navegador MIB decente deve mostrar esses valores anexados ao percorrer o dispositivo. O navegador MIB da ManageEngine faz um bom trabalho nisso. O formato é assim:
--Valores escalares:
sysUpTime.0
sysContact.0
nome_sistema.0
--Valores tabulares:
ifPhysAddress.1
ifPhysAddress.2
ifPhysAddress.3
...