Перевод вывода SNMPWALK в читабельный формат

12

Я задаю этот вопрос, который связан с вопросом, который я ранее задавал, и на который @MikePennington был дан исчерпывающий ответ. Когда я задал этот вопрос, я намеревался узнать, как опрашивать таблицу arp с коммутатора, но в своем ответе он также включил таблицы адресов mac. Из любопытства я опросил таблицы адресов Mac. Я использовал команду:

 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

В решении Майка у него был ясный результат, показанный ниже

[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 ~]$

Это четкое решение, в котором вы можете легко указать порт и Mac-адрес. Тем не менее, мое собственное решение выходит в виде

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

Я понимаю, что номер порта - 25, но представляют ли другие числа MAC-адрес, и если да, то чем они отличаются от данного решения?

Любая помощь будет по достоинству оценена. Я опрашиваю коммутатор Cisco Catalyst 2960.

sosytee
источник
2
Вам не хватает файла MIB, который говорит, как читать данные. Но это всего лишь представление base10 вашего MAC, iso.3.6.1.2.1.17.4.3.1.2. 28.111.101.71.85.113 25, легко конвертировать в 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, выдает «1c: 6f: 65: 47: 55: 71» - выглядит как гигабайтный OUI
ytti
Можете ли вы опубликовать эквивалентные MAC-адреса? Похоже, что вы можете просто записывать их в десятичном, а не в шестнадцатеричном формате, но для сравнения нам понадобятся шестнадцатеричные адреса.
Хрилис - на забастовке -
единственный способ получить эквивалентные MAC-адреса - это преобразовать, потому что из этого решения все указывает на порт 25, поэтому я считаю, что это сложная процедура, чтобы попытаться найти соответствующие MAC-адреса.
sosytee
@ytti я должен установить MIB на моем сервере?
sosytee
1
@sosytee да, вы должны установить соответствующий MIB на вашем сервере, если его преобразование не является вариантом, это слишком тривиально, как показано выше.
Ytti

Ответы:

8

мое собственное решение выходит в виде

iso.3.6.1.2.1.17.4.3.1.2.0.20.42.49.139.235 25

... представляют ли другие числа MAC-адрес, и если да, то почему они отличаются от данного решения?

Во-первых, я прошу прощения за то, что не включил эту зависимость ...

Опрашиваемые таблицы MIB индексируются по значению. В этом случае вы выполняете опрос dot1dTpFdbPort(который отображается как iso.3.6.1.2.1.17.4.3.1.2 , если у вас не загружен BRIDGE-MIB). Этот OID индексируется по mac-адресу. Следовательно, 0.20.42.49.139.235 - это MAC-адрес в десятичном формате с точками ...

Чтобы увидеть ожидаемые результаты, вам необходимо получить vib-файлы v2 с FTP-сайта Cisco :

  • mkdir /usr/share/snmp/mibs/cisco (как корень)
  • cd /usr/share/snmp/mibs/cisco
  • Скопируйте, v2.tar.gzчто вы только что загрузили/usr/share/snmp/mibs/cisco/v2.tar.gz
  • tar xvfz v2.tar.gz
  • Отредактируйте /etc/snmp/snmp.confи сделайте это первой строкой в ​​файле:mibdirs +/usr/share/snmp/mibs/cisco

Предположения :

  • Вы используете библиотеки NET-SNMP для опроса
  • Ваши MIB по умолчанию NET-SNMP загружаются в /usr/share/snmp/mibs/
  • Ваша конфигурация NET-SNMP находится в /etc/snmp/snmp.conf
Майк Пеннингтон
источник