SNMPリモート操作の設定
SNMPリモート操作の概要
SNMPリモート操作とは、SNMPを使用してリモートで制御できるルーター上のプロセスです。Junos OSは現在、RFC 2925で定義されているPing MIBとトレースルートMIBの2つのSNMPリモート操作をサポートしています。これらのMIBを使用して、ネットワーク管理システム(NMS)のSNMPクライアントは以下のことが可能になります。
ルーターで一連の操作を開始する
操作が完了したときに通知を受け取る
各操作の結果を収集する
またJunos OSは、ジュニパーネットワークスエンタープライズ固有の拡張 jnxPingMIB および jnxTraceRouteMIBで、これらのMIBに拡張された機能を提供します。 jnxPingMIB と jnxTraceRouteMIBの詳細については、 PING MIB と トレースルートMIBを参照してください。
このトピックでは、次のセクションについて説明します。
SNMP リモート操作の要件
SNMPリモート操作を使用するには、SNMPの規則に慣れている必要があります。また、リモート操作MIBを使用できるようにJunos OSを設定する必要があります。
Ping MIBを開始する前に、 Pingテストの開始を参照してください。
トレースルート MIB を開始する前に、 トレースルート テストの開始を参照してください。
SNMPビューの設定
Junos OSがサポートするすべてのリモート操作MIBには、SNMPクライアントに読み書き権限が必要です。Junos OSのデフォルトのSNMP設定では、そのような権限を持つコミュニティ文字列はクライアントに提供されません。
SNMP コミュニティ文字列の読み書き権限を設定するには、 [edit snmp] 階層レベルで以下のステートメントを含めます。
[edit snmp] community community-name { authorization authorization; view view-name; } view view-name { oid object-identifier (include | exclude); }
例:SNMP ビューの設定
SNMP クライアントに Ping MIB、jnxPing MIB、Traceroute MIB、および jnxTraceRoute MIBへの読み書きアクセスを許可する remote-community という名前のコミュニティを作成するには、[edit snmp]階層レベルで以下のステートメントを含めます。
snmp {
view remote-view {
oid 1.3.6.1.2.1.80 include; # pingMIB
oid 1.3.6.1.4.1.2636.3.7 include; # jnxPingMIB
oid 1.3.6.1.2.1.81 include; # traceRouteMIB
oid 1.3.6.1.4.1.2636.3.8 include; # jnxTraceRouteMIB
}
community remote-community {
view remote-view;
authorization read-write;
}
}
communityステートメントの詳細については、SNMPコミュニティとコミュニティ(SNMP)の設定を参照してください。
viewステートメントの詳細については、MIBビューの設定、ビュー(SNMPコミュニティ)、およびビュー(MIBビューの設定)を参照してください。
リモート操作のトラップ通知を設定する
トラップ通知用のリモート操作 MIB の設定に加えて、Junos OS も設定する必要があります。リモート操作トラップのターゲットホストを指定する必要があります。
SNMPリモート操作のトラップ通知を設定するには、[edit snmp trap-group group-name]階層レベルでcategoriesおよびtargetsステートメントを含めます。
[edit snmp trap-group group-name]
categories {
category;
}
targets {
address;
}
}
例:リモート操作用のトラップ通知を設定する
すべてのリモート操作トラップのターゲットホストとして 172.17.12.213 を指定します。
snmp {
trap-group remote-traps {
categories remote-operations;
targets {
172.17.12.213;
}
}
}
トラップグループの詳細については、 SNMPトラップグループの設定を参照してください。
可変長文字列インデックスを使用する
Junos OSがサポートするリモート操作MIB内のすべての表形式オブジェクトは、タイプ SnmpAdminStringの2つの変数によってインデックスが作成されます。 SnmpAdminStringの詳細については、RFC 2571を参照してください。
Junos OSは、オクテット文字列変数型と異なる方法で SnmpAdminString 処理しません。ただし、インデックスは可変長として定義されています。可変長文字列をインデックスとして使用する場合、文字列の長さをオブジェクト識別子 (OID) の一部として含める必要があります。
例: 可変長文字列インデックスの設定
pingCtlOwnerIndexがbobでpingCtlTestNameがtestであるpingCtlTableの行のpingCtlTargetAddress変数を参照するには、以下のオブジェクト識別子(OID)を使用します。
pingMIB.pingObjects.pingCtlTable.pingCtlEntry.pingCtlTargetAddress."bob"."test" 1.3.6.1.2.1.80.1.2.1.4.3.98.111.98.4.116.101.115.116
Ping MIBの定義の詳細については、RFC 2925を参照してください。
ロギングを有効にする
SNMPリクエストに応答して返されるSNMPエラーコードは、問題の一般的な説明しか提供できません。リモート操作プロセスによってログに記録されたエラーの説明は、多くの場合、問題に関するより詳細な情報を提供し、問題をより迅速に解決するのに役立ちます。このログ記録はデフォルトでは有効になっていません。ログを有効にするには、[edit snmp traceoptions]階層レベルでflag generalステートメントを含めます。
[edit]
snmp {
traceoptions {
flag general;
}
}
リモート操作プロセスが対応できないSNMPリクエストを受信した場合、エラーは /var/log/rmopd ファイルに記録されます。このログファイルを監視するには、コマンドラインインターフェイス(CLI)の動作モードで monitor start rmopd コマンドを発行します。
Junos OSを実行しているリモート監視デバイスにPing MIBを使用する
ping テストは、ローカルホストから送信されたパケットが指定されたホストに到達して返されるかどうかを判断するために使用します。指定されたホストに到達できる場合、ping テストはパケットのおおよその往復時間を提供します。Pingテストの結果は、 pingResultsTable と pingProbeHistoryTableに保存されます。
RFC 2925は、Ping MIBの詳細な権威ある説明であり、Ping MIBのASN.1 MIB定義を提供します。
Pingテストを開始する
このトピックを使用して、ICMP pingテストを起動します。ping テストを開始するには、複数のセット プロトコル データ ユニット(PDU)を使用するか、単一のセット PDU を使用するの 2 つの方法があります。
始める前に
Pingテストを開始する
ping テストを開始するには、 pingCtlTable で行を作成し、 pingCtlAdminStatus を enabled に設定します。 pingCtlAdminStatus を enabled に設定する前に指定する必要がある最小限の情報は次のとおりです。
pingCtlOwnerIndexSnmpAdminStringpingCtlTestNameSnmpAdminStringpingCtlTargetAddressInetAddresspingCtlTargetAddressTypeInetAddressTypepingCtlRowStatusRowStatus
その他の値については、特に指定がない限り、デフォルト値が選択されます。pingCtlOwnerIndexとpingCtlTestNameはインデックスとして使用されるため、その値はオブジェクト識別子(OID)の一部として指定されます。行を作成するには、pingCtlRowStatusをcreateAndWaitに設定するか、まだ存在しない行をcreateAndGoします。pingCtlRowStatusの値activeは、必要な情報がすべて提供され、テストを開始できることを示します。pingCtlAdminStatusをenabledに設定できます。pingCtlRowStatus を active に設定する SNMP Set リクエストは、行に必要な情報が指定されていないか、一貫性がない場合、失敗します。
ビューの設定方法については、 SNMP ビューの設定を参照してください。
変数の順序付け方法については、次のセクションをお読みください。
複数のセットPDUを使用する
複数の Set リクエストPDU(複数のPDU、それぞれに1つ以上のvarbindを持つ)を使用し、以下の変数をこの順序で設定してテストを開始できます。
pingCtlRowStatusからcreateAndWaitすべての適切なテスト変数
pingCtlRowStatusからactiveJunos OSは、テストを実行するために必要なすべての情報が指定されていることを検証するようになりました。
pingCtlAdminStatusからenabled
単一セットPDUを使用する
単一の Set 要求PDU(1つのPDU、複数のvarbindを持つ)を使用して、以下の変数を設定してテストを開始できます。
pingCtlRowStatusからcreateAndGoすべての適切なテスト変数
pingCtlAdminStatusからenabled
実行中の ping テストを監視する
pingCtlAdminStatus が enabled に設定されると、SNMP Set リクエストの確認応答がクライアントに送り返される前に、次の処理が行われます。
pingResultsEntryまだ存在しない場合は作成されます。pingResultsOperStatusenabledに移行します。
詳細については、次のセクションを参照してください。
pingResultsテーブル
テストの実行中、 pingResultsEntry はテストのステータスを追跡します。 pingResultsOperStatus の値は、テストの実行中は enabled され、テストが停止すると disabled されます。
pingCtlAdminStatusの値は、disabledに設定するまでenabledのままです。したがって、テストのステータスを取得するには、pingResultsOperStatusを調べる必要があります。
pingCtlFrequency変数を使用して、1つのpingCtlEntryに対して多くのテストをスケジュールできます。テストが正常に終了し (テストを停止していない)、pingCtlFrequency秒数が経過した後、pingCtlAdminStatus を enabled に設定した場合と同様に、テストが再開されます。テストを繰り返す合間に介入した場合(pingCtlAdminStatusをdisabledに設定するか、pingCtlRowStatusをnotInServiceに設定)、別のテストが開始されて正常に終了するまで、繰り返し機能は無効になります。pingCtlFrequencyの値が0の場合、この繰り返し機能がアクティブではないことを示します。
pingResultsIpTgtAddrpingCtlTargetAddressTypeの値がdnsの場合、pingResultsIpTgtAddrTypeは解決済み宛先アドレスの値に設定されます。テストが正常に開始され、pingResultsOperStatusがenabledに移行すると、次のようになります。
pingResultsIpTgtAddrはnull-stringに設定されています。pingResultsIpTgtAddrTypeはunknownに設定されています。
pingResultsIpTgtAddrとpingResultsIpTgtAddrTypeは、pingCtlTargetAddressが数字アドレスに解決できるようになるまで設定されません。これらの値を取得するには、pingCtlAdminStatus を enabled に正常に設定した後、pingResultsIpTgtAddrType unknown以外の値をポーリングします。
テストの開始時に、 pingResultsSentProbes は1に初期化され、最初のプローブが送信されます。プローブが送信されるたびに pingResultsSentProbes が1ずつ増加します。
テストが実行されると、 pingCtlTimeOut 秒ごとに次のことが可能になります。
pingProbeHistoryStatuspingProbeHistoryTableの対応するpingProbeHistoryEntryはrequestTimedOutに設定されています。必要に応じて、
pingProbeFailedトラップが生成されます。次のプローブの送信が試行されます。
注:各テストに対して未解決のプローブは 1 つだけ存在しません。
すべてのプローブについて、次のいずれかの結果を受け取ることができます。
ターゲットホストは、応答でプローブを確認します。
プローブがタイムアウトします。プローブを確認するターゲットホストからの応答はありません。
プローブを送信できませんでした。
各プローブ結果は pingProbeHistoryTableで記録されます。 pingProbeHistoryTableの詳細については、「 pingProbeHistoryTable」を参照してください。
ターゲットホストから現在のプローブを確認する応答を受信すると、次のようになります。
pingResultsProbeResponses1増加します。以下の変数が更新されます。
pingResultsMinRtt—最小のラウンドトリップタイムpingResultsMaxRtt—最大のラウンドトリップタイムpingResultsAverageRtt—平均ラウンドトリップタイムpingResultsRttSumOfSquares- 往復時間の二乗和pingResultsLastGoodProbe—最後の応答のタイムスタンプ注:ターゲットホストからの応答をもたらすプローブのみが、ラウンドトリップタイム(RTT)変数の計算に貢献します。
最後のプローブに対する応答を受信するか、最後のプローブがタイムアウトした場合、テストは完了です。
pingProbeHistoryTable
pingProbeHistoryTable(pingProbeHistoryEntry)のエントリーはプローブ結果を表し、3つの変数によってインデックスが付けられます。
最初の 2 つの変数、
pingCtlOwnerIndexとpingCtlTestNameは、テストを識別するpingCtlTableに使用されるものと同じです。3 番目の変数
pingProbeHistoryIndexは、各プローブ結果を一意に識別するためのカウンターです。
特定のテストに対して作成される pingProbeHistoryTable エントリーの最大数は、 pingCtlMaxRowsによって制限されます。 pingCtlMaxRows が 0 に設定されている場合、そのテストに対して pingProbeHistoryTable エントリーは作成されません。
プローブ結果が判別されるたびに、pingProbeHistoryEntryが作成され、pingProbeHistoryTableに追加されます。新しいpingProbeHistoryEntryのpingProbeHistoryIndexは、そのテストのpingProbeHistoryTableに追加された最後のpingProbeHistoryEntryより1大きくなります。これがテーブルの最初のエントリである場合、pingProbeHistoryIndexは1に設定されます。同じテストを複数回実行できるため、このインデックスは増加し続けます。
最後に追加されたpingProbeHistoryEntryのpingProbeHistoryIndexが0xFFFFFFFFの場合、次に追加されたpingProbeHistoryEntryは1に設定されpingProbeHistoryIndex。
各プローブ結果について以下が記録されます。
pingProbeHistoryResponse- TTL(Time to-live)pingProbeHistoryStatus—何が起こったのか、そしてなぜ起こったのかpingProbeHistoryLastRC—ICMPパケットのリターンコード(RC)値pingProbeHistoryTime- プローブ結果が決定されたタイムスタンプ
プローブを送信できない場合、 pingProbeHistoryResponse は0に設定されます。プローブがタイムアウトすると、プローブがタイムアウトしていることが検出された時刻とプローブが送信された時刻の差に pingProbeHistoryResponse が設定されます。
トラップを生成
生成するトラップには、適切なビット pingCtlTrapGeneration を設定する必要があります。また、リモート操作を受信するには、トラップグループを設定する必要があります。トラップは 、以下の条件下で生成されます。
pingProbeFailedトラップはpingCtlTrapProbeFailureFilterテスト中に連続して何回あるプローブが失敗するたびに生成されます。pingTestFailedトラップは、テストが完了し、少なくともpingCtlTrapTestFailureFilter数のプローブが失敗した場合に生成されます。pingTestCompletedトラップは、テストが完了し、失敗するプローブがpingCtlTrapTestFailureFilter未満の場合に生成されます。注:プローブ結果の
pingProbeHistoryStatusがresponseReceived以外のものである場合、プローブは失敗とみなされます。
リモート操作を受信するようにトラップグループを設定する方法については、 SNMPトラップグループの設定を参照してください。
pingテスト結果の収集
pingResultsOperStatusをポーリングしてテストの完了を確認するか、テスト完了時にトラップを送信するようにリクエストできます。pingResultsOperStatusの詳細については、「pingResultsTable」を参照してください。Ping MIBトラップの詳細については、トラップの生成を参照してください。
計算され、 pingResultsTable に保存される統計情報には、次のものが含まれます。
pingResultsMinRtt—最小のラウンドトリップタイムpingResultsMaxRtt—最大のラウンドトリップタイムpingResultsAverageRtt—平均ラウンドトリップタイムpingResultsProbeResponses—受信した応答数pingResultsSentProbes—プローブの送信試行回数pingResultsRttSumOfSquares- 往復時間の二乗和pingResultsLastGoodProbe—最後の応答のタイムスタンプ
各プローブの詳細については、 pingProbeHistoryTable にご相談ください。 pingProbeHistoryTable に使用されるインデックスは 1 から始まり、0xFFFFFFFF になり、再び 1 に折り返されます。
たとえば、 pingCtlProbeCount が 15 で pingCtlMaxRows が 5 の場合、このテストの最初の実行が完了すると、 pingProbeHistoryTable には表 1 のようなプローブが含まれます。
pingProbeHistoryIndex |
プローブ結果 |
|---|---|
11 |
実行 1 からの 11 番目のプローブの結果 |
12 |
実行 1 からの 12 番目のプローブの結果 |
13 |
実行 1 からの 13 番目のプローブの結果 |
14 |
実行 1 からの 14 番目のプローブの結果 |
15 |
実行 1 からの 15 番目のプローブの結果 |
このテストの 2 回目の実行の最初のプローブが完了すると、表 2 のようなプローブpingProbeHistoryTableが含まれます。
pingProbeHistoryIndex |
プローブ結果 |
|---|---|
12 |
実行 1 からの 12 番目のプローブの結果 |
13 |
実行 1 からの 13 番目のプローブの結果 |
14 |
実行 1 からの 14 番目のプローブの結果 |
15 |
実行 1 からの 15 番目のプローブの結果 |
16 |
実行 2 からの 1 番目のプローブの結果 |
このテストの 2 回目の実行が完了すると、 pingProbeHistoryTable には 表 3 のようなプローブが含まれます。
pingProbeHistoryIndex |
プローブ結果 |
|---|---|
26 |
実行2からの11番目のプローブの結果 |
27 |
実行 2 からの 12 番目のプローブの結果 |
28 |
実行 2 からの 13 番目のプローブの結果 |
29 |
実行 2 からの 14 番目のプローブの結果 |
30 |
実行 2 からの 15 番目のプローブの結果 |
履歴エントリーは、次の2つの方法でMIBから削除できます。
特定のテストの履歴エントリが追加され、履歴エントリの数が
pingCtlMaxRowsを超えています。最も古い履歴エントリは削除され、新しい履歴エントリ用のスペースを確保します。pingCtlRowStatusをdestroyに設定すると、テスト全体を削除できます。
Pingテストを停止する
アクティブなテストを停止するには、 pingCtlAdminStatus を disabledに設定します。テストを停止し、テストの pingCtlEntry、 pingResultsEntry、および pingHistoryEntry オブジェクトをMIBから削除するには、 pingCtlRowStatus を destroyに設定します。
ping変数の解釈
このセクションでは、Ping MIB で明示的に指定されていない以下の変数の範囲を明確にします。
pingCtlDataSize—この変数の値は、発信プローブパケットのペイロードの合計サイズ(バイト単位)を表します。このペイロードには、プローブのタイミングに使用するタイムスタンプ(8バイト)が含まれています。これは、pingCtlDataSizeの定義(最大値65,507)および標準のpingアプリケーションと一致しています。pingCtlDataSizeの値が0〜8の間である場合、無視され、ペイロードは8バイト(タイムスタンプ)になります。Ping MIBは、すべてのプローブがタイミング付きであると仮定するため、ペイロードには常にタイムスタンプを含める必要があります。例えば、パケットに4バイトのペイロードを追加する場合は、
pingCtlDataSizeを12に設定する必要があります。pingCtlDataFill—パケットのデータセグメントの最初の8バイトはタイムスタンプ用です。その後、pingCtlDataFillパターンを繰り返し使用する。デフォルトのパターン(pingCtlDataFillが指定されていない場合)は(00、01、02、03 ...FF、00、01、02、03 ...FF、...)。pingCtlMaxRows—最大値は255です。pingMaxConcurrentRequests—最大値は 500 です。pingCtlTrapProbeFailureFilterpingCtlTrapTestFailureFilter-pingCtlTrapProbeFailureFilterまたはpingCtlTrapTestFailureFilterの値 0 は、Ping MIBで明確に定義されていません。pingCtlTrapProbeFailureFilterが 0 の場合、いかなる状況においてもpingProbeFailedトラップはテスト用に生成されません。pingCtlTrapTestFailureFilterが 0 の場合、いかなる状況においてもテスト用にpingTestFailedトラップは生成されません。
Junos OSを実行するリモート監視デバイスにトレースルートMIBを使用する
トレースルートテストは、ローカルホストからリモートホストにパケットがたどるパスを概算します。
RFC 2925は、トレースルートMIBの詳細な権威ある説明であり、トレースルートMIBのASN.1 MIB定義を提供します。
トレースルート テストの開始
トレースルートテストを開始する前に、トレースルートMIBビューを設定します。これにより、tracerouteMIBでのSNMPSetリクエストが許可されます。テストを開始するには、traceRouteCtlTableに行を作成し、traceRouteCtlAdminStatusをenabledに設定します。traceRouteCtlAdminStatusをenabledに設定する前に、少なくとも以下を指定する必要があります。
traceRouteCtlOwnerIndexSnmpAdminStringtraceRouteCtlTestNameSnmpAdminStringtraceRouteCtlTargetAddressInetAddresstraceRouteCtlRowStatusRowStatus
その他の値については、特に指定がない限り、デフォルト値が選択されます。traceRouteCtlOwnerIndexとtraceRouteCtlTestNameはインデックスとして使用されるため、その値はOIDの一部として指定されます。行を作成するには、traceRouteCtlRowStatusをcreateAndWaitに設定するか、まだ存在しない行をcreateAndGoします。traceRouteCtlRowStatusの値がactiveは、必要な情報がすべて指定され、テストを開始できることを示します。traceRouteCtlAdminStatusをenabledに設定できます。traceRouteCtlRowStatus を active に設定する SNMP Set リクエストは、行に必要な情報が指定されていないか、一貫性がない場合、失敗します。ビューの設定方法については、SNMP ビューの設定を参照してください。
トレースルートテストを開始するには、2つの方法があります。
複数のセットPDUを使用する
複数の Set リクエストPDU(複数のPDU、それぞれに1つ以上のvarbindを持つ)を使用し、以下の変数をこの順序で設定してテストを開始できます。
traceRouteCtlRowStatus作成と待機すべての適切なテスト変数
traceRouteCtlRowStatusからactiveJunos OSは、テストを実行するために必要なすべての情報が指定されていることを検証します。
traceRouteCtlAdminStatusからenabled
単一セットPDUを使用する
単一の Set リクエストPDU(1つのPDU、複数のvarbindを持つ)を使用して、以下の変数を設定してテストを開始できます。
traceRouteCtlRowStatusからcreateAndGoすべての適切なテスト変数
traceRouteCtlAdminStatus有効にする
実行中のトレースルート テストを監視する
traceRouteCtlAdminStatus が enabled に正常に設定されると、SNMP Set リクエストの確認がクライアントに送り返される前に、次の処理が行われます。
traceRouteResultsEntryがまだ存在しない場合は作成されます。
traceRouteResultsOperStatus が enabled に遷移します。
詳細については、次のセクションを参照してください。
traceRouteResultsテーブル
テストの実行中、この traceRouteResultsTable はテストの状態を追跡します。traceRouteResultsOperStatus の値は、テストの実行中は有効になり、停止中は無効になります。
traceRouteCtlAdminStatusの値は、無効に設定するまで有効なままになります。したがって、テストの状態を取得するには、traceRouteResultsOperStatus を調べる必要があります。
traceRouteCtlFrequency 変数を使用して、1 つの traceRouteCtlEntry に対して多くのテストをスケジュールできます。テストが正常に終了し (テストを停止していない)、traceRouteCtlFrequency 秒数が経過した後、traceRouteCtlAdminStatus を enabled に設定した場合と同様に、テストが再開されます。繰り返されるテストの合間に介入した場合 (traceRouteCtlAdminStatus を disabled に設定するか、traceRouteCtlRowStatus を notInService に設定した場合)、別のテストが開始されて正常に終了するまで、繰り返し機能は無効になります。traceRouteCtlFrequencyの値が0の場合は、この繰り返し機能がアクティブではないことを示します。
traceRouteCtlTargetAddressType の値が dns の場合、traceRouteResultsIpTgtAddrAddr と traceRouteResultsIpTgtAddrType は、解決済みの宛先アドレスの値に設定されます。テストが正常に開始され、traceRouteResultsOperStatus が enabled に移行すると、次のようになります。
traceRouteResultsIpTgtAddrがnull文字列に設定されています。
traceRouteResultsIpTgtAddrType が unknown に設定されています。
traceRouteCtlTargetAddress を数値アドレスに解決できるまで、traceRouteResultsIpTgtAddrAddr と traceRouteResultsIpTgtAddrType は設定されません。これらの値を取得するには、traceRouteCtlAdminStatus を enabled に正常に設定した後、traceRouteResultsIpTgtAddrType で不明以外の値をポーリングします。
テストの開始時に、traceRouteResultsCurHopCount は traceRouteCtlInitialTtl、traceRouteResultsCurProbeCount は 1 に初期化されます。プローブ結果が判別されるたびに、traceRouteResultsCurProbeCount は 1 ずつ増加します。テスト実行中は、traceRouteResultsCurProbeCount の値には、結果がまだ決定されていない現在の未処理のプローブが反映されます。
traceRouteCtlProbesPerHop 数のプローブは、TTL(Time-to-live)値ごとに送信されます。現在のホップに対する最後のプローブの結果が決定されると、現在のホップが宛先ホップでない場合、traceRouteResultsCurHopCount は 1 増加し、traceRouteResultsCurProbeCount は 1 にリセットされます。
テストの開始時に、この traceRouteCtlEntry に対してこのテストを初めて実行した場合、traceRouteResultsTestAttempts と traceRouteResultsTestSuccesses は 0 に初期化されます。
各テスト実行の最後に、traceRouteResultsOperStatus は disabled に遷移し、traceRouteResultsTestAttempts は 1 増加します。テストでターゲットへのフルパスの決定に成功した場合、traceRouteResultsTestSuccesses は 1 増加し、traceRouteResultsLastGoodPath は現在の時刻に設定されます。
traceRouteProbeResultsTable
traceRouteProbeHistoryTable の各エントリには、次の 5 つの変数によってインデックスが付けられます。
最初の 2 つの変数、traceRouteCtlOwnerIndex と traceRouteCtlTestName は、traceRouteCtlTable およびテストの識別に使用されるものと同じです。
3 番目の変数 traceRouteProbeHistoryIndex は、1 から始まり FFFFFFFF で折り返すカウンターです。エントリーの最大数は、traceRouteCtlMaxRows によって制限されます。
4 番目の変数 traceRouteProbeHistoryHopIndex は、このプローブがどのホップ対象か(実際の生存時間または TTL 値)を示します。したがって、テストの開始時に作成された最初のtraceRouteCtlProbesPerHopエントリの数は、traceRouteProbeHistoryHopIndexのtraceRouteCtlInitialTtlの値を持ちます。
5番目の変数traceRouteProbeHistoryProbeIndexは、現在のホップのプローブです。範囲は 1 から traceRouteCtlProbesPerHop です。
テストの実行中は、プローブ結果が判別されるとすぐに、次のプローブが送信されます。traceRouteCtlTimeOutの経過時間は、プローブがrequestTimedOutステータスでマークされ、次のプローブが送信されるまでに発生します。トレースルートテストごとに未解決のプローブが1つ以上存在することはありません。プローブがタイムアウトした後に返されるプローブ結果はすべて無視されます。
各プローブの機能:
プローブを確認するホストからの応答の結果
プローブを確認するホストからの応答なしのタイムアウト
送信に失敗しました
各プローブステータスは、traceRouteProbeHistoryTableに記録され、traceRouteProbeHistoryStatusが適切に設定されます。
ホストからの応答をもたらすプローブは、以下のデータを記録します。
traceRouteProbeHistoryResponse—ラウンドトリップタイム(RTT)
traceRouteProbeHistoryHAddrType—HAddr のタイプ(次の引数)
traceRouteProbeHistoryHAddr—ホップのアドレス
プローブに対する応答を受信したかどうかに関係なく、すべてのプローブには次のことが記録されます。
traceRouteProbeHistoryStatus—何が起こったのか、なぜ起こったのか
traceRouteProbeHistoryLastRC—ICMPパケットの戻りコード(RC)値
traceRouteProbeHistoryTime—プローブ結果が決定されたタイムスタンプ
プローブを送信できない場合、traceRouteProbeHistoryResponseは0に設定されます。プローブがタイムアウトすると、traceRouteProbeHistoryResponseは、プローブがタイムアウトしていることが検出された時刻とプローブが送信された時刻の差に設定されます。
traceRouteHopsテーブル
traceRouteHopsTable のエントリーは、次の 3 つの変数によってインデックスが作成されます。
最初の 2 つの traceRouteCtlOwnerIndex と traceRouteCtlTestName は、traceRouteCtlTable に使用され、テストを識別するものと同じものです。
3 番目の変数 traceRouteHopsHopIndex は、1 から始まる現在のホップを示します(traceRouteCtlInitialTtl ではありません)。
テストが開始されると、traceRouteCtlOwnerIndex と traceRouteCtlTestName が指定された traceRouteHopsTable 内のすべてのエントリが削除されます。このテーブルのエントリは、traceRouteCtlCreateHopsEntries が true に設定されている場合にのみ作成されます。
特定のTTLの最初のプローブ結果が判別されるたびに、新しいtraceRouteHopsEntryが作成されます。最初のプローブがホストに到達したかどうかに関係なく、新しいエントリが作成されます。この新しいエントリでは、traceRouteHopsHopIndex の値が 1 増加します。
指定された TTL のプローブに応答がない場合、traceRouteHopsEntry には traceRouteHopsIpTgtAddress の値が欠けている可能性があります。
プローブがホストに到達するたびに、そのホストのIPアドレスがプローブ結果で利用可能になります。現在のtraceRouteHopsEntryのtraceRouteHopsIpTgtAddressの値が設定されていない場合、traceRouteHopsIpTgtAddressの値がこのIPアドレスに設定されます。現在のtraceRouteHopsEntryのtraceRouteHopsIpTgtAddressの値がIPアドレスと同じ場合、値は変更されません。現在のtraceRouteHopsEntryのtraceRouteHopsIpTgtAddressの値がこのIPアドレスと異なり、パスが変更されている場合、新しいtraceRouteHopsEntryが作成されます。
traceRouteHopsHopIndex 変数が 1 増加しました
traceRouteHopsIpTgtAddressをIPアドレスに設定すると
注:新しいTTL値が使用されるか、パスが変更されるたびに、テストの新しいエントリがtraceRouteHopsTableに追加されます。したがって、テストのエントリー数は、使用される異なるTTL値の数を超える可能性があります。
プローブ結果が判別されると、現在のtraceRouteHopsEntryのtraceRouteHopsSentProbesの値が1増加します。プローブ結果が判別され、プローブがホストに到達した場合:
現在のtraceRouteHopsEntryの値traceRouteHopsProbeResponsesが1増加します。
以下の変数が更新されます。
traceRouteResultsMinRtt—最小の往復時間
traceRouteResultsMaxRtt—最大の往復時間
traceRouteResultsAverageRtt—平均往復時間
traceRouteResultsRttSumOfSquares - 往復時間の二乗和
traceRouteResultsLastGoodProbe—最後の応答のタイムスタンプ
注:往復時間の値に影響を与えるのは、ホストに到達したプローブだけです。
トラップを生成
トラップを生成するには、traceRouteCtlTrapGeneration の適切なビットを設定する必要があります。また、リモート操作を受信するには、トラップグループを設定する必要があります。トラップは、以下の条件下で生成されます。
現在のプローブのtraceRouteHopsIpTgtAddressが、同じTTL値(traceRoutePathChange)を持つ最後のプローブとは異なります。
ターゲットへのパスを特定できませんでした(traceRouteTestFailed)。
ターゲットへのパスが決定されました(traceRouteTestCompleted)。
リモート操作を受信するようにトラップグループを設定する方法については、 SNMPトラップグループの設定 および SNMPリモート操作の概要を参照してください。
トレースルートテスト完了を監視する
テストが完了すると、 traceRouteResultsOperStatus は enabled から disabledに遷移します。この遷移は、以下の状況で発生します。
テストは正常に終了しました。プローブ結果は、宛先に到達したことを示します。この場合、現在のホップが最後のホップとなります。このホップの残りのプローブが送信されます。現在のホップの最後のプローブ結果が判別されると、テストは終了します。
traceRouteCtlMaxTtlしきい値を超えています。宛先に到達することはありません。TTL 値がtraceRouteCtlMaxttlに等しいプローブの数を送信すると、テストは終了します。traceRouteCtlMaxFailuresしきい値を超えています。ステータスrequestTimedOutで終わる連続したプローブの数がtraceRouteCtlMaxFailuresを超えています。テストを終了します。
traceRouteCtlAdminStatusを設定するには、行をdisabledするか、traceRouteCtlRowStatusをdestroyに設定して削除します。トレースルート テストを誤って設定しました。
traceRouteCtlTableで指定した値または変数が正しくないため、単一のプローブが送信できません。データの性質上、このエラーはテストが開始されるまで判別できませんでした。つまり、traceRouteResultsOperStatusがenabledに移行するまでです。この場合、適切なエラーコードに設定されたtraceRouteProbeHistoryStatusエントリが1つtraceRouteProbeHistoryTableに追加されます。
traceRouteCtlTrapGenerationが正しく設定されている場合、traceRouteTestFailedまたはtraceRouteTestCompletedトラップが生成されます。
トレースルートテスト結果の収集
traceRouteResultsOperStatusをポーリングしてテストの完了を確認するか、テスト完了時にトラップを送信するようにリクエストできます。traceResultsOperStatus の詳細については、「 traceRouteResultsTable」を参照してください。トレースルート MIB トラップの詳細については、「 実行中のトレースルート テストの監視」の「トラップの生成」セクションを参照してください。
統計情報はホップ単位で計算され、traceRouteHopsTable に格納されます。各ホップには以下が含まれます。
traceRouteHopsIpTgtAddressType—このホップのホストのアドレスタイプ
traceRouteHopsIpTgtAddress - このホップのホストのアドレス
traceRouteHopsMinRtt—最小のラウンドトリップタイム
traceRouteHopsMaxRtt—最大往復時間
traceRouteHopsAverageRtt—平均ラウンドトリップ時間
traceRouteHopsRttSumOfSquares - 往復時間の二乗和
traceRouteHopsSentProbes—プローブの送信試行回数
traceRouteHopsProbeResponses—受信した応答数
traceRouteHopsLastGoodProbe—最後の応答のタイムスタンプ
また、各プローブの詳細については、traceRouteProbeHistoryTableを参照することもできます。traceRouteProbeHistoryTable に使用されるインデックスは 1 から始まり、0xFFFFFFFF になり、再び 1 に折り返されます。
例えば、以下のようなことを想定します。
traceRouteCtlMaxRows は 10 です。
traceRouteCtlProbesPerHopは5です。
ターゲットへのホップは 8 回あります(ターゲットは 8 番)。
送信された各プローブは、ホストからの応答をもたらします(送信されたプローブの数は traceRouteCtlMaxFailures によって制限されません)。
このテストでは、40 個のプローブが送信されます。テストの最後に、traceRouteProbeHistoryTableには、 表4のようなプローブの履歴があります。
履歴インデックス |
履歴ホップインデックス |
履歴プローブインデックス |
|---|---|---|
31 |
7 |
1 |
32 |
7 |
2 |
33 |
7 |
3 |
34 |
7 |
4 |
35 |
7 |
5 |
36 |
8 |
1 |
37 |
8 |
2 |
38 |
8 |
3 |
39 |
8 |
4 |
40 |
8 |
5 |
トレースルートテストの停止
アクティブなテストを停止するには、 traceRouteCtlAdminStatus を disabledに設定します。テストを停止し、その traceRouteCtlEntry、 traceRouteResultsEntry、 traceRouteProbeHistoryEntry、および traceRouteProbeHistoryEntry オブジェクトをMIBから削除するには、 traceRouteCtlRowStatus を destroyに設定します。
トレースルート変数の解釈
このトピックでは、トレースルート MIB で明示的に指定されていない以下の変数の範囲について説明します。
traceRouteCtlMaxRows—traceRouteCtlMaxRowsの最大値は2550です。これは、最大TTL(255)にtraceRouteCtlProbesPerHopの最大値(10)を掛けたものです。したがって、traceRouteProbeHistoryTableは、1つのtraceRouteCtlEntryの最大値で1つの完全なテストに対応します。通常、最大値は使用されず、traceRouteProbeHistoryTableは同じtraceRouteCtlEntryの多くのテストの完全な履歴に対応できます。traceRouteMaxConcurrentRequests—最大値は 50 です。テストが実行されている場合、未処理のプローブが 1 つあります。traceRouteMaxConcurrentRequestsは、値enabledのtraceRouteResultsOperStatusを持つトレースルートテストの最大数を表します。traceRouteMaxConcurrentRequestsテストを実行した状態でテストを開始しようとすると、traceRouteProbeHistoryStatusがmaxConcurrentLimitReachedに設定されたプローブが1つ作成され、そのテストは直ちに終了します。traceRouteCtlTable—このテーブルで許可されるエントリーの最大数は100です。101番目のエントリを作成しようとすると、SNMPv1にはBAD_VALUEメッセージ、SNMPv2にはRESOURCE_UNAVAILABLEメッセージが作成されます。
変更履歴テーブル
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。