Traduzindo a saída SNMPWALK em formato legível por humanos

12

Estou fazendo esta pergunta, que está relacionada a uma pergunta que fiz anteriormente e foi respondida de forma abrangente por @MikePennington. Quando fiz essa pergunta, pretendia saber como pesquisar tabela arp a partir de um comutador, mas em sua resposta, ele incluiu tabelas de endereços mac também. Por curiosidade, pesquisei as tabelas de endereços mac. Eu usei o comando:

 sudo /usr/bin/snmpbulkwalk -v 2c -c public@1 -OXsq 10.0.0.98 .1.3.6.1.2.1.17.4.3.1.2

Na solução de Mike, ele teve um resultado claro mostrado abaixo

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -OXsq \
    172.16.1.210 .1.3.6.1.2.1.17.4.3.1.2 
dot1dTpFdbPort[0:6:53:fe:39:e0] 52 
dot1dTpFdbPort[0:1d:a1:cd:53:46] 52 
dot1dTpFdbPort[0:30:1b:bc:a7:d7] 52
 dot1dTpFdbPort[0:80:c8:0:0:0] 52 
dot1dTpFdbPort[38:ea:a7:6d:2e:8e] 52 
dot1dTpFdbPort[80:ee:73:2f:b:40] 52 
[mpenning@tsunami ~]$

Esta é uma solução clara na qual você pode informar facilmente a porta e o endereço Mac. No entanto, minha própria solução sai na forma de

iso.3.6.1.2.1.17.4.3.1.2.0.20.42.49.139.235 25
iso.3.6.1.2.1.17.4.3.1.2.0.21.23.10.229.224 25
iso.3.6.1.2.1.17.4.3.1.2.28.111.101.71.85.113 25
iso.3.6.1.2.1.17.4.3.1.2.28.111.101.174.157.35 25
iso.3.6.1.2.1.17.4.3.1.2.48.133.169.153.178.62 25
iso.3.6.1.2.1.17.4.3.1.2.60.208.248.182.16.108 25
iso.3.6.1.2.1.17.4.3.1.2.108.240.73.231.208.120 25

Entendo que o número da porta é 25, mas os outros números representam um endereço MAC e, em caso afirmativo, por que eles são diferentes da solução give?

Qualquer ajuda será realmente apreciada. Estou pesquisando um switch Cisco Catalyst 2960.

sosytee
fonte
2
Está faltando um arquivo MIB que informa como ler os dados. Mas é apenas a apresentação base10 do seu MAC, iso.3.6.1.2.1.17.4.3.1.2. 28.111.101.71.85.113 25, fácil de converter para base16. ruby -e 'p ARGV [0] .split (".") [- 6 ..- 1] .map {| e | e.to_i.to_s (16)}. join (":")' iso.3.6 .1.2.1.17.4.3.1.2.28.111.101.71.85.113 25, produz "1c: 6f: 65: 47: 55: 71" - parece ser gigabyte OUI
ytti
Você pode postar os endereços MAC equivalentes? Parece que você pode apenas despejá-los em decimal, em vez de hex, mas precisaríamos dos endereços hexadecimais para comparar.
usar o seguinte comando
a única maneira de obter os endereços MAC equivalentes seria converter, porque a partir dessa solução, tudo está apontando para a porta 25, por isso acredito que é um procedimento complicado tentar encontrar os MAC correspondentes.
precisa saber é
@ytti devo instalar o MIB no meu servidor?
precisa saber é
1
@sosytee sim, você deve instalar o MIB apropriado no seu servidor, se a conversão você mesmo não for uma opção, é excessivamente trivial, como mostrado acima.
ytti

Respostas:

8

minha própria solução sai na forma de

iso.3.6.1.2.1.17.4.3.1.2.0.20.42.49.139.235 25

... os outros números representam um endereço MAC e, se sim, por que são diferentes da solução give?

Primeiro, peço desculpas por não incluir essa dependência ...

As tabelas MIB que você está pesquisando são indexadas por um valor. Nesse caso, você está pesquisando dot1dTpFdbPort(que aparece como iso.3.6.1.2.1.17.4.3.1.2 , se você não tiver o BRIDGE-MIB carregado). Esse OID é indexado por um endereço MAC. Portanto, 0,20.42.49.139.235 é o endereço mac no formato decimal com pontos ...

Para ver os resultados esperados, você precisa obter os v2 mibs do site FTP da Cisco :

  • mkdir /usr/share/snmp/mibs/cisco (como root)
  • cd /usr/share/snmp/mibs/cisco
  • Copie o v2.tar.gzqual você acabou de baixar para/usr/share/snmp/mibs/cisco/v2.tar.gz
  • tar xvfz v2.tar.gz
  • Edite /etc/snmp/snmp.confe faça desta a primeira linha do arquivo:mibdirs +/usr/share/snmp/mibs/cisco

Pressupostos :

  • Você está usando bibliotecas NET-SNMP para pesquisar
  • As MIBs padrão do NET-SNMP são carregadas no /usr/share/snmp/mibs/
  • Sua configuração NET-SNMP está em /etc/snmp/snmp.conf
Mike Pennington
fonte