この特集のトップページへ
この回のトップページへ

interfacesサブツリー(1.3.6.1.2.1.2

 インタフェースの情報を保持するサブツリーだ。このサブツリーには,Table 3に示す各サブツリーが含まれる。

Table 3 interfacesサブツリー(1.3.6.1.2.1.2

OID 1.3.6.1.2.1.2.1
サブツリー名 ifNumber
用途 ネットワークインタフェースの数。ループバック(lo127.0.0.1)も含まれるので,1枚のネットワークカードを装着している場合,値は2となる
OID 1.3.6.1.2.1.2.2
サブツリー名 ifTable
用途 配下にifEntryサブツリーを含むための階層ツリー。値はない
OID 1.3.6.1.2.1.2.2.1
サブツリー名 ifEntry
用途 配下に各インタフェースの情報(下に示すifIndexifDescrなど)を含むための階層ツリー。値はない
OID 1.3.6.1.2.1.2.2.1.1.x
サブツリー名 ifIndex
用途 各インタフェースに割り当てられる固有の値。インデックス番号。1〜ifNumberまでのいずれかの値。xと同じ値である
OID 1.3.6.1.2.1.2.2.1.2.x
サブツリー名 ifDescr
用途 各インタフェースの説明文。“eth0”,“lo”など
OID 1.3.6.1.2.1.2.2.1.3.x
サブツリー名 ifType
用途 各インタフェースの種類。Ethernetの場合には6,ループバックの場合は24,PPPの場合は23など。すべての値についてはRFC1213を参照
OID 1.3.6.1.2.1.2.2.1.4.x
サブツリー名 ifMtu
用途 各インタフェースのMTUの値
OID 1.3.6.1.2.1.2.2.1.5.x
サブツリー名 ifSpeed
用途 各インタフェースがサポートする帯域速度(bps)
OID 1.3.6.1.2.1.2.2.1.6.x
サブツリー名 ifPhysAddress
用途 各インタフェースの物理アドレス。たとえばインタフェースカードのMACアドレスなど
OID 1.3.6.1.2.1.2.2.1.7.x
サブツリー名 ifAdminStatus
用途 各インタフェースの設定情報。アップリンク(1),ダウンリンク(2),テスト中(3)のいずれかの値
OID 1.3.6.1.2.1.2.2.1.8.x
サブツリー名 ifOperStatus
用途 各インタフェースの現在の情報。アップリンク(1),ダウンリンク(2),テスト中(3)のいずれか
OID 1.3.6.1.2.1.2.2.1.9.x
サブツリー名 ifLastChange
用途 各インタフェースがifOperStatusで示された状態に入ったときのsysUpTimeオブジェクト(systemサブツリー以下にある)の値
OID 1.3.6.1.2.1.2.2.1.10.x
サブツリー名 ifInOctets
用途 各インタフェースが受信した総バイト数
OID 1.3.6.1.2.1.2.2.1.11.x
サブツリー名 ifInUcastPkts
用途 各インタフェースが受信したユニキャストパケットのパケット総数
OID 1.3.6.1.2.1.2.2.1.12.x
サブツリー名 ifInNUcastPkts
用途 各インタフェースが受信したユニキャストではないパケット(ブロードキャストパケットなど複数のホストに同時に転送するパケット)のパケット総数
OID 1.3.6.1.2.1.2.2.1.13.x
サブツリー名 ifInDiscards
用途 各インタフェースが受信時に破棄したパケットの総数(エラーパケットは除く)
OID 1.3.6.1.2.1.2.2.1.14.x
サブツリー名 ifInErrors
用途 各インタフェースが受信したエラーパケットの総数
OID 1.3.6.1.2.1.2.2.1.15.x
サブツリー名 ifInUnknownProtos
用途 各インタフェースが受信したパケットのうちプロトコル不明で破棄したパケットの総数
OID 1.3.6.1.2.1.2.2.1.16.x
サブツリー名 ifOutOctets
用途 各インタフェースが送信した総バイト数
OID 1.3.6.1.2.1.2.2.1.17.x
サブツリー名 ifOutUcastPkts
用途 各インタフェースが送信したユニキャストパケットのパケット総数
OID 1.3.6.1.2.1.2.2.1.18.x
サブツリー名 ifOutNUcastPkts
用途 各インタフェースが送信したユニキャストではないパケット(ブロードキャストパケットなど)のパケット総数
OID 1.3.6.1.2.1.2.2.1.19.x
サブツリー名 ifOutDiscards
用途 各インタフェースが送信時に破棄したパケットの総数(エラーパケットは除く)
OID 1.3.6.1.2.1.2.2.1.20.x
サブツリー名 ifOutErrors
用途 各インタフェースが送信したエラーパケットの総数
OID 1.3.6.1.2.1.2.2.1.21.x
サブツリー名 ifOutQLen
用途 各インタフェースの出力バッファに溜まっている出力待ちパケットの数
OID 1.3.6.1.2.1.2.2.1.22.x
サブツリー名 ifSpecific
用途 各インタフェースの追加情報を保存しているオブジェクトのOID。追加情報がない場合,“0.0”が設定される

xはインタフェースのインデックス番号。最初のインタフェースから順に,1,2,…となる。

 interfacesサブツリーの配下には,ネットワークの情報を保持するオブジェクトが含まれるので,SNMPを使ってネットワークの帯域情報を調べる場合には,頻繁に利用される。

 interfacesサブツリーは,オブジェクトが配列のような階層構造になっていて,少々わかりにくい。そこで少し具体例を挙げて説明する。

 まず装着されているインタフェースの総数は,ifNumberオブジェクト(1.3.6.1.2.1.2.1)に格納されている。この値は,snmpgetコマンドを次のように使えば取得できる。

$ snmpget localhost private .1.3.6.1.2.1.2.1.0
interfaces.ifNumber.0 = 2

 取得できるインタフェースの数には,ループバックインタフェース(lo)も含まれるので,実際に装着しているインタフェースの数よりも1つ多い数になる。もちろんPPPやSLIPをインストールしていれば,それも数として数えられる。

 各インタフェースの情報は,“1.3.6.1.2.1.2.2.1.情報番号.インタフェース番号”となる(Table 3を参照)。たとえば,1番目のインタフェースの送信バイト数(情報番号16:“1.3.6.1.2.1.2.1.16.インタフェース番号”)を得るには,次のようにする。

$ snmpget localhost private .1.3.6.1.2.1.2.2.1.16.1
interfaces.ifTable.ifEntry.ifOutOctets.1 = Counter32: 1446493

 もちろん表示される値(送信バイト数)は,そのインタフェースが実際に送信したバイト数だから,上に表記した値になるとは限らない。上の結果は,1番目のインタフェースが,1446493バイトを送信したという統計情報を表示しただけに過ぎない。

 同様にして,2番目のインタフェースの送信バイト数を取得したいのであれば,次のようにすればよい。

$ snmpget localhost private .1.3.6.1.2.1.2.2.1.16.2
interfaces.ifTable.ifEntry.ifOutOctets.2 = Counter32: 235041

 このように,interfacesサブツリーは,最後にインタフェース番号を“.”で区切って付けることにより,それぞれのインタフェースに関する情報を取得することができるようになっている。

 しかしこのような配列のように構成されている情報を1つ1つ取得してゆくのは面倒なので,snmpgetコマンドを使うよりも,snmpwalkコマンドを使ってinterfacesサブツリー以下の一覧をすべて取得してしまったほうが簡単だろう。それには,snmpwatlkコマンドで,interfacesサブツリーのOIDである“1.3.6.1.2.1.2”を指定すればよい(List 1)。

PREV 13/36 NEXT