この特集のトップページへ
>
この回のトップページへ
●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 |
用途 |
ネットワークインタフェースの数。ループバック(lo:127.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 |
用途 |
配下に各インタフェースの情報(下に示すifIndex,ifDescrなど)を含むための階層ツリー。値はない |
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)。