Ich möchte ARP-Tabellen von einem Switch auf einen Syslog-ng-Server erhalten, der auf Ubuntu Server 12.04 LTS eingerichtet wurde. Ich habe über SNMP gelesen und weiß, dass der Server als Manager und der Switch als Agent fungieren wird. Ich habe Details darüber, wo die MIB enthalten ist, und ich muss den Befehl verwenden
snmpwalk -v2c -c <community> <SwitchIP> .1.3.6.1.2.1.17.4.3.1.2
Ich möchte, dass die resultierenden Arptabellen auf meinen Server geleitet werden.
Mein Problem ist, dass ich nicht genau weiß, wo ich den Befehl ausführen oder die Ausgabe in einer Datei speichern soll.
Antworten:
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 .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 ...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 .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 ...
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 dersnmpbulkwalk
obigen Tabelle hinzu.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 IhrHOME
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 densnmpbulkwalk
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 ...
quelle
man snmpcmd
Sie , ob Sie sich auf einem Linux-Host befinden und ob Net-SNMP installiert ist. Ansonsten finden Sie diese Informationen hier: net-snmp.sourceforge.net/docs/man/snmpcmd.html