このページで
データ パスのデバッグとトレース オプションの構成
SRX シリーズ デバイスのデータ パス デバッグについて
データ パスのデバッグ、またはエンドツーエンドのデバッグのサポートは、パケット処理パスに沿って複数の処理ユニットでトレースとデバッグを提供します。パケット フィルターは、実稼働システムへの影響を最小限に抑えながら実行できます。
パケット キャプチャを収集することを目標にしている場合は、Junos OS リリース 19.3R1 で導入された動作モード パケット キャプチャを活用することを強くお勧めします。動作モードからのパケット キャプチャを参照してください。
SRX シリーズ デバイスでは、パケットはイングレスからエグレスの処理まで、さまざまなコンポーネントが関係する一連のイベントを通過します。
データ パス デバッグ機能を使用すると、処理パスに沿って異なるデータ ポイントでトレースおよびデバッグ(パケットをキャプチャ)できます。パケット処理パスで使用可能なイベントは次のとおりです。NP イングレス、LBT(ロード バランシング スレッド)、jexec、POT(パケット注文スレッド)、NP エグレス。特定のモジュールのセキュリティ フロー トレース フラグが設定されている場合は、フロー モジュール トレースを有効にすることもできます。
各イベントで、4 つのアクション(カウント、パケット ダンプ、パケットの概要、トレース)のいずれかを指定できます。データ パス デバッグでは、キャプチャするパケットを定義するフィルターが提供され、一致するパケットのみがトレースされます。パケット フィルターは、論理インターフェイス、プロトコル、送信元 IP アドレス プレフィックス、送信元ポート、宛先 IP アドレス プレフィックス、宛先ポートに基づいてパケットを除外できます。
データ パス デバッグは、SRX1400、SRX3400、SRX3600、SRX4600、SRX5400、SRX5600、SRX5800 でサポートされています。
エンドツーエンドのデバッグを有効にするには、次の手順を実行する必要があります。
キャプチャ ファイルを定義し、最大キャプチャ サイズを指定します。
要件に基づいて特定のタイプのトラフィックのみをトレースするパケット フィルターを定義します。
パケットをキャプチャする場所(LBT や NP イングレスなど)から処理パス上の場所を指定するアクション プロファイルを定義します。
データ パスのデバッグを有効にします。
トラフィックをキャプチャします。
データ パスのデバッグを無効にします。
レポートを表示または分析します。
ポートおよびインターフェイス オプションのパケット フィルタリング動作は次のとおりです。
パケット フィルターは、指定されている場合にのみ port IPv4 と IPv6 の両方のトラフィックをトレースします。
パケット フィルターは、指定されている場合にのみ interface IPv4、IPV6、および非 IP トラフィックをトレースします。
動作モードからのパケット キャプチャ
データ パスのデバッグまたはエンドツーエンド のデバッグは、パケット処理パスに沿って複数の処理ユニットでトレースとデバッグを提供します。パケット キャプチャは、データ パス デバッグ機能の 1 つです。設定をコミットすることなく、実稼働システムへの影響を最小限に抑えながら、動作モードからパケット キャプチャを実行できます。
フィルターを使用してパケットをキャプチャし、キャプチャするパケットを定義できます。パケット フィルターは、論理インターフェイス、プロトコル、送信元 IP アドレス プレフィックス、送信元ポート、宛先 IP アドレス プレフィックス、宛先ポートに基づいてパケットを除外できます。パケット キャプチャ出力のファイル名、ファイル タイプ、ファイル サイズ、キャプチャ サイズを変更できます。フィルタを 2 つのフィルタに拡張し、フィルタの値をスワップすることもできます。
動作モードからパケットをキャプチャするには、次の手順を実行する必要があります。
- 動作モードから、CLI コマンドを使用して要件に基づいてトラフィックのタイプをトレースするパケット フィルタを
request packet-capture start
定義します。使用可能なパケット キャプチャ フィルター オプションについては、を参照してください request packet-capture start 。 - 必要なパケットをキャプチャします。
- CLI コマンドを
request packet-capture stop
使用してパケット キャプチャを停止するか、要求されたパケット数を収集した後、パケット キャプチャは自動的に停止します。 - キャプチャしたパケット データ レポートを表示または分析します。
動作モードからパケットをキャプチャする制限は次のとおりです。
設定モード パケット キャプチャと動作モード パケット キャプチャは共存できません。
動作モード パケット キャプチャは 1 回の操作であり、システムはこのコマンドの履歴を保存しません。
低レートのトラフィック フローで動作モード パケット キャプチャを使用する必要があります。
関連項目
トレース オプションを使用したセキュリティ デバッグについて
Junos OS トレース機能を使用すると、アプリケーションはセキュリティー・デバッグ情報をファイルに書き込めます。このファイルに表示される情報は、設定した基準に基づきます。この情報を使用して、セキュリティ アプリケーションの問題を分析できます。
トレース関数は、各スレッドが独自のトレース バッファーに書き込む、分散した方法で動作します。これらのトレース バッファーは、1 つのポイントで収集し、並べ替え、トレース ファイルに書き込まれます。トレース メッセージは、IPC(プロセス間通信)プロトコルを使用して配信されます。トレース メッセージの優先度は、BGP、OSPF、IKE などの制御プロトコル パケットよりも低いため、配信は信頼性が高いと見なされません。
トレース オプションを使用したフロー デバッグについて
フロー トレース オプションの場合は、 、 、 destination-prefix、 source-prefixsource-portprotocolinterface、 および の組み合わせをdestination-port使用してパケット フィルタを定義できます。特定のモジュールのセキュリティー フロー トレース フラグが設定されている場合、特定のパケット フィルターに一致するパケットはフロー トレースをトリガーし、デバッグ情報をトレース ファイルに書き込みます。
データ パスのデバッグ(CLI プロシージャ)
データ パス デバッグは、SRX1400、SRX3400、SRX3600、SRX5400、SRX5600、SRX5800 でサポートされています。
データ パス デバッグ用にデバイスを構成するには、次の手順に従います。
フロー デバッグ トレース オプションの設定(CLI プロシージャ)
次の例では、を使用 security flow traceoptions
して設定できるオプションを表示します。
フィルター 1 パケット フィルターの imap 宛先ポートを照合するには、次のステートメントを使用します。
[edit] user@host# set security flow traceoptions packet-filter filter1 destination-port imap
filter1 パケット フィルターの 1.2.3.4 宛先 IPv4 プレフィックス アドレスを設定するには、次のステートメントを使用します。
[edit] user@host# set security flow traceoptions packet-filter filter1 destination-prefix 1.2.3.4
filter1 パケット フィルターの fxp0 論理インターフェイスを設定するには、次のステートメントを使用します。
[edit] user@host# set security flow traceoptions packet-filter filter1 interface fxp0
filter1 パケット フィルターの TCP IP プロトコルを照合するには、次のステートメントを使用します。
[edit] user@host# set security flow traceoptions packet-filter filter1 protocol tcp
フィルター 1 パケット フィルターの HTTP ソース ポートを照合するには、次のステートメントを使用します。
[edit] user@host# set security flow traceoptions packet-filter filter1 source-port http
filter1 パケット フィルターの 5.6.7.8 IPv4 プレフィックス アドレスを設定するには、次のステートメントを使用します。
[edit] user@host# set security flow traceoptions packet-filter filter1 source-prefix 5.6.7.8
セキュリティ トレース オプションの設定(CLI プロシージャ)
CLI 設定エディタでセキュリティ トレース オプションを設定するには、次の設定ステートメントを使用します。
リモート トレースを無効にするには、次のステートメントを入力します。
[edit] user@host# set security traceoptions no-remote-trace
トレース・メッセージをローカル・ファイルに書き込むには、以下のステートメントを入力します。システムは、トレースファイルをディレクトリに /var/log/ 保存します。
[edit] user@host# set security traceoptions use-local-files
トレース・ファイルの名前を指定するには、以下のステートメントを入力します。有効な値の範囲は 1~1024 文字です。名前には、スペース、/、または % 文字を含めることはできません。デフォルトのファイル名はセキュリティです。
[edit] user@host# set security traceoptions file filename
累積できるトレース・ファイルの最大数を指定するには、以下のステートメントを入力します。有効な値の範囲は 2~ 1000 です。デフォルト値は 3 です。
[edit] user@host# set security traceoptions file files 3
情報をファイルにロギングする際にシステムが使用する照合基準を指定するには、次のステートメントを入力します。正規表現を入力します。ワイルドカード (*) 文字を使用できます。
[edit] user@host# set security traceoptions file match *thread
すべてのユーザーがトレース ファイルを読み取ることを許可するには、ステートメントを
world-readable
入力します。それ以外の場合は、ステートメントを入力しますno-world-readable
。[edit] user@host# set security traceoptions file world-readable user@host# set security traceoptions file no-world-readable
トレース・ファイルが拡張できる最大サイズを指定するには、以下のステートメントを入力します。ファイルが指定されたサイズに達すると、圧縮され、filename0.gz の名前が変更され、次のファイル名が filename1.gz という名前になります。有効な値の範囲は 10240 から 1,073,741,824 です。
[edit] user@host# set security traceoptions file size 10240
トレース オプションを有効にし、複数のトレース操作を実行するには、次のフラグを設定します。
[edit] user@host# set security traceoptions flag all user@host# set security traceoptions flag compilation user@host# set security traceoptions flag configuration user@host# set security traceoptions flag routing-socket
これらのトレース オプション設定が行うグループまたは適用しないグループを指定するには、次のステートメントを入力します。
[edit] user@host# set security traceoptions apply-groups value user@host# set security traceoptions apply-groups-except value
ログおよびトレース・ファイルの表示
コマンドを monitor start
入力して、システム ログとトレース ファイルに対するリアルタイムの追加情報を表示します。
user@host> monitor start filename
デバイスが指定された filename
ファイルにレコードを追加すると、レコードが画面に表示されます。たとえば、という名前system-log
のシステム ログ ファイルを設定している場合([] 階層レベルにステートメントをedit system
syslog
含める)、コマンドをmonitor start system-log
入力してシステム ログに追加されたレコードを表示できます。
監視対象のファイルのリストを表示するには、コマンドを monitor list
入力します。指定されたファイルのレコードの表示を停止するには、コマンドを monitor stop filename
入力します。
セキュリティ トレース オプションの出力の表示
目的
セキュリティー・トレース・オプションの出力を表示します。
対処
コマンドを show security traceoptions
使用して、トレース ファイルの出力を表示します。例えば、
[edit] user@host # show security traceoptions file usp_trace user@host # show security traceoptions flag all user@host # show security traceoptions rate-limit 888
この例の出力は次のとおりです。
Apr 11 16:06:42 21:13:15.750395:CID-906489336:FPC-01:PIC-01:THREAD_ID-01:PFE:now update 0x3607edf8df8in 0x3607e8d0 Apr 11 16:06:42 21:13:15.874058:CID-1529687608:FPC-01:PIC-01:THREAD_ID-01:CTRL:Enter Function[util_ssam_handler] Apr 11 16:06:42 21:13:15.874485:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default1: Rate limit changed to 888 Apr 11 16:06:42 21:13:15.874538:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default1: Destination ID set to 1 Apr 11 16:06:42 21:13:15.874651:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default2: Rate limit changed to 888 Apr 11 16:06:42 21:13:15.874832:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default2: Destination ID set to 1 Apr 11 16:06:42 21:13:15.874942:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default3: Rate limit changed to 888 Apr 11 16:06:42 21:13:15.874997:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default3: Destination ID set to 1
マルチキャスト トレース操作の表示
マルチキャスト トレース操作を監視および表示するには、コマンドを mtrace monitor
入力します。
user@host> mtrace monitor
Mtrace query at Apr 21 16:00:54 by 192.1.30.2, resp to 224.0.1.32, qid 2a83aa packet from 192.1.30.2 to 224.0.0.2 from 192.1.30.2 to 192.1.4.1 via group 224.1.1.1 (mxhop=60) Mtrace query at Apr 21 16:00:57 by 192.1.30.2, resp to 224.0.1.32, qid 25dc17 packet from 192.1.30.2 to 224.0.0.2 from 192.1.30.2 to 192.1.4.1 via group 224.1.1.1 (mxhop=60) Mtrace query at Apr 21 16:01:00 by 192.1.30.2, resp to same, qid 20e046 packet from 192.1.30.2 to 224.0.0.2 from 192.1.30.2 to 192.1.4.1 via group 224.1.1.1 (mxhop=60) Mtrace query at Apr 21 16:01:10 by 192.1.30.2, resp to same, qid 1d25ad packet from 192.1.30.2 to 224.0.0.2 from 192.1.30.2 to 192.1.4.1 via group 224.1.1.1 (mxhop=60)
この例では、クエリのみを mtrace
表示します。ただし、デバイスが応答を mtrace
キャプチャすると、表示は似ていますが、完全な mtrace
応答も(コマンド出力に表示されるのとまったく同じように)表示 mtrace from-source
されます。
表 1 は、表示の出力フィールドを要約します。
フィールド |
説明 |
---|---|
|
|
|
クエリを発行するホストの IP アドレス。 |
|
|
|
|
|
|
|
|
|
|
|
|
デバイスのリストの表示
デバイスと指定した宛先ホスト間のデバイスのリストを表示するには、次の構文を使用して traceroute
コマンドを入力します。
user@host> traceroute host <interface interface-name> <as-number-lookup> <bypass-routing> <gateway address> <inet | inet6> <no-resolve> <routing-instance routing-instance-name> <source source-address> <tos number> <ttl number> <wait seconds>
表 2 コマンド オプションについて traceroute
説明します。
オプション |
説明 |
---|---|
|
traceroute パケットを指定したホスト名または IP アドレスに送信します。 |
|
(オプション)指定したインターフェイスで traceroute パケットを送信します。このオプションを含めなければ、traceroute パケットはすべてのインターフェイスで送信されます。 |
|
(オプション)デバイスと宛先ホスト間の各中間ホップの自律システム(AS)番号を表示します。 |
|
(オプション)ルーティング テーブルをバイパスし、traceroute パケットを直接接続されたインターフェイス上のホストにのみ送信します。ホストが直接接続インターフェイス上にいない場合は、エラー メッセージが返されます。 このオプションを使用して、ローカル システムを通過するルートがないインターフェイスを介してローカル システムへのルートを表示します。 |
|
(オプション)指定したゲートウェイを使用してルーティングします。 |
|
(オプション)traceroute パケットを強制的に IPv4 宛先に送信します。 |
|
(オプション)traceroute パケットを強制的に IPv6 宛先に送信します。 |
|
(オプション)パスに沿ったホップのホスト名の表示を抑制します。 |
|
(オプション)traceroute に指定したルーティング インスタンスを使用します。 |
|
(オプション)traceroute パケットで指定した送信元アドレスを使用します。 |
|
(オプション)traceroute パケットの IP ヘッダーにサービスタイプ(TOS)値を設定します。~ |
|
(オプション)traceroute パケットの TTL(存続時間)値を設定します。~までの |
|
(オプション)応答を待機する最大時間を設定します。 |
コマンドを traceroute
終了するには、Ctrl-C キーを押します。
コマンドからの出力例を次に traceroute
示します。
user@host> traceroute host2
traceroute to 173.24.232.66 (172.24.230.41), 30 hops max, 40 byte packets 1 173.18.42.253 (173.18.42.253) 0.482 ms 0.346 ms 0.318 ms 2 host4.site1.net (173.18.253.5) 0.401 ms 0.435 ms 0.359 ms 3 host5.site1.net (173.18.253.5) 0.401 ms 0.360 ms 0.357 ms 4 173.24.232.65 (173.24.232.65) 0.420 ms 0.456 ms 0.378 ms 5 173.24.232.66 (173.24.232.66) 0.830 ms 0.779 ms 0.834 ms
表示されるフィールドは、J-Web traceroute 診断ツールによって表示されるものと同じです。
例:SRX シリーズ デバイスでのエンドツーエンド デバッグの設定
この例では、SRX5K-MPC を使用して SRX シリーズ デバイスでエンドツーエンド のデバッグを構成および有効にする方法を示しています。
要件
この例では、次のハードウェアおよびソフトウェア コンポーネントを使用します。
SRX5K-MPC と 100 ギガビット イーサネット CFP トランシーバを搭載した SRX5600 デバイス
SRX シリーズ デバイス用 Junos OS リリース 12.1X47-D15 以降
開始する前に、以下を行います。
この機能を設定する前に、デバイス初期化以外の特別な設定は必要ありません。
概要
データ パスデバッグは、パケット処理パスに沿って複数の処理ユニットでトレースとデバッグを提供することで、トラブルシューティング機能を強化します。データ パス デバッグ機能を使用すると、処理パスに沿って異なるデータ ポイントでトレースおよびデバッグ(パケットをキャプチャ)できます。各イベントでは、アクション(カウント、パケット ダンプ、パケット サマリー、トレース)を指定し、キャプチャするパケットを定義するフィルターを設定できます。
この例では、トラフィック フィルタを定義し、アクション プロファイルを適用します。アクション・プロファイルは、処理装置に対するさまざまなアクションを指定します。受信および送信は、送受信トラフィックのデータをキャプチャする処理パス上の場所として指定されます。
次に、動作モードでデータ パスのデバッグを有効にし、最後にデータ キャプチャ レポートを表示します。
データ パス デバッグは、SRX1400、SRX3400、SRX3600、SRX5400、SRX5600、SRX5800 でサポートされています。
設定
手順
CLI クイック設定
この例を迅速に設定するには、次のコマンドをコピーして、テキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致するために必要な詳細情報を変更し、コマンドを階層レベルで [edit]
CLI にコピー アンド ペーストしてから、設定モードから入力 commit
します。
set security datapath-debug traceoptions file e2e.trace size 10m set security datapath-debug capture-file e2e.pcap format pcap set security datapath-debug maximum-capture-size 1500 set security datapath-debug capture-file files 10 set security datapath-debug action-profile profile-1 preserve-trace-order set security datapath-debug action-profile profile-1 record-pic-history set security datapath-debug action-profile profile-1 event np-ingress trace set security datapath-debug action-profile profile-1 event np-ingress count set security datapath-debug action-profile profile-1 event np-ingress packet-summary set security datapath-debug action-profile profile-1 event np-egress trace set security datapath-debug action-profile profile-1 event np-egress count set security datapath-debug action-profile profile-1 event np-egress packet-summary
手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。その方法の詳細については、『Junos OS CLI ユーザー ガイド』の「設定モードでの CLI エディターの使用」を参照してください。
データ パス デバッグを構成するには、次の手順に進めます。
パケット処理パスに沿って、複数の処理ユニットのセキュリティデータパスデバッグオプションを編集します。
[edit] user@host# edit security datapath-debug
キャプチャ ファイル、ファイル形式、ファイル サイズ、ファイル数を有効にします。
[edit security datapath-debug] user@host# set traceoptions file e2e.trace size 10m user@host# set capture-file e2e.pcap format pcap; user@host# set maximum-capture-size 1500 user@host# set capture-file files 10
アクション プロファイルのアクション プロファイル、イベント タイプ、アクションを設定します。
[edit security datapath-debug] user@host# set action-profile profile-1 preserve-trace-order user@host# set action-profile profile-1 record-pic-history user@host# set action-profile profile-1 event np-ingress trace user@host# set action-profile profile-1 event np-ingress count user@host# set action-profile profile-1 event np-ingress packet-summary user@host# set action-profile profile-1 event np-egress trace user@host# set action-profile profile-1 event np-egress count user@host# set action-profile profile-1 event np-egress packet-summary
結果
設定モードから、コマンドを入力して設定を show security datapath-debug
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
traceoptions { file e2e.trace size 10m; } capture-file e2e.pcap format pcap; maximum-capture-size 1500; capture-file files 10; action-profile { profile-1 { preserve-trace-order; record-pic-history; event np-ingress { trace; packet-summary; packet-dump; } event np-egress { trace; packet-summary; packet-dump; } } }
デバイスの設定が完了したら、設定モードから入力 commit
します。
データ パスデバッグの有効化
手順
手順
データ パス デバッグを構成した後、動作モードからデバイスでプロセスを開始する必要があります。
データ パスのデバッグを有効にします。
user@host> request security datapath-debug capture start
datapath-debug capture started on file datapcap
構成を検証してレポートを表示する前に、データ パス のデバッグを無効にする必要があります。
user@host> request security datapath-debug capture stop
datapath-debug capture succesfully stopped, use show security datapath-debug capture to view
注:データのキャプチャが完了したら、デバッグ プロセスを停止する必要があります。デバッグ プロセスを停止せずにキャプチャしたファイルを開こうとすると、取得したファイルはサードパーティー製ソフトウェア(tcpdump や wireshark など)を介して開くことができません。
検証
設定が正しく機能していることを確認します。
データ パス デバッグ パケット キャプチャの詳細の検証
目的
データ パスのデバッグ構成を有効にしてキャプチャしたデータを検証します。
対処
動作モードから、コマンドを show security datapath-debug capture
入力します。
Packet 8, len 152: (C2/F2/P0/SEQ:57935:np-ingress) 00 10 db ff 10 02 00 30 48 83 8d 4f 08 00 45 00 00 54 00 00 40 00 40 01 9f c7 c8 07 05 69 c8 08 05 69 08 00 91 1f 8f 03 2a a2 ae 66 85 53 8c 7d 02 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 Packet 9, len 152: (C2/F2/P0/SEQ:57935:np-egress) 00 30 48 8d 1a bf 00 10 db ff 10 03 08 00 45 00 00 54 00 00 40 00 3f 01 a0 c7 c8 07 05 69 c8 08 05 69 08 00 91 1f 8f 03 2a a2 ae 66 85 53 8c 7d 02 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37....
簡潔にするために、コマンド出力は少数の show
サンプルのみを表示するように切り捨てられます。追加のサンプルを省略記号(...)に置き換えました。
CLI 動作モードから結果を表示するには、ローカル UNIX シェルにアクセスし、ディレクトリにナビゲートします /var/log/<file-name>。結果は、ユーティリティを使用して tcpdump
読み取ることができます。
user@host>start shell %tcpdump -nr/var/log/e2e.pcap
21:50:04.288767 C0/F3 event:1(np-ingress) SEQ:1 IP 192.168.14.2 > 192.168.13.2: ICMP echo request, id 57627, seq 0, length 64 21:50:04.292590 C0/F3 event:2(np-egress) SEQ:1 IP 192.168.14.2 > 192.168.13.2: ICMP echo request, id 57627, seq 0, length 64 1:50:04.295164 C0/F3 event:1(np-ingress) SEQ:2 IP 192.168.13.2 > 192.168.14.2: ICMP echo reply, id 57627, seq 0, length 64 21:50:04.295284 C0/F3 event:2(np-egress) SEQ:2 IP 192.168.13.2 > 192.168.14.2: ICMP echo reply, id 57627, seq 0, length 64
データ パス デバッグのトラブルシューティングが完了した場合は、手動で開始/停止する必要があるパケット キャプチャ(パケット ダンプ)のデータ パス デバッグ設定など、すべての traceoptions
データ パス デバッグ設定(フロー traceoptions に限定されない)と完全なデータ パス デバッグ設定を削除します。デバッグ構成のいずれかの部分がアクティブなままの場合は、デバイス (CPU/メモリ) のリソースを引き続き使用します。