Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Convenciones

Background

Detalles de las variables MIB, que incluyen identificadores de objetos (OID)

Obtenga el número de puerto en el que se ha aprendido una dirección MAC

Step-by-Step Instructions

Información Relacionada

Introducción

Este documento describe cómo utilizar SNMP (Simple Network Management Protocol) para obtener el número de puerto en un switch Cisco Catalyst del cual ya se conoce la dirección MAC.

Prerequisites

Requirements

Quienes lean este documento deben tener conocimiento de los siguientes temas:

- Cómo obtener VLAN de un switch Catalyst con el uso de SNMP

- Cómo utilizar la indexación de cadenas de comunidad con SNMP

- Uso general del comando get SNMP y walk

Componentes Utilizados

Este documento se aplica a los switches Catalyst que ejecutan Catalyst OS (CatOS) normal o Cisco IOS® Software. El software soporta BRIDGE-MIB y IF-MIB.

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

- Catalyst 3524XL que ejecuta Cisco IOS Software Release 12.0(5)WC5a

- Versión 5.0.6 de NetSNMP

Nota: Para obtener este software, consulte 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.

Convenciones

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

Background

Para obtener más información sobre cómo consultar la tabla de memoria direccionable por contenido (CAM), las VLAN y todas las MIB relacionadas, como CISCO-VTP-MIB y BRIDGE-MIB, consulte la sección Fondo del documento Cómo Obtener Entradas CAM Dinámicas (Tabla CAM) para Switches Catalyst Usando SNMP.

Detalles de las variables MIB, que incluyen identificadores de objetos (OID)

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

Obtenga el número de puerto en el que se ha aprendido una dirección MAC

Step-by-Step Instructions

Complete los pasos de esta sección para utilizar SNMP para obtener el número de puerto en el que se ha aprendido una dirección MAC. Tenga en cuenta que el número de puerto está en VLAN1.

Nota: En los comandos de esta sección:

- public es la cadena de comunidad de lectura.

- @1 es la parte VLAN 1 de la cadena de comunidad de lectura.

- crumpy es el nombre de host del dispositivo.

Nota: También puede utilizar la dirección IP para este nombre de host.

Nota: La sección Conclusión utiliza los valores que aparecen en cursiva en el resultado del comando.

1. Recupere las VLAN. Utilice el comando snmpwalk en el objeto 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)

...

Nota: Este comando utiliza la indexación de cadenas de comunidad. El comando también utiliza vtpVlanState, que tiene OID .1.3.6.1.4.1.9.9.46.1.3.1.1.2. Si ha cargado los MIB en el sistema de administración de red (NMS), puede utilizar el nombre del objeto en lugar del OID. Ejecute este comando en su lugar:

%snmpwalk -c public@1 crumpy vtpVlanState

Nota: También puede utilizar los nombres de objeto en los pasos 2 a 6.

2. Ejecute este comando para obtener la tabla de direcciones MAC considerando que el puerto pertenece a 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

...

Nota: Proporcione el número de VLAN adecuado después de la cadena de comunidad. En este ejemplo, es VLAN1.

El comando enumera todas las direcciones MAC aprendidas en todos los puertos que pertenecen a VLAN 1.

3. Ejecute este comando para determinar el número de puerto puente para 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

...

Nota: La VLAN 1 es dot1dTpFdbPort , o .1.3.6.1.2.1.17.4.3.1.2.

4. Ejecute este comando para mapear el puerto de bridge al 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

Este comando consulta el dot1dBasePortIfIndex, que tiene OID .1.3.6.1.2.1.17.1.4.1.2.

5. Utilice el comando walk con ifName para correlacionar el valor ifIndex con un nombre de puerto correcto.

Ejecutar este comando:

Nota: El ifName tiene 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. Enlace una dirección MAC al puerto en el que se aprendió la dirección.

- A partir del paso 1, la dirección MAC es:

17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08

- Desde el Paso 2, el puerto puente indica que la dirección MAC pertenece al puerto bridge número 13:

17.4.3.1.2.0.0.12.7.172.8 = 13

- Desde el paso 3, el puerto de puente 13 tiene ifIndex número 2:

17.1.4.1.2.13 = 2

- Desde el Paso 4, el ifIndex 2 corresponde al puerto Fast Ethernet 0/1:

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

Conclusión

La dirección MAC 00 00C 07 AC 08 se aprende en el puerto Fa0/1.

Compare esta conclusión con el resultado de:

- El comando show cam dynamic para switches CatOS

- El comando show mac para los switches de Cisco IOS Software

Este es un ejemplo de resultado:

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

…

Información Relacionada

- Navegador de objeto SNMP

- Soporte Técnico y Documentación - Cisco Systems