IP : IP アプリケーション サービス

SNMP のテーブル インデックス値について

2008 年 3 月 27 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2005 年 11 月 1 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
ifIndex 入門
オブジェクトのポーリング
      ifIndex に基づいたオブジェクトのポーリング
      ifIndex によってテーブルにインデックスが付けられていない場合、またはテーブルに相互にインデックスが付けられている場合のオブジェクトのポーリング
IF-MIB への BRIDGE-MIB の関連付け
関連するシスコ サポート コミュニティ ディスカッション

概要

Simple Network Management Protocol(SNMP; 簡易ネットワーク管理プロトコル)オブジェクトをポーリングする場合、何がポーリングされているのかを確実に認識することが必要になることがあります。これを完全に理解するには、ポーリングされているオブジェクトをポーリングを希望する対象に関連付ける方法を理解する必要があります。このドキュメントでは、オブジェクトをテーブルにグループ化するために、SNMP でインデックスを使用する基本的な方法を説明しています。

前提条件

要件

このドキュメントの読者は次の項目に関する知識が必要です。

  • SNMP に関する一般的な知識

  • SNMP を介して Cisco デバイスをクエリーするために使用されるソフトウェア

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • UCD SNMP バージョン 4.2

  • Cisco IOS(R) ソフトウェア リリース 5.5(7) が稼働する Cisco Catalyst 5509

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定から作業を開始しています。対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

ifIndex 入門

SNMP を扱う際に最初に理解することの 1 つが、ifIndex です。これはすべてのオブジェクトの主キーです。すべてのインターフェイス(物理および論理)が分割され、値が割り当てられる方法としてこれを認識します。この値は、デバイスのブート中に割り当てられ、変更できない場合があります。この特定のインターフェイスに情報をポーリングする必要がある場合、その割り当てられた値が使用される必要があります。

IfIndex は IF-MIB(RFC 1213leavingcisco.com)で次のように定義されています。

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

!--- これが関連する行です。

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

!--- 出力を省略。


ifName(ルータ上の ifDescr)のポーリングからの出力内で、ifName の後に、各行に割り当てられている番号があることに注意してください。これは、同じ行内の実際のインターフェイスに割り当てられている ifIndex です。つまり、ポーリングの 2 行目であるポート 7/4 に 11 の ifIndex が割り当てられています。ifIndex 処理されたオブジェクトからポート 7/4 に関する情報が必要な場合は、11 のインデックスを使用します。これは、同じ ifIndex の値に対応するそのオブジェクトのインスタンスを取得するために、MIB Object Identifier(OID; オブジェクト ID)の後に .11 を追加することを意味します。

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 ごとに構築されています。したがって、非 vlan1 環境ではコミュニティ「public@vlan-id」を使用する必要があります。

IF-MIB への BRIDGE-MIB の関連付け

BRIDGE-MIB で snmpwalk を発行すると、インデックスに関して次の出力例が表示されます。これを ifIndex にマッピングするには、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 には 11 の ifIndex および .388 の dot1dBasePortIfIndex(BRIDGE-MIB のインデックス)があるものと判断できます。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


Document ID: 40700