Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Conventions

Fond

Détails des variables MIB, qui incluent les OID (Object Identifier)

Obtenir le numéro de port sur lequel une adresse MAC a été apprise

Step-by-Step Instructions

Informations connexes

Introduction

Ce document décrit comment employer le protocole de gestion de réseau simple (SNMP) pour obtenir le numéro de port sur un commutateur Cisco Catalyst duquel vous connaissez l'adresse MAC.

Conditions préalables

Conditions requises

Les lecteurs de ce document devraient avoir connaissance des sujets suivants :

- Comment obtenir des VLAN à partir d'un commutateur Catalyst avec l'utilisation de SNMP

- Comment utiliser l'indexation des chaînes de communauté avec SNMP

- Utilisation générale de la commande get SNMP et de la commande walk

Components Used

Ce document s'applique aux commutateurs Catalyst qui exécutent un système d'exploitation Catalyst (CatOS) ou le logiciel Cisco IOS®. Le logiciel prend en charge le BRIDGE-MIB et le IF-MIB.

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- Catalyst 3524XL qui exécute le logiciel Cisco IOS Version 12.0(5)WC5a

- Net-SNMP version 5.0.6

Remarque : Pour obtenir ce logiciel, reportez-vous à Net-SNMP .

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Conventions

For more information on document conventions, refer to the Cisco Technical Tips Conventions.

Fond

Pour plus d'informations sur la façon d'interroger la table CAM (Content-Addressable Memory), les VLAN et toutes les MIB associées, telles que CISCO-VTP-MIB et BRIDGE-MIB, reportez-vous à la section Background du document How To Get Dynamic CAM Entries (CAM Table) for Catalyst Switches Using SNMP.

Détails des variables MIB, qui incluent les OID (Object Identifier)

.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 }

Obtenir le numéro de port sur lequel une adresse MAC a été apprise

Step-by-Step Instructions

Complétez les étapes de cette section afin d'utiliser SNMP pour obtenir le numéro de port sur lequel une adresse MAC a été apprise. Considérez que le numéro de port se trouve dans VLAN1.

Remarque : dans les commandes de cette section :

- public est la chaîne de communauté de lecture.

- @1 est la partie VLAN 1 de la chaîne de communauté de lecture.

- crumpy est le nom d'hôte du périphérique.

Remarque : Vous pouvez également utiliser l'adresse IP pour ce nom d'hôte.

Remarque : La section Conclusion utilise les valeurs qui apparaissent en italique dans le résultat de la commande.

1. Récupérez les VLAN. Utilisez la commande snmpwalk sur l'objet vtpVlanState (.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)

...

Note : Cette commande utilise l'indexation des chaînes de communauté. La commande utilise également vtpVlanState, qui a OID .1.3.6.1.4.1.9.9.46.1.3.1.1.2. Si vous avez chargé les MIB dans votre système de gestion de réseau (NMS), vous pouvez utiliser le nom de l'objet au lieu de l'OID. Émettez plutôt cette commande :

%snmpwalk -c public@1 crumpy vtpVlanState

Remarque : Vous pouvez également utiliser les noms d'objet des étapes 2 à 6.

2. Émettez cette commande afin d'obtenir la table d'adresses MAC en considérant que le port appartient à VLAN1 :

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

...

Remarque : indiquez le numéro de VLAN approprié après la chaîne de communauté. Dans cet exemple, il s’agit de VLAN1.

La commande répertorie toutes les adresses MAC apprises sur tous les ports appartenant au VLAN 1.

3. Exécutez cette commande pour déterminer le numéro de port de pont pour VLAN 1 :

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

...

Remarque : VLAN 1 est dot1dTpFdbPort , ou .1.3.6.1.2.1.17.4.3.1.2.

4. Exécutez cette commande pour mapper le port de pont sur le ifIndex, OID .1.3.6.1.2.1.2.2.1.1 :

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

Cette commande interroge le dot1dBasePortIfIndex, qui a OID .1.3.6.1.2.1.17.1.4.1.2.

5. Utilisez la commande walk avec ifName afin de corréler la valeur ifIndex avec un nom de port correct.

Émettez la commande suivante :

Remarque : Le ifName a l'OID .1.3.6.1.2.1.31.1.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

...

6. Liez une adresse MAC au port sur lequel l'adresse a été apprise.

- À l’étape 1, l’adresse MAC est :

17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08

- À l’étape 2, le port de pont indique que l’adresse MAC appartient au port de pont numéro 13 :

17.4.3.1.2.0.0.12.7.172.8 = 13

- À partir de l'étape 3, le port de pont numéro 13 a ifIndex numéro 2 :

17.1.4.1.2.13 = 2

- À l’étape 4, ifIndex 2 correspond au port Fast Ethernet 0/1 :

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.2 = Fa0/1

Conclusion

L'adresse MAC 00 00 0C 07 AC 08 est apprise sur le port Fa0/1.

Comparez cette conclusion avec la sortie de :

- La commande show cam dynamic pour les commutateurs CatOS

- La commande show mac pour les commutateurs du logiciel Cisco IOS

Voici l'exemple de sortie :

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

…

Informations connexes

- Navigateur d'objets SNMP

- Support et documentation techniques - Cisco Systems