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は現在、RFC 2925で定義されているPing MIBとトレースルートMIBの2つのSNMPリモート操作をサポートしています。これらの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、Traceroute MIB、および jnxTraceRoute MIBへの読み書きアクセスを許可する remote-community という名前のコミュニティを作成するには、[edit snmp]階層レベルで以下のステートメントを含めます。

communityステートメントの詳細については、SNMPコミュニティコミュニティ(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 テストを開始するには、複数のセット プロトコル データ ユニット(PDU)を使用するか、単一のセット PDU を使用するの 2 つの方法があります。

始める前に

Pingテストを開始する前に、Ping MIBビューを設定します。これにより、pingMIBでのSNMPSetリクエストが許可されます。詳細については、MIBビューの設定を参照してください。

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 に設定する SNMP Set リクエストは、行に必要な情報が指定されていないか、一貫性がない場合、失敗します。

ビューの設定方法については、 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 テストを監視する

pingCtlAdminStatusenabled に設定されると、SNMP Set リクエストの確認応答がクライアントに送り返される前に、次の処理が行われます。

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

  • pingResultsOperStatusenabledに移行します。

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

pingResultsテーブル

テストの実行中、 pingResultsEntry はテストのステータスを追跡します。 pingResultsOperStatus の値は、テストの実行中は enabled され、テストが停止すると disabled されます。

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

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

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

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

  • pingResultsIpTgtAddrTypeunknownに設定されています。

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

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

テストが実行されると、 pingCtlTimeOut 秒ごとに次のことが可能になります。

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

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

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

    注:

    各テストに対して未解決のプローブは 1 つだけ存在しません。

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

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

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

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

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

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

  • pingResultsProbeResponses 1増加します。

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

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

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

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

    • pingResultsRttSumOfSquares- 往復時間の二乗和

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

      注:

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

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

pingProbeHistoryTable

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 を設定する必要があります。また、リモート操作を受信するには、トラップグループを設定する必要があります。トラップは 、以下の条件下で生成されます。

  • pingProbeFailedトラップはpingCtlTrapProbeFailureFilterテスト中に連続して何回あるプローブが失敗するたびに生成されます。

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

  • pingTestCompletedトラップは、テストが完了し、失敗するプローブが pingCtlTrapTestFailureFilter 未満の場合に生成されます。

    注:

    プローブ結果の 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: pingProbeHistoryTable の結果: 最初の ping テスト後

pingProbeHistoryIndex

プローブ結果

11

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

12

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

13

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

14

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

15

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

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

表 2: pingProbeHistoryTable の結果: 2 番目のテストの最初のプローブの後

pingProbeHistoryIndex

プローブ結果

12

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

13

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

14

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

15

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

16

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

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

表 3: pingProbeHistoryTable の結果: 2 回目の ping テスト後

pingProbeHistoryIndex

プローブ結果

26

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

27

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

28

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

29

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

30

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

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

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

  • pingCtlRowStatusdestroy に設定すると、テスト全体を削除できます。

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

  • 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に行を作成し、traceRouteCtlAdminStatusenabledに設定します。traceRouteCtlAdminStatusenabledに設定する前に、少なくとも以下を指定する必要があります。

  • traceRouteCtlOwnerIndexSnmpAdminString

  • traceRouteCtlTestNameSnmpAdminString

  • traceRouteCtlTargetAddressInetAddress

  • traceRouteCtlRowStatusRowStatus

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

トレースルートテスト完了を監視する

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

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

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

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

  • テストを終了します。 traceRouteCtlAdminStatus を設定するには、行を disabled するか、 traceRouteCtlRowStatusdestroy に設定して削除します。

  • トレースルート テストを誤って設定しました。traceRouteCtlTableで指定した値または変数が正しくないため、単一のプローブが送信できません。データの性質上、このエラーはテストが開始されるまで判別できませんでした。つまり、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:traceRouteProbeHistoryTable

履歴インデックス

履歴ホップインデックス

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

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、および traceRouteProbeHistoryEntry オブジェクトをMIBから削除するには、 traceRouteCtlRowStatusdestroyに設定します。

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

このトピックでは、トレースルート MIB で明示的に指定されていない以下の変数の範囲について説明します。

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

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

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

変更履歴テーブル

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。

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