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

atサブツリー(1.3.6.1.2.1.3

 atサブツリーの配下には,IPアドレスと物理的なアドレス(MACアドレスなど)との対応表を保持するオブジェクトが含まれる。しかしRFC1213では,atサブツリーは非推奨となっており,過去との互換性のためだけに使われる。よって本稿での説明は割愛する。

 IPネットワークの場合,次に説明するipサブツリー1.3.6.1.2.1.4)のipNetToMediaTableサブツリー(1.3.6.1.2.4.22)以下に,IPアドレスと物理的なアドレスとの対応表を含むオブジェクトが存在するので,必要があればそちらの情報を利用すればよい。

ipサブツリー(1.3.6.1.2.1.4

 ipサブツリーは,IP情報を保持する階層ツリーだ。interfacesサブツリー1.3.6.1.2.1.3)と同じく,ネットワークを流れるパケット数のほか,各インタフェースに割り当てられたIPアドレスや物理アドレス,そして,ルーティング情報なども保存されている。ipサブツリーはTable 4に示すように,多大なオブジェクトを含む。

Table 4 ipサブツリー(1.3.6.1.2.1.4
OID 1.3.6.1.2.1.4.1
サブツリー名 ipForwarding
用途 ゲートウェイとして動作し,パケット中継がされているかどうかのフラグ。1で中継していることを,0で中継していないことを示す。たとえば2枚のネットワークカードを装着し,ゲートウェイとして動作させている場合には,1となる
OID 1.3.6.1.2.1.4.2
サブツリー名 ipDefaultTTL
用途 IPパケットのTTL(生存時間)に設定されるデフォルト値
OID 1.3.6.1.2.1.4.3
サブツリー名 ipInReceives
用途 全インタフェースを通じて取得したパケットの総数(エラーパケットも含む)
OID 1.3.6.1.2.1.4.4
サブツリー名 ipInHdrErrors
用途 全インタフェースを通じて取得したパケットのうち,ヘッダにエラーがあったために破棄したパケット数
OID 1.3.6.1.2.1.4.5
サブツリー名 ipInAddrErrors
用途 全インタフェースを通じて取得したパケットのうち,宛先のIPアドレスが無効であったために破棄したパケット数
OID 1.3.6.1.2.1.4.6
サブツリー名 ipForwDatagrams
用途 (ゲートウェイとして動作しているときに)中継したパケットの総数
OID 1.3.6.1.2.1.4.7
サブツリー名 ipInUnknownProtos
用途 全インタフェースを通じて取得したパケットのうち,プロトコルが不明であったため破棄したパケット数
OID 1.3.6.1.2.1.4.8
サブツリー名 ipInDiscards
用途 パケットを受信したものの,受信バッファ不足などで破棄してしまったパケット数
OID 1.3.6.1.2.1.4.9
サブツリー名 ipInDelivers
用途 正常に受け取ったIPパケット(ICMP含む)の総数
OID 1.3.6.1.2.1.4.10
サブツリー名 ipOutRequests
用途 送信を試みたIPパケット(ICMP)の総数(中継パケットは含まない)
OID 1.3.6.1.2.1.4.11
サブツリー名 ipOutDiscards
用途 送信バッファ不足などで送信できなかったパケットの総数
OID 1.3.6.1.2.1.4.12
サブツリー名 ipOutNoRoutes
用途 送信先への経路(ルーティング情報)が不明であるため送信できなかったパケットの総数
OID 1.3.6.1.2.1.4.13
サブツリー名 ipReasmTimeout
用途 フラグメントされたパケットを再構築するためにバッファに保持しておく最大秒数
OID 1.3.6.1.2.1.4.14
サブツリー名 ipReasmReqds
用途 フラグメントの再構築が必要とされたパケット数
OID 1.3.6.1.2.1.4.15
サブツリー名 ipReasmOKs
用途 フラグメントが正しく再構築できたパケット数
OID 1.3.6.1.2.1.4.16
サブツリー名 ipReasmFails
用途 フラグメントが正しく再構築できなかったパケット数
OID 1.3.6.1.2.1.4.17
サブツリー名 ipFragOKs
用途 正しくフラグメントされたパケット数
OID 1.3.6.1.2.1.4.18
サブツリー名 ipFragFails
用途 正しくフラグメントできなかったパケット数
OID 1.3.6.1.2.1.4.19
サブツリー名 ipFragCreates
用途 作成されたフラグメントパケット数
OID 1.3.6.1.2.1.4.20
サブツリー名 ipAddrTable
用途 IPアドレス情報を含む階層ツリー。下位にipAddrEntryサブツリーを含む。値はない。機器に設定されているIPアドレスの数だけ配列状に構成される
OID 1.3.6.1.2.1.4.20.1
サブツリー名 ipAddrEntry
用途 下位にIPアドレス情報を含むための階層ツリー。値はない
OID 1.3.6.1.2.1.4.20.1.aaa.bbb.ccc.ddd
サブツリー名 ipAdEntAddr
用途 それぞれのIPアドレス。値はaaa.bbb.ccc.ddd。これが配列のインデックス値になる
OID 1.3.6.1.2.1.4.20.2.aaa.bbb.ccc.ddd
サブツリー名 ipAdEntIfIndex
用途 このIPアドレスに割り当てられているインタフェースのインデックス番号。interfacesサブツリー下にあるifIndexの値と同じ
OID 1.3.6.1.2.1.4.20.3.aaa.bbb.ccc.ddd
サブツリー名 ipAdEntNetMask
用途 このIPアドレスに設定されたサブネットマスク値
OID 1.3.6.1.2.1.4.20.4.aaa.bbb.ccc.ddd
サブツリー名 ipAdEntBcastAddr
用途 このIPアドレスに設定されたブロードキャストアドレスの値
OID 1.3.6.1.2.1.4.20.5.aaa.bbb.ccc.ddd
サブツリー名 ipAdEntReasmMaxSize
用途 このIPアドレスを通じて送受信できるIPデータグラムの最大バイト数(フラグメントが必要とされる限界バイト数)
OID 1.3.6.1.2.1.4.21
サブツリー名 ipRouteTable
用途 IPルーティング情報を含む階層ツリー。下位にipRouteTableサブツリーを含む。値はない。機器に設定されているルーティング情報の数だけ配列状に構成される
OID 1.3.6.1.2.1.4.21.1
サブツリー名 ipRouteEntry
用途 下位にルーティング情報を含むための階層ツリー。値はない
OID 1.3.6.1.2.1.4.21.1.aaa.bbb.ccc.ddd
サブツリー名 ipRouteDest
用途 ルーティング情報の到達先のIPアドレス。値はaaa.bbb.ccc.ddd。デフォルトゲートウェイの場合,0.0.0.0。これが配列のインデックス値になる
OID 1.3.6.1.2.1.4.21.2.aaa.bbb.ccc.ddd
サブツリー名 ipRouteIfIndex
用途 このルーティング情報に関連するインタフェースのインデックス番号。interfacesサブツリー下にあるifIndexの値と同じ
OID 1.3.6.1.2.1.4.21.3.aaa.bbb.ccc.ddd
サブツリー名 ipRouteMetric1
用途 このルーティング情報のメトリック値(優先順位)
OID 1.3.6.1.2.1.4.21.4.aaa.bbb.ccc.ddd
サブツリー名 ipRouteMetric2
用途 このルーティング情報の代替メトリック値その1
OID 1.3.6.1.2.1.4.21.5.aaa.bbb.ccc.ddd
サブツリー名 ipRouteMetric3
用途 このルーティング情報の代替メトリック値その2
OID 1.3.6.1.2.1.4.21.6.aaa.bbb.ccc.ddd
サブツリー名 ipRouteMetric4
用途 このルーティング情報の代替メトリック値その3
OID 1.3.6.1.2.1.4.21.7.aaa.bbb.ccc.ddd
サブツリー名 ipRouteNextHop
用途 このルーティング情報の次の到達先となるIPアドレス。いい換えればゲートウェイのIPアドレス
OID 1.3.6.1.2.1.4.21.8.aaa.bbb.ccc.ddd
サブツリー名 ipRouteType
用途 このルーティング情報のルーティングタイプ。1(その他)2(ルートなし),3(直接),4(非直接。ゲートウェイを経由する場合など)のいずれかの値
OID 1.3.6.1.2.1.4.21.9.aaa.bbb.ccc.ddd
サブツリー名 ipRouteProto
用途 このルーティング情報のルーティングプロトコル。1(その他),2(ローカル,静的なルーティング),5(EGP),6(GGP),8(RIP)など。取りうるすべての値についてはRFC1213を参照のこと
OID 1.3.6.1.2.1.4.21.10.aaa.bbb.ccc.ddd
サブツリー名 ipRouteAge
用途 このルーティング情報が有効になってから経過した秒数
OID 1.3.6.1.2.1.4.21.11.aaa.bbb.ccc.ddd
サブツリー名 ipRouteMask
用途 このルーティング情報のサブネットマスク値。デフォルトゲートウェイの場合,0.0.0.0
OID 1.3.6.1.2.1.4.21.12.aaa.bbb.ccc.ddd
サブツリー名 ipRouteMetric5
用途 このルーティング情報の代替メトリック値その4
OID 1.3.6.1.2.1.4.21.13.aaa.bbb.ccc.ddd
サブツリー名 ipRouteInfo
用途 このルーティング情報の追加情報を示すオブジェクトのOID。追加情報がない場合には0.0
OID 1.3.6.1.2.1.4.22
サブツリー名 ipNetToMediaTable
用途 IPアドレスから物理アドレスに変換するためのマッピングテーブルを含む階層ツリー。下位にipNetToMediaEntry階層ツリーを含む。値はない
OID 1.3.6.1.2.1.4.22.1
サブツリー名 ipNetToMediaEntry
用途 下位にIPアドレスから物理アドレスに変換するための情報を含むための階層ツリー。値はない
OID 1.3.6.1.2.1.4.22.1.1.x.aaa.bbb.ccc.ddd
サブツリー名 ipNetToMediaIfIndex
用途 この変換テーブルに関連するインタフェースのインデックス番号。interfacesサブツリー下にあるifIndexの値と同じ。xの値とも同じ
OID 1.3.6.1.2.1.4.22.1.2.x.aaa.bbb.ccc.ddd
サブツリー名 ipNetToMediaPhysAddress
用途 このIPアドレスに関連付けられる物理アドレス(MACアドレスなど)
OID 1.3.6.1.2.1.4.22.1.3.x.aaa.bbb.ccc.ddd
サブツリー名 ipNetToMediaNetAddress
用途 このIPアドレス自身。aaa.bbb.ccc.dddと同じ
OID 1.3.6.1.2.1.4.22.1.4.x.aaa.bbb.ccc.ddd
サブツリー名 ipNetToMediaType
用途 IPアドレスと物理アドレスとの対応設定方法。1(その他),2(無効),3(動的割り当て),4(静的割り当て)のいずれか
OID 1.3.6.1.2.1.4.23
サブツリー名 ipRoutingDiscards
用途 (動的なルーティングプロトコルを使っている場合に)有効だったが破棄されてしまったルーティングテーブルの総数。
xはインタフェースのインデックス番号。aaa.bbb.ccc.dddはIPアドレス

 ipサブツリーはinterfacesサブツリーと同様に,いくつかの項目がインデックスの付いた階層構造になっている。階層構造をとっているのは,IPアドレス情報が格納されているipAddrTableサブツリー,ルーティング情報が格納されているipRouteTableサブツリー,IPアドレスと物理アドレスとの変換情報が格納されているipNetToMediaTypeサブツリーだ。

 ここでは,ルーティング情報が格納されているipRouteTableサブツリーを見てみよう。ipRouteTableサブツリーには,1.3.6.1.2.1.4.21というOIDが割り当てられている。そこでsnmpwalkコマンドを使って,その一覧を取得してみる。

$ snmpwalk localhost private .1.3.6.1.2.1.4.21 ip.ipRouteTable.ipRouteEntry.ipRouteDest.0.0.0.0 = IpAddress: 0.0.0.0
ip.ipRouteTable.ipRouteEntry.ipRouteDest.127.0.0.0 = IpAddress: 127.0.0.0
ip.ipRouteTable.ipRouteEntry.ipRouteDest.192.168.0.0 = IpAddress: 192.168.0.0
ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex.0.0.0.0 = 2
ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex.127.0.0.0 = 2
ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex.192.168.0.0 = 2
ip.ipRouteTable.ipRouteEntry.ipRouteMetric1.0.0.0.0 = 1
ip.ipRouteTable.ipRouteEntry.ipRouteMetric1.127.0.0.0 = 0
ip.ipRouteTable.ipRouteEntry.ipRouteMetric1.192.168.0.0 = 0
ip.ipRouteTable.ipRouteEntry.ipRouteNextHop.0.0.0.0 = IpAddress: 192.168.0.1
ip.ipRouteTable.ipRouteEntry.ipRouteNextHop.127.0.0.0 = IpAddress: 0.0.0.0
ip.ipRouteTable.ipRouteEntry.ipRouteNextHop.192.168.0.0 = IpAddress: 0.0.0.0
ip.ipRouteTable.ipRouteEntry.ipRouteType.0.0.0.0 = indirect(4)
ip.ipRouteTable.ipRouteEntry.ipRouteType.127.0.0.0 = direct(3)
ip.ipRouteTable.ipRouteEntry.ipRouteType.192.168.0.0 = direct(3)
ip.ipRouteTable.ipRouteEntry.ipRouteProto.0.0.0.0 = local(2)
ip.ipRouteTable.ipRouteEntry.ipRouteProto.127.0.0.0 = local(2)
ip.ipRouteTable.ipRouteEntry.ipRouteProto.192.168.0.0 = local(2)
ip.ipRouteTable.ipRouteEntry.ipRouteMask.0.0.0.0 = IpAddress: 0.0.0.0
ip.ipRouteTable.ipRouteEntry.ipRouteMask.127.0.0.0 = IpAddress: 255.0.0.0
ip.ipRouteTable.ipRouteEntry.ipRouteMask.192.168.0.0 = IpAddress: 255.255.255.0
ip.ipRouteTable.ipRouteEntry.ipRouteInfo.0.0.0.0 = OID: .ccitt.zeroDotZero.0
ip.ipRouteTable.ipRouteEntry.ipRouteInfo.127.0.0.0 = OID: .ccitt.zeroDotZero.0
ip.ipRouteTable.ipRouteEntry.ipRouteInfo.192.168.0.0 = OID: .ccitt.zeroDotZero.

 上は,ネットワークカードを1枚装着していて,そのネットワーク番号が192.168.0.0/24192.168.0.0/255.255.255.255),デフォルトゲートウェイが192.168.0.1の環境でsnmpwalkコマンドを実行した結果だ。

 この結果を見ると,“0.0.0.0”,“192.168.0.0”,“127.0.0.0”という3つの配列要素があることがわかる。これらはそれぞれデフォルトゲートウェイ,192.168.0.0/24のネットワーク,ループバックインタフェースに相当する。このように,ipサブツリーには,それぞれの値が,配列状に保存されている。

 ここではsnmpwalkコマンドを使って,ipサブツリーの下にあるipRouteTableサブツリーを参照したが,もちろん,snmpgetコマンドを使って特定のOIDを指定すれば,その特定のオブジェクトに保存されている値を取得することもできる。

 たとえば,デフォルトゲートウェイとなっているIPアドレスを取得したいとしよう。各ルーティング情報のゲートウェイ情報は,“1.3.6.1.2.1.4.21.1.7.aaa.bbb.ccc.ddd”というOIDをもつオブジェクトに格納されている。aaa.bbb.ccc.dddは,ルーティング情報の到着先となるIPアドレスで,デフォルトゲートウェイの場合には,“0.0.0.0”だ。よって,次のようにsnmpgetコマンドを実行すればよい。

$ snmpget localhost private .1.3.6.1.2.1.4.21.1.7.0.0.0.0
ip.ipRouteTable.ipRouteEntry.ipRouteNextHop.0.0.0.0 = IpAddress: 192.168.0.1

 この結果を見ると,このホストのデフォルトゲートウェイは,192.168.0.1に設定されているということがわかる。

 などといろいろ説明してきたが,小規模なシステムでは,静的なルーティングが設定されることが多く,あまりルーティング情報を監視したい場面はないだろう。

 それよりネットワーク監視として重要なのは,ipInHdrErrors1.3.6.1.2.1.4.4)やipInAddrErrors1.3.6.1.2.1.4.5)といった壊れたり宛先不明となっているパケット数だ。あまりにこれらの数が多いようだと,ネットワークがハードウェア的に不安定であったり,第三者があえて壊れたIPパケットを送信して攻撃を仕掛けているといった状況が考えられるからだ。

PREV 14/36 NEXT