Tłumaczenie danych wyjściowych SNMPWALK na format czytelny dla człowieka

12

Zadaję to pytanie, które jest związane z pytaniem, które wcześniej zadałem i na które kompleksowo odpowiedział @MikePennington. Kiedy zadałem to pytanie, chciałem wiedzieć, jak odpytać tablicę arp z przełącznika, ale w swojej odpowiedzi podał także tablice adresów mac. Z ciekawości szukałem tablic adresów mac. Użyłem polecenia:

 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

W rozwiązaniu Mike'a miał wyraźny wynik pokazany poniżej

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

Jest to przejrzyste rozwiązanie, w którym można łatwo określić port i adres Mac. Jednak moje własne rozwiązanie ma postać

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

Rozumiem, że numer portu to 25, ale czy pozostałe liczby reprezentują adres MAC, a jeśli tak, to dlaczego różnią się od podanego rozwiązania?

Każda pomoc będzie naprawdę mile widziana. Odpytuję przełącznik Cisco Catalyst 2960.

sosytee
źródło
2
Brakuje pliku MIB, który mówi, jak odczytać dane. Ale to tylko podstawowa prezentacja twojego MAC, iso.3.1.1.2.1.17.4.3.1.2. 28.111.101.71.85.113 25, łatwy do konwersji na bazę 16. 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, daje „1c: 6f: 65: 47: 55: 71” - wygląda jak gigabajt OUI
ytti
Czy możesz podać równoważne adresy MAC? Wygląda na to, że możesz po prostu zrzucić je w systemie dziesiętnym zamiast szesnastkowym, ale potrzebujemy adresów szesnastkowych do porównania.
Chrylis
jedynym sposobem na uzyskanie równoważnych adresów MAC byłaby konwersja, ponieważ z tego rozwiązania wszystko wskazuje na port 25, więc uważam, że jest to skomplikowana procedura, aby znaleźć odpowiednie adresy MAC.
sosytee
@ytti powinienem zainstalować MIB na moim serwerze?
sosytee
1
@sosytee tak, powinieneś zainstalować odpowiedni MIB na swoim serwerze, jeśli jego samodzielna konwersja nie jest opcją, jest to zbyt trywialne, jak pokazano powyżej.
ytti

Odpowiedzi:

8

moje własne rozwiązanie wychodzi w formie

iso.3.6.1.2.1.17.4.3.1.2.0.20.42.49.139.235 25

... czy inne liczby reprezentują adres MAC, a jeśli tak, to dlaczego różnią się od podanego rozwiązania?

Po pierwsze przepraszam, że nie uwzględniłem tej zależności ...

Sondowane tabele MIB są indeksowane według wartości. W tym przypadku odpytujesz dot1dTpFdbPort(co pokazuje się jako iso.3.6.1.2.1.17.4.3.1.2 , jeśli nie masz załadowanego pliku BRIDGE-MIB). Ten identyfikator OID jest indeksowany przez adres MAC. Dlatego 0.20.42.49.139.235 to adres mac w formacie kropkowo-dziesiętnym ...

Aby zobaczyć oczekiwane wyniki, musisz pobrać mibs v2 z witryny FTP Cisco :

  • mkdir /usr/share/snmp/mibs/cisco (jako root)
  • cd /usr/share/snmp/mibs/cisco
  • Skopiuj v2.tar.gzwłaśnie pobrany plik/usr/share/snmp/mibs/cisco/v2.tar.gz
  • tar xvfz v2.tar.gz
  • Edytuj /etc/snmp/snmp.confi ustaw jako pierwszy wiersz w pliku:mibdirs +/usr/share/snmp/mibs/cisco

Założenia :

  • Do sondowania używasz bibliotek NET-SNMP
  • Domyślne MIB NET-SNMP są ładowane /usr/share/snmp/mibs/
  • Twoja konfiguracja NET-SNMP jest włączona /etc/snmp/snmp.conf
Mike Pennington
źródło