In diesem Dokument wird beschrieben, wie Sie mit dem Simple Network Management Protocol (SNMP) die Portnummer eines Cisco Catalyst-Switches abrufen, von dem Sie die MAC-Adresse kennen.
Die Leser dieses Dokuments sollten folgende Themen kennen:
So erhalten Sie VLANs mithilfe von SNMP von einem Catalyst Switch
Verwendung der Community-String-Indizierung mit SNMP
Allgemeine Verwendung des Befehls SNMP Get und walk
Dieses Dokument gilt für Catalyst Switches mit regulärem Catalyst OS (CatOS) oder Cisco IOS® Software. Die Software unterstützt die BRIDGE-MIB und die IF-MIB.
Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:
Catalyst 3524XL mit Cisco IOS Software Release 12.0(5)WC5a
Net-SNMP Version 5.0.6
Hinweis: Informationen zum Bezug dieser Software finden Sie unter Net-SNMP .
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Weitere Informationen zu Dokumentkonventionen finden Sie in den Cisco Technical Tips Conventions.
Weitere Informationen zum Abfragen der Tabelle mit dem Content-Addressable Memory (CAM), der VLANs und aller zugehörigen MIBs, z. B. der CISCO-VTP-MIB und der BRIDGE-MIB, finden Sie im Abschnitt "Background" im Dokument How To Get Dynamic CAM Entries (CAM Table) for Catalyst Switches Using SNMP.
.1.3.6.1.2.1.17.4.3.1.1 dot1dTpFdbAddress OBJECT-TYPE -- FROM BRIDGE-MIB -- TEXTUAL CONVENTION MacAddress SYNTAX OCTET STRING (6) MAX-ACCESS read-only STATUS Mandatory DESCRIPTION "A unicast MAC address for which the bridge has forwarding and/or filtering information." ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) dot1dBridge(17) dot1dTp(4) dot1dTpFdbTable(3) dot1dTpFdbEntry(1) 1 } .1.3.6.1.2.1.17.4.3.1.2 dot1dTpFdbPort OBJECT-TYPE -- FROM BRIDGE-MIB SYNTAX Integer MAX-ACCESS read-only STATUS Mandatory DESCRIPTION "Either the value "0", or the port number of the port on which a frame having a source address equal to the value of the corresponding instance of dot1dTpFdbAddress has been seen. A value of "0" indicates that the port number has not been learned, but that the bridge does have some forwarding/filtering information about this address (that is, in the StaticTable). Implementors are encouraged to assign the port value to this object whenever it is learned, even for addresses for which the corresponding value of dot1dTpFdbStatus is not learned(3)." ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) dot1dBridge(17) dot1dTp(4) dot1dTpFdbTable(3) dot1dTpFdbEntry(1) 2 } .1.3.6.1.2.1.2.2.1.1 ifIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-only STATUS current DESCRIPTION "A unique value, greater than zero, for each interface. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re- initialization." ::= { ifEntry 1 } .1.3.6.1.2.1.17.1.4.1.2 dot1dBasePortIfIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The value of the instance of the ifIndex object, defined in MIB-II, for the interface corresponding to this port." ::= { dot1dBasePortEntry 2 } .1.3.6.1.2.1.31.1.1.1.1 ifName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The textual name of the interface. The value of this object should be the name of the interface as assigned by the local device and should be suitable for use in commands entered at the device's `console'. This might be a text name, such as `le0' or a simple port number, such as `1', depending on the interface naming syntax of the device. If several entries in the ifTable together represent a single interface as named by the device, then each will have the same value of ifName. Note that for an agent which responds to SNMP queries concerning an interface on some other (proxied) device, then the value of ifName for such an interface is the proxied device's local name for it. If there is no local name, or this object is otherwise not applicable, then this object contains a zero-length string." ::= { ifXEntry 1 }
Führen Sie die Schritte in diesem Abschnitt aus, um mithilfe von SNMP die Portnummer abzurufen, auf der eine MAC-Adresse erfasst wurde. Beachten Sie, dass sich die Portnummer in VLAN1 befindet.
Hinweis: Führen Sie in den Befehlen in diesem Abschnitt folgende Schritte aus:
public ist der Read Community String.
@1 ist der VLAN 1-Teil des Read Community Strings.
Crumpy ist der Gerätemittelname.
Hinweis: Sie können auch die IP-Adresse für diesen Hostnamen verwenden.
Hinweis: Im Abschnitt Zusammenfassung werden die Werte verwendet, die in der Befehlsausgabe kursiv angezeigt werden.
Abrufen der VLANs Verwenden Sie den Befehl snmpwalk für das vtpVlanState-Objekt (.1.3.6.1.4.1.9.9.46.1.3.1.1.2 ):
%snmpwalk -c public crumpy .1.3.6.1.4.1.9.9.46.1.3.1.1.2 CISCO-VTP-MIB::vtpVlanState.1.1 = INTEGER: operational(1) CISCO-VTP-MIB::vtpVlanState.1.3 = INTEGER: operational(1) CISCO-VTP-MIB::vtpVlanState.1.7 = INTEGER: operational(1) CISCO-VTP-MIB::vtpVlanState.1.10 = INTEGER: operational(1) ...
Hinweis: Dieser Befehl verwendet die Community String-Indexierung. Der Befehl verwendet außerdem vtpVlanState, der über die OID .1.3.6.1.4.1.9.9.46.1.3.1.1.2 verfügt. Wenn Sie die MIBs in Ihr Netzwerkmanagementsystem (NMS) geladen haben, können Sie statt der OID den Objektnamen verwenden. Geben Sie stattdessen den folgenden Befehl ein:
%snmpwalk -c public@1 crumpy vtpVlanState
Hinweis: Sie können die Objektnamen auch in den Schritten 2 bis 6 verwenden.
Geben Sie diesen Befehl ein, um die MAC-Adresstabelle abzurufen, indem Sie erwägen, dass der Port zu VLAN1 gehört:
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.4.3.1.1 17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08 17.4.3.1.1.0.1.2.27.80.145 = Hex: 00 01 02 1B 50 91 17.4.3.1.1.0.1.3.72.77.90 = Hex: 00 01 03 48 4D 5A 17.4.3.1.1.0.1.3.72.221.191 = Hex: 00 01 03 48 DD BF ...
Hinweis: Geben Sie nach dem Community String die entsprechende VLAN-Nummer an. In diesem Beispiel ist es VLAN1.
Der Befehl listet alle MAC-Adressen auf, die an allen Ports erfasst wurden, die zu VLAN 1 gehören.
Geben Sie diesen Befehl ein, um die Bridge-Port-Nummer für VLAN 1 zu ermitteln:
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.4.3.1.2 17.4.3.1.2.0.0.12.7.172.8 = 13 17.4.3.1.2.0.1.2.27.80.128 = 13 17.4.3.1.2.0.1.2.27.80.145 = 13 17.4.3.1.2.0.1.2.163.145.225 = 13 ...
Hinweis: VLAN 1 ist dot1dTpFdbPort , oder .1.3.6.1.2.1.17.4.3.1.2.
Geben Sie diesen Befehl ein, um den Bridge-Port dem ifIndex, OID .1.3.6.1.2.1.2.2.1.1 zuzuordnen:
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.1.4.1.2 17.1.4.1.2.13 = 2 17.1.4.1.2.14 = 3 17.1.4.1.2.15 = 4 17.1.4.1.2.16 = 5
Dieser Befehl fragt den dot1dBasePortIfIndex ab, der über die OID .1.3.6.1.2.1.17.1.4.1.2 verfügt.
Verwenden Sie den Befehl walk mit ifName, um den ifIndex-Wert mit einem korrekten Portnamen zu korrelieren.
Geben Sie den folgenden Befehl ein:
Hinweis: Der ifName hat die OID .1.3.6.1.2.1.31.1.1.1.
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.31.1.1.1.1 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.1 = VL1 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.2 = Fa0/1 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.3 = Fa0/2 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.4 = Fa0/3 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.5 = Fa0/4 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.6 = Fa0/5 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.7 = Fa0/6 ...
Verknüpfen Sie eine MAC-Adresse mit dem Port, an dem die Adresse abgerufen wurde.
In Schritt 1 lautet die MAC-Adresse:
17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08
Ab Schritt 2 weist der Bridge-Port darauf hin, dass die MAC-Adresse zu Bridge-Port-Nummer 13 gehört:
17.4.3.1.2.0.0.12.7.172.8 = 13
In Schritt 3 hat die Bridge-Port-Nummer 13 ifIndex-Nummer 2:
17.1.4.1.2.13 = 2
In Schritt 4 entspricht ifIndex 2 dem Port Fast Ethernet 0/1:
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.2 = Fa0/1
Die MAC-Adresse 00 00 0C 07 AC 08 wird auf Port Fa0/1 erfasst.
Vergleichen Sie diese Schlussfolgerung mit den Ergebnissen von:
Der Befehl show cam dynamic für CatOS-Switches
Der Befehl show mac für Cisco IOS Software-Switches
Hier ist die Beispielausgabe:
crumpy# show mac Dynamic Address Count: 58 Secure Address Count: 2 Static Address (User-defined) Count: 0 System Self Address Count: 51 Total MAC addresses: 111 Maximum MAC addresses: 8192 Non-static Address Table: Destination Address Address Type VLAN Destination Port ------------------- ------------ ---- ------------------- 0000.0c07.ac08 Dynamic 1 FastEthernet0/1 0001.021b.5091 Dynamic 1 FastEthernet0/1 0001.0348.4d5a Dynamic 1 FastEthernet0/1 0001.0348.ddbf Dynamic 1 FastEthernet0/1 0001.972d.dfae Dynamic 1 FastEthernet0/1 0002.55c6.cfe7 Dynamic 1 FastEthernet0/1 0002.7d61.d400 Dynamic 1 FastEthernet0/1 …