Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Conventions

Background

Detalhes das variáveis MIB, que incluem identificadores de objeto (OIDs)

Obtenha o número da porta na qual um endereço MAC foi aprendido

Step-by-Step Instructions

Informações Relacionadas

Introduction

Este documento descreve como usar o Simple Network Management Protocol (SNMP) para se obter o número da porta do switch Cisco Catalyst cujo endereço MAC você conhece.

Prerequisites

Requirements

Os leitores deste documento devem estar cientes destes tópicos:

- Como obter VLANs de um switch Catalyst com o uso de SNMP

- Como usar a indexação de string de comunidade com SNMP

- Uso geral do comando SNMP get e walk

Componentes Utilizados

Este documento se aplica aos switches Catalyst que executam o Catalyst OS (CatOS) ou o Cisco IOS® Software. O software suporta o BRIDGE-MIB e o IF-MIB.

As informações neste documento são baseadas nestas versões de software e hardware:

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

- Net-SNMP versão 5.0.6

Observação: para obter esse 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.

Conventions

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

Background

Para obter mais informações sobre como consultar a tabela de memória endereçável de conteúdo (CAM), VLANs e todos os MIBs relacionados, como o CISCO-VTP-MIB e o BRIDGE-MIB, consulte a seção Informações de Fundo do documento Como Obter Entradas CAM Dinâmicas (Tabela CAM) para Switches Catalyst Usando SNMP.

Detalhes das variáveis MIB, que incluem identificadores de objeto (OIDs)

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

Obtenha o número da porta na qual um endereço MAC foi aprendido

Step-by-Step Instructions

Conclua as etapas nesta seção para usar o SNMP para obter o número da porta na qual um endereço MAC foi aprendido. Considere que o número da porta está em VLAN1.

Observação: nos comandos desta seção:

- public é a string de comunidade lida.

- @1 é a parte da VLAN 1 da série de comunidade lida.

- crumpy é o nome do host do dispositivo.

Observação: você também pode usar o endereço IP para esse nome de host.

Observação: a seção Conclusão usa os valores que aparecem em itálico na saída do comando.

1. Recupere as VLANs. Use o comando snmpwalk no 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)

...

Observação: este comando usa a indexação de string de comunidade. O comando também usa vtpVlanState, que tem OID .1.3.6.1.4.1.9.9.46.1.3.1.1.2. Se você carregou os MIBs no seu sistema de gerenciamento de rede (NMS), poderá usar o nome do objeto em vez do OID. Execute este comando em vez disso:

%snmpwalk -c public@1 crumpy vtpVlanState

Observação: você também pode usar os nomes dos objetos nas etapas 2 a 6.

2. Emita este comando para obter a tabela de endereços MAC considerando que a porta pertence à 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

...

Observação: forneça o número de VLAN apropriado após a string de comunidade. Neste exemplo, é VLAN1.

O comando lista todos os endereços MAC que foram aprendidos em todas as portas que pertencem à VLAN 1.

3. Emita este comando para determinar o número da porta da bridge para a 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

...

Observação: a VLAN 1 é dot1dTpFdbPort ou .1.3.6.1.2.1.17.4.3.1.2.

4. Emita este comando para mapear a porta da ponte para o 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 o dot1dBasePortIfIndex, que tem o OID .1.3.6.1.2.1.17.1.4.1.2.

5. Use o comando walk com ifName para correlacionar o valor ifIndex com um nome de porta correto.

Emita este comando:

Observação: o ifName tem 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. Vincule um endereço MAC à porta na qual o endereço foi aprendido.

- No passo 1, o endereço MAC é:

17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08

- Da Etapa 2, a porta da bridge informa que o endereço MAC pertence à porta da bridge número 13:

17.4.3.1.2.0.0.12.7.172.8 = 13

- Da etapa 3, a porta de ligação número 13 tem ifIndex número 2:

17.1.4.1.2.13 = 2

- No Passo 4, o ifIndex 2 corresponde à porta Fast Ethernet 0/1:

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

Conclusão

O endereço MAC 00 00 0C 07 AC 08 é aprendido na porta Fa0/1.

Compare esta conclusão com a saída de:

- O comando show cam dynamic para switches CatOS

- O comando show mac para switches do software Cisco IOS

Aqui está o exemplo de saída:

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

…

Informações Relacionadas

- Navegador de objeto SNMP Navigator

- Suporte Técnico e Documentação - Cisco Systems