목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

표기 규칙

ifIndex 시작하기

폴링 개체

ifIndex를 기반으로 객체 폴링

ifIndex에 의해 테이블이 인덱싱되지 않았거나 교차 인덱스된 경우 폴링 개체

BRIDGE-MIB와 IF-MIB의 상관관계

관련 정보

소개

SNMP(Simple Network Management Protocol) 객체를 폴링할 때 폴링되는 대상을 정확하게 알아야 합니다.이를 완전히 이해하려면 폴링되는 객체와 폴링할 객체의 상관 관계를 파악하는 방법을 알아야 합니다.이 문서에서는 SNMP에서 인덱스를 사용하여 개체를 테이블로 그룹화하는 방법에 대한 기본 정보를 다룹니다.

사전 요구 사항

요구 사항

이 문서의 독자는 다음 주제에 대해 알고 있어야 합니다.

- SNMP에 대한 일반적인 지식

- SNMP를 통해 Cisco 디바이스를 쿼리하는 데 사용되는 소프트웨어

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- UCD SNMP 버전 4.2

- Cisco Catalyst 5509 with Cisco IOS® Software 릴리스 5.5(7)

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.

표기 규칙

문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.

ifIndex 시작하기

SNMP를 다룰 때 가장 먼저 알아야 할 것 중 하나는 ifIndex입니다.이는 모든 개체의 기본 키입니다.모든 인터페이스(물리적 및 논리적)가 분리되어 값을 할당하는 방법을 고려하십시오.이 값은 디바이스를 부팅하는 동안 할당되며 변경되지 않을 수 있습니다.특정 인터페이스에 대해 폴링해야 할 정보가 있으면 할당된 값을 사용해야 합니다.

IfIndex가 IF-MIB(RFC 1213 )에서 다음과 같은 방식으로 정의된 경우:

InterfaceIndex ::= TEXTUAL-CONVENTION

DISPLAY-HINT "d"

STATUS       current

DESCRIPTION

"A unique value, greater than zero, for each interface

or interface sub-layer in the managed system.  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."

SYNTAX       Integer32 (1..2147483647)

모든 MIB의 경우 테이블을 구성하는 인덱스를 빠르게 확인할 수 있는 방법은 테이블 항목을 보는 것입니다.

ifEntry OBJECT-TYPE

SYNTAX      IfEntry

MAX-ACCESS  not-accessible

STATUS      current

DESCRIPTION

"An entry containing management information applicable

to a particular interface."

INDEX   { ifIndex }

::= { ifTable 1 }

MIB 및 테이블 항목이 주어진 경우 테이블이 인덱싱되는 방식을 결정할 수 있습니다.다음 섹션에서는 ifIndex의 예를 제공합니다.

폴링 개체

ifIndex를 기반으로 객체 폴링

스위치의 포트 7/4에 대해 ifIndex 기반 객체(ifName)를 폴링하기 위해 snmpwalk 명령을 실행하면 다음 출력이 표시됩니다.

sj-cse-568: snmpwalk 172.16.99.60 public ifname

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.1 = sc0

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.2 = sl0

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.3 = VLAN-1

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.4 = VLAN-1002

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.5 = VLAN-1004

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.6 = VLAN-1005

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.7 = VLAN-1003

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.8 = 7/1

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.9 = 7/2

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.10 = 7/3

!--- This is the relevant line:

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.11 = 7/4

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.12 = 7/5

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.13 = 7/6

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.14 = 7/7

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.15 = 7/8

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.16 = 7/9

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.17 = 7/10

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.18 = 7/11

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.19 = 7/12

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.20 = ATM8/0

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.22 = /A

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.23 = /B

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.24 = Nu0

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.25 = LEC/ATM8/0.10

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.532 = 3/1

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.533 = 3/2

!--- Output suppressed.

ifName(ifDescr on router) 폴링의 해당 출력에서 ifName 뒤에 각 행에 번호가 연결되어 있음을 확인합니다.동일한 행의 실제 인터페이스에 할당된 ifIndex입니다.즉, 폴링의 두 번째 행인 포트 7/4에 ifIndex 11이 할당됩니다. ifIndexed 객체에서 포트 7/4에 대한 정보를 원하는 경우 인덱스 11을 사용합니다. 즉, MIB 객체 식별자(OID)의 끝에 .11을 추가하여 동일한 ifIndex 값에 해당하는 객체의 인스턴스를 검색합니다.

ifIndex에 의해 테이블이 인덱싱되지 않았거나 교차 인덱스된 경우 폴링 개체

때때로 테이블은 BRIDGE-MIB와 같은 ifIndex로 인덱싱되지 않습니다.이 출력은 색인화된 방식을 검사합니다.

dot1dBasePortEntry OBJECT-TYPE

SYNTAX  Dot1dBasePortEntry

ACCESS  not-accessible

STATUS  mandatory

DESCRIPTION

"A list of information for each port of the

bridge."

REFERENCE

"IEEE 802.1D-1990: Section 6.4.2, 6.6.1"

INDEX  { dot1dBasePort }

::= { dot1dBasePortTable 1 }

이 출력은 dot1dBasePortEntry가 dot1dBasePort에 의해 인덱싱되었음을 보여줍니다.그러면 ifIndex로 어떻게 변환됩니까?BRIDGE-MIB는 dot1dBasePortIfIndex라는 개체에 액세스합니다.객체는 다음과 같은 방식으로 정의됩니다.

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 }

이 출력은 BRIDGE-MIB에서 IF-MIB로의 상관관계를 분석하는 방법을 보여줍니다.다음 예는 이 모든 것이 어떻게 일치하는지를 보여줍니다.

참고: BRIDGE-MIB는 VLAN별로 구축되므로 커뮤니티 "public@vlan-id"는 비VLAN1 환경에 사용해야 합니다.

BRIDGE-MIB와 IF-MIB의 상관관계

BRIDGE-MIB에서 snmpwalk를 실행하면 인덱스에 대한 다음 샘플 출력이 표시됩니다.dot1dBasePortIfIndex(.1.3.6.1.2.1.17.1.4.1.2)을 사용하여 ifIndex에 다시 매핑합니다.ifIndex가 있으면 ifIndex를 기반으로 다른 객체를 폴링하는 데 사용합니다.

sj-cse-568: snmpwalk 172.16.99.60 public .1.3.6.1.2.1.17.1.4.1.2

17.1.4.1.2.203 = 671

17.1.4.1.2.204 = 672

17.1.4.1.2.205 = 673

17.1.4.1.2.206 = 674

17.1.4.1.2.207 = 675

17.1.4.1.2.208 = 676

17.1.4.1.2.209 = 677

17.1.4.1.2.210 = 678

17.1.4.1.2.211 = 679

17.1.4.1.2.212 = 680

17.1.4.1.2.213 = 681

17.1.4.1.2.214 = 682

17.1.4.1.2.215 = 683

17.1.4.1.2.216 = 684

17.1.4.1.2.257 = 581

17.1.4.1.2.385 = 8

17.1.4.1.2.386 = 9

17.1.4.1.2.387 = 10

17.1.4.1.2.388 = 11

17.1.4.1.2.389 = 12

17.1.4.1.2.390 = 13

17.1.4.1.2.391 = 14

17.1.4.1.2.392 = 15

17.1.4.1.2.393 = 16

17.1.4.1.2.394 = 17

17.1.4.1.2.395 = 18

17.1.4.1.2.396 = 19

17.1.4.1.2.449 = 22

굵게 표시된 텍스트 줄(17.1.4.1.2.388 = 11)은 .388이 인덱스임을 나타냅니다.BRIDGE-MIB에서 dot1dBasePortIfIndex 개체를 폴링했으므로 .388은 dot1dBasePortIfIndex입니다.출력 선의 11은 실제로 ifIndex입니다.이 폴링과 이전 폴링에서 정보를 수집하는 경우 포트 7/4에 ifIndex가 11이고 dot1dBasePortIfIndex(Index for BRIDGE-MIB)가 .388인지 확인할 수 있습니다.

관련 정보

- Technical Support - Cisco Systems