Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SNMPリモート操作を設定する

SNMP リモート操作の概要

SNMP リモート操作とは、SNMP を使用してリモートで制御できるルーター上の任意のプロセスのことです。Junos OSは現在、2つのSNMPリモート操作をサポートしています。RFC 2925 で定義された Ping MIB とトレースルート MIB。これらの MIB を使用することで、ネットワーク管理システム(NMS)内の SNMP クライアントは以下のことが可能になります。

  • ルーターで一連の操作を開始する

  • 操作が完了したときに通知を受け取る

  • 各操作の結果を収集する

また、Junos OS は、ジュニパーネットワークスのエンタープライズ固有の拡張 jnxPingMIB および jnxTraceRouteMIB で、これらの MIB に拡張機能を提供します。jnxPingMIBjnxTraceRouteMIBの詳細については、 PING MIBトレースルートMIBを参照してください。

このトピックでは、以下のセクションについて説明します。

SNMP リモート操作の要件

SNMP リモート操作を使用するには、SNMP の規則を経験している必要があります。また、リモート操作 MIB の使用を許可するように Junos OS を設定する必要があります。

Ping MIB を開始する前に、 Ping テストの開始を参照してください。

トレースルート MIB を開始する前に、 トレースルート テストの開始を参照してください。

SNMPビューを設定する

Junos OS がサポートするすべてのリモート操作 MIB には、SNMP クライアントに読み書き権限が必要です。Junos OSのデフォルトのSNMP設定では、このような権限を持つコミュニティ文字列はクライアントに提供されません。

SNMP コミュニティ文字列に読み書き権限を設定するには、 [edit snmp] 階層レベルで以下のステートメントを含めます。

例:SNMPビューを設定する

SNMP クライアントに Ping MIB、jnxPing MIB、トレースルート MIB、jnxTraceRoute MIB への読み書き可能なアクセスを許可する remote-community という名前のコミュニティを作成するには、[edit snmp]階層レベルで以下のステートメントを含めます。

community ステートメントの詳細については、 とコミュニティ(SNMP)を参照してください。

viewステートメントの詳細については、 MIBビューを設定するビュー(SNMPコミュニティ)、およびビュー(MIBビューの設定)を参照してください。

リモート操作のトラップ通知を設定する

トラップ通知用のリモート操作 MIB の設定に加えて、Junos OS の設定も必要です。リモート操作トラップのターゲットホストを指定する必要があります。

SNMP リモート操作のトラップ通知を設定するには、[edit snmp trap-group group-name] 階層レベルで categories および targets ステートメントを含めます。

例:リモート操作のトラップ通知を設定する

すべてのリモート操作トラップのターゲット ホストとして 172.17.12.213 を指定します。

トラップグループの詳細については、 SNMPトラップグループを設定するを参照してください。

可変長文字列インデックスの使用

Junos OSでサポートされているリモート操作MIBのすべての表形式オブジェクトには、タイプ SnmpAdminStringの2つの変数によってインデックスが付けられます。SnmpAdminStringの詳細については、RFC 2571 を参照してください。

Junos OSは、 SnmpAdminString をオクテット文字列変数タイプと異なる方法で処理しません。ただし、インデックスは可変長として定義されます。可変長文字列をインデックスとして使用する場合は、文字列の長さをオブジェクト識別子 (OID) の一部として含める必要があります。

例:可変長文字列インデックスの設定

pingCtlOwnerIndexbobpingCtlTestNametestされている pingCtlTable の行の pingCtlTargetAddress 変数を参照するには、次のオブジェクト識別子 (OID) を使用します。

Ping MIB の定義の詳細については、RFC 2925 を参照してください。

ログ記録の有効化

SNMPリクエストに応答して返されるSNMPエラーコードは、問題の一般的な説明のみを提供できます。リモート操作プロセスによってログに記録されるエラーの説明は、多くの場合、問題に関するより詳細な情報を提供し、問題をより迅速に解決するのに役立ちます。このログ記録は、既定では有効になっていません。ログ記録を有効にするには、[edit snmp traceoptions] 階層レベルで flag general ステートメントを含めます。

リモート操作プロセスが対応できない SNMP リクエストを受信した場合、エラーは /var/log/rmopd ファイルに記録されます。このログ・ファイルをモニターするには、コマンド・ライン・インターフェース (CLI) の操作モードで monitor start rmopd コマンドを発行します。

Junos OS を搭載したリモート監視デバイスに Ping MIB を使用する

pingテストは、ローカルホストから送信されたパケットが指定されたホストに到達して返されるかどうかを判断するために使用されます。指定されたホストに到達できる場合、ping テストはパケットのおおよその往復時間を提供します。Pingテストの結果は、 pingResultsTablepingProbeHistoryTableに保存されます。

RFC 2925は、Ping MIBの詳細な正式な記述であり、Ping MIBのASN.1 MIB定義を提供します。

Ping テストを開始する

このトピックを使用して、ICMP ping テストを起動します。ping テストを開始するには、次の 2 つの方法があります。複数のセットプロトコルデータユニット(PDU)を使用するか、単一のセットPDUを使用します。

始める前に

ping テストを開始する前に、Ping MIB ビューを設定します。これにより、SNMP が pingMIB で要求Setできるようになります。詳細については、MIBビューを設定するを参照してください。

Junos OS リリース 17.2X75-D100 以降では、ICMP ping を開始する前に RPM を設定する必要があります。edit services rpm コマンドを使用して RPM を設定します。

Ping テストを開始する

ping テストを開始するには、 pingCtlTable で行を作成し、 pingCtlAdminStatusenabled に設定します。pingCtlAdminStatusenabled に設定する前に指定する必要がある最小限の情報は次のとおりです。

  • pingCtlOwnerIndexSnmpAdminString

  • pingCtlTestNameSnmpAdminString

  • pingCtlTargetAddressInetAddress

  • pingCtlTargetAddressTypeInetAddressType

  • pingCtlRowStatusRowStatus

他のすべての値については、特に指定しない限り、デフォルトが選択されます。 pingCtlOwnerIndexpingCtlTestName はインデックスとして使用されるため、それらの値はオブジェクト識別子 (OID) の一部として指定されます。行を作成するには、まだ存在しない行に対して pingCtlRowStatuscreateAndWait または createAndGo に設定します。pingCtlRowStatus の値 active は、必要な情報がすべて入力され、テストを開始できることを示します。pingCtlAdminStatusenabled に設定できます。pingCtlRowStatusactiveに設定するSNMPSetリクエストは、行に必要な情報が指定されていないか、矛盾している場合、失敗します。

ビューを設定する方法については、 SNMP ビューの設定を参照してください。

変数の順序付け方法については、以下のセクションを参照してください。

複数のセットPDUを使用する

複数の Set 要求 PDU (複数の PDU、それぞれに 1 つ以上の varbind を持つ) を使用し、次の変数をこの順序で設定してテストを開始できます。

  • pingCtlRowStatusからcreateAndWait

  • すべての適切なテスト変数

  • pingCtlRowStatusからactive

    Junos OS は、テストの実行に必要なすべての情報が指定されていることを検証するようになりました。

  • pingCtlAdminStatusからenabled

単一のセットPDUを使用する

単一の Set 要求 PDU (1 つの PDU、複数の varbind を使用) を使用して、次の変数を設定し、テストを開始できます。

  • pingCtlRowStatusからcreateAndGo

  • すべての適切なテスト変数

  • pingCtlAdminStatusからenabled

実行中の Ping テストを監視する

pingCtlAdminStatusが正常に enabled に設定されている場合、SNMP Set 要求の確認応答がクライアントに送り返される前に、次の処理が行われます。

  • pingResultsEntry が存在しない場合は作成されます。

  • pingResultsOperStatusenabledに移行します。

詳細については、以下のセクションを参照してください。

ping結果テーブル

テストの実行中、 pingResultsEntry はテストの状態を追跡します。pingResultsOperStatus の値は、テストの実行中にenabledされ、停止したときにdisabledされます。

pingCtlAdminStatusの値は、disabled に設定するまでenabledのままです。したがって、テストのステータスを取得するには、 pingResultsOperStatusを調べる必要があります。

pingCtlFrequency 変数を使用すると、1 つのpingCtlEntryに対して多くのテストをスケジュールできます。テストが正常に終了し (テストを停止しなかった)、 pingCtlFrequency 秒数が経過すると、 pingCtlAdminStatusenabled に設定した場合と同様に、テストが再開。テストを繰り返す合間に介入した場合( pingCtlAdminStatusdisabled に設定したり、 pingCtlRowStatusnotInServiceに設定したりした場合)、別のテストが開始されて正常に終了するまで、繰り返し機能は無効になります。pingCtlFrequencyの値 0 は、この繰り返し機能がアクティブでないことを示します。

pingResultsIpTgtAddr および pingResultsIpTgtAddrType は、 pingCtlTargetAddressType の値 dns場合、解決された宛先アドレスの値に設定されます。テストが正常に開始され、 pingResultsOperStatusenabled に移行すると、次のようになります。

  • pingResultsIpTgtAddrnull-string に設定されます。

  • pingResultsIpTgtAddrTypeunknown に設定されます。

pingResultsIpTgtAddr および pingResultsIpTgtAddrType は、 pingCtlTargetAddress 数値アドレスに解決されるまで設定されません。これらの値を取得するには、pingCtlAdminStatusenabled に正常に設定した後、unknown以外の値がないかpingResultsIpTgtAddrTypeポーリングします。

テストの開始時に、 pingResultsSentProbes は 1 に初期化され、最初のプローブが送信されます。プローブが送信されるたびに pingResultsSentProbes が 1 ずつ増加します。

テストが実行されると、 pingCtlTimeOut 秒ごとに次の処理が行われます。

  • pingProbeHistoryStatuspingProbeHistoryTableの対応するpingProbeHistoryEntryrequestTimedOutに設定されています。

  • 必要に応じて、 pingProbeFailed トラップが生成されます。

  • 次のプローブの送信が試行されます。

    注:

    各テストに存在する未処理のプローブは1つだけです。

すべてのプローブについて、次のいずれかの結果を受け取ることができます。

  • ターゲットホストは、応答でプローブを確認します。

  • プローブがタイムアウトします。プローブを確認するターゲット ホストからの応答がありません。

  • プローブを送信できませんでした。

各プローブ結果は pingProbeHistoryTableに記録されます。pingProbeHistoryTableの詳細については、「pingプローブ履歴テーブル」を参照してください。

ターゲットホストから現在のプローブを確認する応答を受信すると、次のようになります。

  • pingResultsProbeResponses 1増加します。

  • 次の変数が更新されます。

    • pingResultsMinRtt—最小のラウンドトリップタイム

    • pingResultsMaxRtt—最大のラウンドトリップタイム

    • pingResultsAverageRtt—平均ラウンドトリップタイム

    • pingResultsRttSumOfSquares- 往復時間の平方和

    • pingResultsLastGoodProbe- 最後の応答のタイムスタンプ

      注:

      ターゲットホストからの応答をもたらすプローブのみが、ラウンドトリップタイム(RTT)変数の計算に寄与します。

最後のプローブに対する応答を受信するか、最後のプローブがタイムアウトすると、テストは完了です。

pingプローブ履歴テーブル

pingProbeHistoryTable (pingProbeHistoryEntry) のエントリはプローブ結果を表し、次の 3 つの変数によってインデックスが付けられます。

  • 最初の 2 つの変数 pingCtlOwnerIndexpingCtlTestName は、テストを識別する pingCtlTable に使用されるものと同じです。

  • 3 番目の変数 pingProbeHistoryIndex は、各プローブ結果を一意に識別するためのカウンターです。

特定のテストに対して作成される pingProbeHistoryTable エントリの最大数は、 pingCtlMaxRows によって制限されます。pingCtlMaxRows が 0 に設定されている場合、そのテストの pingProbeHistoryTable エントリは作成されません。

プローブ結果が決定されるたびに、pingProbeHistoryEntryが作成され、pingProbeHistoryTableに追加されます。 新しいpingProbeHistoryEntrypingProbeHistoryIndex は、そのテストで pingProbeHistoryTable に最後に追加されたpingProbeHistoryEntryより 1 大きくなります。 これがテーブルの最初のエントリである場合、pingProbeHistoryIndex は 1 に設定されます。同じテストを複数回実行できるため、このインデックスは増加し続けます。

最後に追加されたpingProbeHistoryEntrypingProbeHistoryIndex 0xFFFFFFFFの場合、次に追加されたpingProbeHistoryEntryは 1 に設定pingProbeHistoryIndex

プローブ結果ごとに以下が記録されます。

  • pingProbeHistoryResponse- TTL(Time-to-live)

  • pingProbeHistoryStatus—何が起こったのか、そしてその理由

  • pingProbeHistoryLastRC- ICMP パケットのリターン コード(RC)値

  • pingProbeHistoryTime- プローブ結果が決定されたタイムスタンプ

プローブを送信できない場合、 pingProbeHistoryResponse は 0 に設定されます。プローブがタイムアウトすると、 pingProbeHistoryResponse は、プローブのタイムアウトが検出されたときとプローブが送信された時刻の差に設定されます。

トラップの生成

トラップを生成するには、適切なビットの pingCtlTrapGeneration を設定する必要があります。また、リモート操作を受信するトラップグループを設定する必要があります。トラップは、以下の条件下で生成されます。

  • テスト中にpingCtlTrapProbeFailureFilter連続したプローブの数が失敗するたびに、pingProbeFailedトラップが生成されます。

  • テストが完了し、少なくとも pingCtlTrapTestFailureFilter 個のプローブが失敗すると、pingTestFailed トラップが生成されます。

  • テストが完了し、失敗したプローブが pingCtlTrapTestFailureFilter 件未満になると、pingTestCompleted トラップが生成されます。

    注:

    プローブの結果の pingProbeHistoryStatusresponseReceived以外の場合、プローブは失敗と見なされます。

リモート操作を受信するトラップグループを設定する方法については、 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 のようなプローブが含まれます。

表 1: pingプローブ履歴テーブルの結果: 最初の ping テストの後

pingプローブ履歴インデックス

プローブ結果

11

実行 1 からの 11 番目のプローブの結果

12

実行 1 からの 12 番目のプローブの結果

13

実行 1 からの 13 番目のプローブの結果

14

実行 1 からの 14 番目のプローブの結果

15

実行 1 からの 15 番目のプローブの結果

このテストの2回目の実行の最初のプローブが完了すると、 pingProbeHistoryTable には 表 2のようなプローブが含まれます。

表 2: pingプローブ履歴テーブルの結果: 2回目のテストの最初のプローブの後

pingプローブ履歴インデックス

プローブ結果

12

実行 1 からの 12 番目のプローブの結果

13

実行 1 からの 13 番目のプローブの結果

14

実行 1 からの 14 番目のプローブの結果

15

実行 1 からの 15 番目のプローブの結果

16

実行 2 からの 1 番目のプローブの結果

このテストの2回目の実行が完了すると、 pingProbeHistoryTable には 表 3のようなプローブが含まれます。

表 3: pingプローブ履歴テーブルの結果: 2回目のpingテスト後

pingプローブ履歴インデックス

プローブ結果

26

実行 2 からの 11 番目のプローブの結果

27

実行 2 からの 12 番目のプローブの結果

28

実行 2 からの 13 番目のプローブの結果

29

実行 2 からの 14 番目のプローブの結果

30

実行 2 からの 15 番目のプローブの結果

履歴エントリーは、次の2つの方法でMIBから削除できます。

  • 特定のテストの履歴エントリが追加され、履歴エントリの数が pingCtlMaxRows を超えています。最も古い履歴エントリは、新しいエントリ用のスペースを確保するために削除されます。

  • テスト全体を削除するには、[ pingCtlRowStatus ] を [ destroy] に設定します。

Ping テストを停止する

アクティブなテストを停止するには、 pingCtlAdminStatusdisabled に設定します。テストを停止し、その pingCtlEntrypingResultsEntry、および pingHistoryEntry オブジェクトを MIB から削除するには、 pingCtlRowStatusdestroy に設定します。

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 です。

  • pingCtlTrapProbeFailureFilter および pingCtlTrapTestFailureFilterpingCtlTrapProbeFailureFilter または pingCtlTrapTestFailureFilter の値 0 は、Ping MIB で明確に定義されていません。pingCtlTrapProbeFailureFilter 0 の場合、どのような状況でもテスト用の pingProbeFailed トラップは生成されません。pingCtlTrapTestFailureFilter 0 の場合、どのような状況でもテスト用の pingTestFailed トラップは生成されません。

Junos OS 実行リモート監視デバイスのトレースルート MIB の使用

traceroute テストは、パケットがローカルホストからリモートホストまでたどるパスを概算します。

RFC 2925 は、トレースルート MIB の詳細な記述であり、トレースルート MIB の ASN.1 MIB 定義を提供します。

トレースルートテストの開始

トレースルート テストを開始する前に、トレースルート MIB ビューを設定します。これにより、SNMP が tracerouteMIB で要求Setできるようになります。テストを開始するには、 traceRouteCtlTable で行を作成し、[ traceRouteCtlAdminStatus ] を [ enabled] に設定します。traceRouteCtlAdminStatusenabled に設定する前に、少なくとも以下を指定する必要があります。

  • traceRouteCtlOwnerIndexSnmpAdminString

  • traceRouteCtlTestNameSnmpAdminString

  • traceRouteCtlTargetAddressInetAddress

  • traceRouteCtlRowStatusRowStatus

他のすべての値については、特に指定しない限り、デフォルトが選択されます。 traceRouteCtlOwnerIndextraceRouteCtlTestName はインデックスとして使用されるため、それらの値は OID の一部として指定されます。行を作成するには、まだ存在しない行に対して traceRouteCtlRowStatuscreateAndWait または createAndGo に設定します。値 active for traceRouteCtlRowStatus は、必要な情報がすべて指定されてテストを開始できることを示します。 traceRouteCtlAdminStatusenabled に設定できます。traceRouteCtlRowStatusactiveに設定するSNMPSetリクエストは、行に必要な情報が指定されていないか、矛盾している場合、失敗します。ビューを設定する方法については、 SNMP ビューの設定を参照してください。

トレースルートテストを開始するには、次の 2 つの方法があります。

複数のセットPDUを使用する

複数の Set 要求 PDU (複数の PDU、それぞれに 1 つ以上の varbind を持つ) を使用し、次の変数をこの順序で設定してテストを開始できます。

  • traceRouteCtlRowStatus 作成して待つ

  • すべての適切なテスト変数

  • traceRouteCtlRowStatusからactive

    Junos OSは、テストの実行に必要なすべての情報が指定されていることを検証するようになりました。

  • traceRouteCtlAdminStatusからenabled

単一のセットPDUを使用する

単一の Set 要求 PDU (1 つの PDU、複数の varbind を使用) を使用して、次の変数を設定し、テストを開始できます。

  • traceRouteCtlRowStatusからcreateAndGo

  • すべての適切なテスト変数

  • traceRouteCtlAdminStatus 有効へ

実行中のトレースルートテストの監視

traceRouteCtlAdminStatus が正常に有効に設定されている場合、SNMP セット要求の確認応答がクライアントに送り返される前に、次の処理が行われます。

  • トレースルート結果エントリが存在しない場合は作成されます。

  • traceRouteResultsOperStatus が enabled に移行します。

詳細については、以下のセクションを参照してください。

tracerouteresultstable

テストの実行中、このトレースはテストの状態を追跡します。traceRouteResultsOperStatus の値は、テストの実行中は有効になり、停止中は無効になります。

traceRouteCtlAdminStatus の値は、無効に設定するまで有効なままです。したがって、テストの状態を取得するには、traceRouteResultsOperStatus を調べる必要があります。

traceRouteCtlFrequency 変数を使用すると、1 つの traceRouteCtlEntry に対して多数のテストをスケジュールできます。テストが正常に終了し (テストを停止しなかった)、トレースルートCtlFrequency 秒数が経過すると、traceRouteCtlAdminStatus を有効に設定したかのように、テストが再開されます。繰り返されるテストの間に介入した場合 (traceRouteCtlAdminStatus を無効に設定するか、traceRouteCtlRowStatus を notInService に設定した場合)、別のテストが開始されて正常に終了するまで、繰り返し機能は無効になります。トレースルートCtl周波数の値 0 は、この繰り返し機能がアクティブでないことを示します。

traceRouteResultsIpTgtAddr および traceRouteResultsIpTgtAddrType は、traceRouteCtlTargetAddressType の値が dns の場合、解決された宛先アドレスの値に設定されます。テストが正常に開始され、traceRouteResultsOperStatus が有効に遷移すると、次のようになります。

  • traceRouteResultsIpTgtAddr が null-string に設定されています。

  • traceRouteResultsIpTgtAddrType は不明に設定されています。

traceRouteResultsIpTgtAddr および traceRouteResultsIpTgtAddrType は、traceRouteCtlTargetAddress を数値アドレスに解決できるようになるまで設定されません。これらの値を取得するには、traceRouteCtlAdminStatus を正常に有効に設定した後、不明以外の値についてトレースルート結果IpTgtAddrType をポーリングします。

テストの開始時に、traceRouteResultsCurHopCount は traceRouteCtlInitialTtl に初期化され、traceRouteResultsCurProbeCount は 1 に初期化されます。プローブの結果が決定されるたびに、traceRouteResultsCurProbeCount が 1 ずつ増加します。テストの実行中、traceRouteResultsCurProbeCount の値には、結果がまだ決定されていない現在の未処理のプローブが反映されます。

traceRouteCtlProbesPerHop のプローブ数は、TTL(Time-to-live)値ごとに送信されます。現在のホップが宛先ホップでなければ、現在のホップに対する最後のプローブの結果が決定されると、traceRouteResultsCurHopCount は 1 ずつ増加し、traceRouteResultsCurProbeCount は 1 にリセットされます。

テストの開始時に、このトレースRouteCtlEntry に対してこのテストが初めて実行された場合、traceRouteResultsTestAttempts と traceRouteResultsTestSuccesses は 0 に初期化されます。

各テスト実行の終了時に、traceRouteResultsOperStatus は無効になり、traceRouteResultsTestAttempts は 1 ずつ増加します。テストでターゲットへの完全パスの決定に成功した場合、traceRouteResultsTestSuccesses は 1 増加し、traceRouteResultsLastGoodPath は現在の時刻に設定されます。

tracerouteプローブ結果テーブル

traceRouteProbeHistoryTable の各エントリには、次の 5 つの変数によってインデックスが付けられます。

  • 最初の 2 つの変数 traceRouteCtlOwnerIndex と traceRouteCtlTestName は、traceRouteCtlTable とテストの識別に使用されるものと同じです。

  • 3 番目の変数 traceRouteProbeHistoryIndex はカウンターで、1 から始まり、FFFFFFFF でラップされます。エントリの最大数は、traceRouteCtlMaxRows によって制限されます。

  • 4 番目の変数 traceRouteProbeHistoryHopIndex は、このプローブがどのホップを対象としているか (実際の有効期限または TTL 値) を示します。したがって、テストの開始時に作成される最初の traceRouteCtlProbesPerHop エントリの数は、traceRouteProbeHistoryHopIndex の traceRouteCtlInitialTtl の値になります。

  • 5 番目の変数 traceRouteProbeHistoryProbeIndex は、現在のホップのプローブです。範囲は 1 から traceRouteCtlProbesPerHop までです。

テスト実行中、プローブ結果が判別されるとすぐに次のプローブが送信されます。プローブがステータス requestTimedOut でマークされ、次のプローブが送信されるまでに、traceRouteCtlTimeOut の最大秒数が経過します。traceroute テストごとに複数の未処理のプローブが存在することはありません。プローブがタイムアウトした後に返されるプローブ結果はすべて無視されます。

各プローブは次のことができます。

  • プローブを確認するホストからの応答の結果

  • プローブを確認するホストからの応答がない状態でタイムアウト

  • 送信失敗

各プローブの状態は traceRouteProbeHistoryTable に記録され、それに応じて traceRouteProbeHistoryStatus が設定されます。

ホストからの応答をもたらすプローブは、以下のデータを記録します。

  • traceRouteProbeHistoryResponse—ラウンドトリップタイム(RTT)

  • traceRouteProbeHistoryHAddrType—HAddrのタイプ(次の引数)

  • traceRouteプローブ履歴HAddr - ホップのアドレス

プローブに対する応答を受信したかどうかに関係なく、すべてのプローブには以下が記録されます。

  • traceRouteProbeHistoryStatus—何がなぜ起こったのか

  • traceRouteProbeHistoryLastRC - ICMP パケットのリターン コード(RC)値

  • traceRouteProbeHistoryTime - プローブ結果が決定されたタイムスタンプ

プローブを送信できない場合、traceRouteProbeHistoryResponse は 0 に設定されます。プローブがタイムアウトすると、traceRouteProbeHistoryResponse は、プローブがタイムアウトしていることが検出された時刻とプローブが送信された時刻の差に設定されます。

traceRouteHopsTable

traceRouteHopsTable のエントリーには、次の 3 つの変数によってインデックスが付けられます。

  • 最初の 2 つの traceRouteCtlOwnerIndex と traceRouteCtlTestName は、traceRouteCtlTable に使用されるものと同じであり、テストを識別します。

  • 3 番目の変数 traceRouteHopsHopIndex は、現在のホップを示します。これは 1 から始まります (traceRouteCtlInitialTtl ではありません)。

テストが開始されると、指定された traceRouteCtlOwnerIndex と traceRouteCtlTestName を持つ traceRouteHopsTable 内のすべてのエントリが削除されます。このテーブルのエントリは、traceRouteCtlCreateHopsEntries が true に設定されている場合にのみ作成されます。

指定された TTL の最初のプローブ結果が決定されるたびに、新しい traceRouteHopsEntry が作成されます。新しいエントリは、最初のプローブがホストに到達するかどうかに関係なく作成されます。この新しいエントリの traceRouteHopsHopIndex の値が 1 増加します。

注:

指定された TTL のプローブに対する応答がない場合、traceRouteHopsIpTgtAddress の値がない可能性があります。

プローブがホストに到達するたびに、そのホストの IP アドレスがプローブ結果で使用可能になります。現在の traceRouteHopsIpTgtAddress の値が設定されていない場合、traceRouteHopsIpTgtAddress の値はこの IP アドレスに設定されます。現在の traceRouteHopsIpTgtAddress の値が IP アドレスと同じ場合、値は変更されません。現在の traceRouteHopsIpTgtAddress の値がこの IP アドレスと異なる場合 (パスの変更を示す)、新しい traceRouteHopsEntry は次のように作成されます。

  • traceRouteHopsHopIndex 変数が 1 増加

  • traceRouteHopsIpTgtアドレスをIPアドレスに設定

    注:

    新しい TTL 値が使用されるか、パスが変更されるたびに、テストの新しいエントリが traceRouteHopsTable に追加されます。したがって、テストのエントリ数は、使用される異なるTTL値の数を超える可能性があります。

プローブの結果が決定されると、現在のtraceRouteHopsEntryの値traceRouteHopsSentProbesは1増加します。プローブの結果が決定され、プローブがホストに到達した場合:

  • 現在のtraceRouteHopsEntryの値traceRouteHopsProbeResponsesは1増加します。

  • 次の変数が更新されます。

    • traceRouteResultsMinRtt - 最小のラウンドトリップタイム

    • traceRouteResultsMaxRtt - 最大ラウンドトリップタイム

    • traceRouteResultsAverageRtt - 平均ラウンドトリップタイム

    • traceRouteResultsRttSumOfSquares - 往復時間の平方和

    • traceRouteResultsLastGoodProbe - 最後のレスポンスのタイムスタンプ

      注:

      ホストに到達するプローブのみが往復時間の値に影響を与えます。

トラップの生成

トラップを生成するには、traceRouteCtlTrapGeneration の適切なビットを設定する必要があります。また、リモート操作を受信するトラップグループを設定する必要があります。トラップは、以下の条件下で生成されます。

  • 現在のプローブの traceRouteHopsIpTgtAddress が、同じ TTL 値を持つ最後のプローブと異なっています(traceRoutePathChange)。

  • ターゲットへのパスを特定できませんでした (traceRouteTestFailed)。

ターゲットへのパスが決定されました (traceRouteTestCompleted)。

リモート操作を受信するトラップ グループを構成する方法については、次を参照してください: SNMP トラップ グループを構成する および SNMP リモート操作の概要

トレースルートテスト完了の監視

テストが完了すると、 traceRouteResultsOperStatusenabled から disabledに移行します。この移行は、次の状況で発生します。

  • テストは正常に終了します。プローブ結果は、宛先に到達したことを示します。この場合、現在のホップが最後のホップです。このホップの残りのプローブが送信されます。現在のホップの最後のプローブ結果が決定されると、テストは終了します。

  • traceRouteCtlMaxTtl しきい値を超えました。宛先に到達することはありません。テストは、TTL 値が traceRouteCtlMaxttl に等しいプローブの数が送信された後に終了します。

  • traceRouteCtlMaxFailures しきい値を超えました。ステータス requestTimedOut で終了する連続したプローブの数が traceRouteCtlMaxFailures を超えています。

  • テストを終了します。traceRouteCtlAdminStatusdisabled に設定するか、行を削除するには、[traceRouteCtlRowStatus] を [destroy] に設定します。

  • トレースルートテストが正しく設定されていません。traceRouteCtlTable で指定した値または変数が正しくないため、1 つのプローブも送信できません。データの性質上、このエラーはテストが開始されるまで判断できませんでした。つまり、traceRouteResultsOperStatusenabledに移行するまでです。これが発生すると、適切なエラー コードに設定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 にあるようなプローブの履歴を持つことになります。

表 4: traceRouteプローブ履歴テーブル

履歴インデックス

ヒストリーホップインデックス

履歴プローブインデックス

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

トレースルートテストの停止

アクティブなテストを停止するには、 traceRouteCtlAdminStatusdisabled に設定します。テストを停止し、その traceRouteCtlEntrytraceRouteResultsEntrytraceRouteProbeHistoryEntry、および MIB から traceRouteProbeHistoryEntry オブジェクトを削除するには、 traceRouteCtlRowStatusdestroy に設定します。

トレースルート変数の解釈

このトピックでは、トレースルート MIB で明示的に指定されていない以下の変数の範囲に関する情報を提供します。

  • traceRouteCtlMaxRowstraceRouteCtlMaxRows の最大値は 2550 です。これは、最大 TTL (255) に traceRouteCtlProbesPerHop の最大値 (10) を掛けた値を表します。したがって、 traceRouteProbeHistoryTable は、1つの traceRouteCtlEntryの最大値で1つの完全なテストに対応します。通常、最大値は使用されず、 traceRouteProbeHistoryTable は同じ traceRouteCtlEntryに対する多くのテストの完全な履歴に対応できます。

  • traceRouteMaxConcurrentRequests—最大値は 50 です。テストが実行されている場合は、未処理のプローブが 1 つあります。traceRouteMaxConcurrentRequestsは、値が enabledtraceRouteResultsOperStatusされたトレースルートテストの最大数を表します。traceRouteMaxConcurrentRequestsテストを実行してテストを開始しようとすると、maxConcurrentLimitReachedに設定されたプローブが 1 つ作成されtraceRouteProbeHistoryStatusそのテストはすぐに終了します。

  • traceRouteCtlTable- このテーブルで許可されるエントリの最大数は 100 です。101 番目のエントリを作成しようとすると、SNMPv1 には BAD_VALUE メッセージ、SNMPv2 には RESOURCE_UNAVAILABLE メッセージが表示されます。

変更履歴

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer をご利用ください。

リリース
説明
17.2X75-D100
Junos OS リリース 17.2X75-D100 以降では、ICMP ping を開始する前に RPM を設定する必要があります。