Es scheint ein wenig verwirrend zu sein ... Sie fragen nach ARP-Tabellen und verwenden OID .1.3.6.1.2.1.17.4.3.1.2
. Diese OID gilt jedoch tatsächlich für die Mac-Adresstabelle im Switch.
Ich gehe davon aus, dass Sie wissen, wie man sich auf Ihrem Ubuntu-Server anmeldet, und das NET-SNMP
ist installiert. Bitte lassen Sie mich wissen, wenn Sie dazu Hinweise benötigen (siehe diese Frage für Hinweise zum Laden von MIBs unter Linux ). In einigen meiner Beispiele wird davon ausgegangen, dass die MIBs auf Ihrem Server geladen sind. Sie müssen nur die -m <mib-name>
Option in den Befehlen entfernen, wenn die MIBs nicht lokal geladen sind.
Ich entschuldige mich im Voraus für die Länge dieser Antwort ... Ich wünschte, die Abfrage mit SNMP wäre nicht so kompliziert ...
Abfrage der Mac-Adressentabelle:
Wenn Sie wirklich möchten, dass die Mac-Adressentabelle vom Switch stammt, müssen Sie die Community-Zeichenfolge ändern, mit der Sie eine Abfrage durchführen. Sie sollte in Form von <commity@vlan>
... jeder von Ihnen abgefragten VLAN-Datei eine andere Community benötigen.
In meinem Beispiel unten ist der Switch unter 172.16.1.210 mit konfiguriert snmp-server community public ro
, und ich rufe die Mac-Adresstabelle in vlan-10 mit dot1dTpFdbPort von BRIDGE-MIB ab .
[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 ~]$
In der obigen Ausgabe ist 52 der Wert von. dot1dBasePort
Hierbei handelt es sich um eine Zahl, mit der die MIB die dot1dTp-Tabelle indiziert. Um das in einen normalen Schnittstellennamen zu übersetzen, müssen Sie das einem ifName zuordnen ... BRIDGE-MIB macht das mit dot1dBasePortIfIndex ...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -m BRIDGE-MIB 172.16.1.210 \
.1.3.6.1.2.1.17.1.4.1.2
BRIDGE-MIB::dot1dBasePortIfIndex.52 = INTEGER: 10048
[mpenning@tsunami ~]$
[mpenning@tsunami ~]$ snmpget -v 2c -c public 172.16.1.210 ifName.10048
IF-MIB::ifName.10048 = STRING: Fa0/48
[mpenning@tsunami ~]$
Somit wissen wir, dass alle Mac-Adressen auf diesem Switch über FastEthernet 0/48 in vlan-10 gelernt wurden.
Abfrage der aktiven Vlans:
Wenn Sie sich nicht sicher sind, welche vlans auf einem Switch abgefragt werden sollen, können Sie diese Informationen abrufen. Dies.1.3.6.1.4.1.9.9.46.1.3.1.1.2
ist vtpVlanState in der CISCO-VTP-MIB .
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq -m CISCO-VTP-MIB 172.16.1.210 \
.1.3.6.1.4.1.9.9.46.1.3.1.1.2
vtpVlanState[1][1] operational
vtpVlanState[1][10] operational
vtpVlanState[1][1002] operational
vtpVlanState[1][1003] operational
vtpVlanState[1][1004] operational
vtpVlanState[1][1005] operational
[mpenning@tsunami ~]$
Beachten Sie, dass Vlans 1002-1005 interne Cisco Vlans sind , die Sie nicht abrufen sollten.
Abfrage der ARP-Tabelle
Wenn Sie die ARP-Tabelle wirklich vom Switch erhalten möchten, müssen Sie atPhysAddress abfragen ...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq 172.16.1.210 \
.1.3.6.1.2.1.3.1.1.2
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[mpenning@tsunami ~]$
Speichern der Befehlsausgabe in eine Datei
Wir beschäftigen uns mit Bereichen, die außerhalb des normalen Bereichs dieser Website liegen. Um die obige ARP-Tabelle jedoch in einer Datei zu speichern /tmp/S01_ARP.txt
, fügen Sie > /tmp/S01_ARP.txt
sie am Ende der snmpbulkwalk
obigen Tabelle hinzu.
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq 172.16.1.210 \
.1.3.6.1.2.1.3.1.1.2 > /tmp/S01_ARP.txt
[mpenning@tsunami ~]$ cat /tmp/S01_ARP.txt
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[mpenning@tsunami ~]$
Wie Sie oben sehen, können Sie unter cat
Linux die gesamte Ausgabe einer Textdatei abrufen. HINWEIS: Einige Linux-Distributionen (ahem ... CentOS) bereinigen das /tmp
Verzeichnis monatlich. Sie sollten Ihr HOME
Verzeichnis unter Linux verwenden, um die Datei zu speichern. Ich erinnere mich nicht, dass Ubuntu aufgeräumt hat /tmp
, aber um sicher zu gehen, würde ich es vermeiden, Dinge dort aufzubewahren.
Sonstige Hinweise zu SNMP ...
Wenn Sie nicht alle Cisco-MIBs auf Ihrem Ubuntu-Computer geladen haben, sollten Sie die Verwendung der -m <mib-name>
Flags in den snmpbulkwalk
Befehlen vermeiden . Wenn Sie MIBs laden, können Sie mit einem OID-Namen anstelle der langen gepunkteten Nummer abrufen ...
Referenzinformationen:
Ich füge einige show-Befehle vom Switch hinzu, falls Sie Fragen zur CLI für die oben genannten SNMP-Befehle haben ...
S01#sh ver | i IOS
Cisco IOS Software, C3560 Software (C3560-IPBASEK9-M), Version 12.2(37)SE, RELEASE SOFTWARE (fc2)
S01#
S01#sh mac address-table dynamic
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
10 0006.53fe.39e0 DYNAMIC Fa0/48
10 001d.a1cd.5346 DYNAMIC Fa0/48
10 0030.1bbc.a7d7 DYNAMIC Fa0/48
10 0080.c800.0000 DYNAMIC Fa0/48
10 38ea.a76d.2e8e DYNAMIC Fa0/48
10 80ee.732f.0b40 DYNAMIC Fa0/48
Total Mac Addresses for this criterion: 6
S01#
S01#sh arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 172.16.1.210 - 0018.ba51.5b41 ARPA Vlan10
Internet 172.16.1.200 0 0006.53fe.39e0 ARPA Vlan10
Internet 172.16.1.32 0 bc51.fe50.16f8 ARPA Vlan10
Internet 172.16.1.25 0 38ea.a76d.2e8e ARPA Vlan10
Internet 172.16.1.5 1 80ee.732f.0b40 ARPA Vlan10
S01#