Протокол IP : Протокол SNMP

Использование SNMP для получения номера порта из MAC-адреса на коммутаторе Catalyst

5 апреля 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (22 августа 2015) | Отзыв


Содержание


Введение

В этом документе описан способ получения номера порта на коммутаторе Cisco Catalyst по известному MAC-адресу посредством протокола SNMP.

Предварительные условия

Требования

Для использования данного документа требуется знание следующих тем:

  • Как получить VLAN от Коммутатора Catalyst с использованием SNMP

  • Как использовать индексацию строки имени и пароля с SNMP

  • Общее использование команды SNMP get и команды walk

Используемые компоненты

Этот документ применяется к Коммутаторам Catalyst, которые выполняют обычную операционную систему Catalyst (CatOS) или Cisco программное обеспечение IOS�. Поддержки программного обеспечения BRIDGE-MIB и IF-MIB.

Сведения, содержащиеся в данном документе, касаются следующих версий программного и аппаратного обеспечения:

  • Catalyst 3524XL, который выполняет WC5a программного обеспечения Cisco IOS версии 12.0(5)

  • Версия 5.0.6 Net-SNMP

    Примечание: Для получения этого программного обеспечения обратитесь к Net-SNMP leavingcisco.com.

Сведения, представленные в этом документе, были получены от устройств, работающих в специальной лабораторной среде. Все устройства, описанные в этом документе, были запущены с чистой (стандартной) конфигурацией. В рабочей сети необходимо изучить потенциальное воздействие всех команд до их использования.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Технические рекомендации Cisco. Условные обозначения.

Общие сведения

Для получения дополнительной информации о том, как сделать запрос таблицы ассоциативной памяти, VLAN, и все родственные MIB, такие как CISCO-VTP-MIB и BRIDGE-MIB, обращаются к разделу Общие сведения документа, Как Получить Динамические записи CAM (Таблица CAM) для Коммутаторов Catalyst Использование SNMP.

Подробные данные переменных MIB, который включает идентификаторы объекта (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 }

Получите номер порта, на котором был изучен MAC-адрес

Пошаговые инструкции

Выполните шаги в этом разделе для использования SNMP для получения номера порта, на котором был изучен MAC-адрес. Полагайте, что номер порта находится в VLAN1.

Примечание: В командах в этом разделе:

  • public является строкой имени и пароля для чтения.

  • @1 – часть строкового пароля только для чтения, относящаяся к сети VLAN 1.

  • crumpy является именем хоста устройства.

    Примечание: Можно также использовать IP-адрес для этого имени хоста.

Примечание: Раздел Заключение использует значения, которые появляются курсивом в выходных данных command.

  1. Получите VLAN. Используйте команду snmpwalk на объекте (.1.3.6.1.4.1.9.9.46.1.3.1.1.2) vtpVlanState:

    %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)
    ...

    Примечание: Эта команда использует индексацию строки имени и пароля. Команда также использует vtpVlanState, который имеет OID 1.3.6.1.4.1.9.9.46.1.3.1.1.2. При загрузке MIB в систему управления сетью (NMS) можно использовать имя объекта вместо OID. Выполните эту команду вместо этого:

    %snmpwalk -c public@1 crumpy vtpVlanState
    

    Примечание: Можно также использовать имена объекта в шагах 2 - 6.

  2. Выполните эту команду для получения таблицы MAC-адресов путем полагания, что порт принадлежит 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
    ...

    Примечание: Предоставьте соответствующий номер виртуальной локальной сети (VLAN) после строки имени и пароля. В данном примере это - VLAN1.

    Списки команд все MAC-адреса, которые были изучены на всех портах, которые принадлежат VLAN 1.

  3. Выполните эту команду для определения номера порта моста для 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
    ...

    Примечание: VLAN 1 является dot1dTpFdbPort, или.1.3.6.1.2.1.17.4.3.1.2.

  4. Выполните эту команду для сопоставления порта моста с 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

    Эта команда делает запрос dot1dBasePortIfIndex, который имеет OID .1.3.6.1.2.1.17.1.4.1.2.

  5. Используйте команду walk с ifName для корреляции значения ifIndex с названием правильного порта.

    Введите следующую команду:

    Примечание: IfName имеет 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. Свяжите MAC-адрес с портом, на котором был изучен адрес.

    • Начиная с шага 1 MAC-адрес имеет следующее значение:

      17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08
    • От Шага 2 порт моста говорит, что MAC-адрес принадлежит номеру порта моста 13:

      17.4.3.1.2.0.0.12.7.172.8 = 13 
    • С шага 3 порт моста с номером 13 имеет номер ifIndex 2:

      17.1.4.1.2.13 = 2
    • IfIndex 2 из шага 4 соответствует порту Fast Ethernet 0/1:

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

Заключение

MAC-адрес 00 00 0C 07 AC 08 изучен на порту Fa0/1.

Сравните это заключение с выходными данными от:

  • Команда show cam dynamic для Коммутаторов CatOS

  • Команда show mac для коммутаторов программного обеспечения Cisco IOS

Вот пример выходных данных:

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
…

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 44800