Citrix ADC

Citrix ADCでパケットトレースを記録する方法

このトラブルシューティング記事では、管理者がCitrix ADC GUIを使用してネットワークパケットトレースを記録する方法について説明します。

確認事項

  • Citrix では、次のWebページにある「自動ビルドセクション」から最新のWiresharkバージョンを使用することをお勧めします:http://www.wireshark.org/download/automated

  • Citrix ADCバージョン11.1以降では、キャプチャを復号化してECC(楕円曲線暗号化)を確認するために、セッションの再利用とDHパラメーターが仮想サーバーから無効になっています。トレースをキャプチャする前に行う必要があります。

NetScalerバージョン11.1でパケットトレースを記録する

  1. [システム] > [診断]ページに移動します。
  2. 次のスクリーンショットに示すように、[診断] ページの [新しいトレースの開始] リンクをクリックします。

    診断ページへのアクセス

  3. [パケットサイズ] フィールドでパケットサイズを 0 に更新します。

    パケットサイズ

  4. [開始] をクリックして、ネットワークパケットトレースの記録を開始します。
  5. テストが完了したら、[停止してダウンロード] をクリックして、ネットワークパケットトレースの記録を停止します。

    トレースの停止とダウンロード

  6. 必要なファイルを選択して [選択] をクリックし、[ダウンロード] をクリックします。

    パケットトレースのダウンロード

  7. Wireshark ユーティリティでネットワークパケットトレースファイルを開き、ファイルの内容を表示します。

    :秘密キーなしでパケットトレースを復号化するには、[復号化された SSL パケット (SSLPLAIN)] を選択します。

    復号化された SSL パケット

SSL マスターキーのキャプチャ

11.0、11.1以降のバージョンには、その特定のセッション/nstraceに対してのみ有効なセッションキーをキャプチャするオプションがあります。このオプションは、秘密キーを共有しない場合や、SSLPLAINモードを使用する場合に使用できます。詳しくは、https://support.citrix.com/article/CTX135889を参照してください。

秘密キーを共有せずにセッションキーをエクスポートする

ほとんどのシナリオでは、秘密鍵は利用できないか、共有されていません。このようなシナリオでは、秘密鍵の代わりにSSLセッション鍵をエクスポートすることを提案できます。「SSL 秘密キーを共有せずに SSL セッションキーをエクスポートおよび使用して SSL トレースを復号する方法」https://support.citrix.com/article/CTX135889を参照してください 。

フィルター

また、トレース中は IP ベースのフィルタを追加することを常に推奨します。このプロセスにより、関心のあるトラフィックだけが確実にキャプチャされ、トラブルシューティングが容易になります。フィルターを追加すると、トレース中のアプライアンスの負荷も軽減されます。

[フィルタ] セクション

適切なキャプチャを取得するには、単純なIPベースのフィルターで十分です。nstraceフィルターと例の詳細については、Citrix のドキュメントページを参照してください

仮想サーバーIPフィルタ(フロントエンドとバックエンドの両方)でパケットトレースをキャプチャするユースケース

仮想サーバの IP アドレスのフィルタを使用し、CLI で「—link」オプションを有効にするか、GUI で [フィルタリングされた接続ピアトラフィックをトレース] オプション (10.1以降で利用可能) を選択すると、IP アドレスのフロントエンドトラフィックとバックエンドトラフィックの両方をキャプチャできます。

start nstrace -size 0 -filter "CONNECTION.IP.EQ(1.1.1.1)" -link ENABLED show nstrace State: RUNNING Scope: LOCAL TraceLocation: "/var/nstrace/24Mar2017_16_00_19/..." Nf: 24 Time: 3600 Size: 0 Mode: TXB NEW_RX Traceformat: NSCAP PerNIC: DISABLED FileName: 24Mar2017_16_00_19 Filter: "CONNECTION.IP.EQ(1.1.1.1)" Link: ENABLED Merge: ONSTOP Doruntimecleanup: ENABLED TraceBuffers: 5000 SkipRPC: DISABLED Capsslkeys: DISABLED InMemoryTrace: DISABLED 

マージ

周期的なトレースのキャプチャ

断続的な問題のトラブルシューティングは常に困難です。周期的なトレースは、断続的な問題に最適です。トレースは、問題が発生するまでに数時間または数日にわたって実行できます。また、特定のフィルタを使用して、長期間実行する前に生成されるトレースファイルのサイズを評価することもできます。

CLI から以下のコマンドを実行します。

start nstrace -nf 60 -time 30 -size 0 This particular trace will create 60 files each of them for 30 sec. This means the files will start getting overwritten after 60 trace files or 30 mins Show nstrace à To check the status of the nstrace Stop nstrace à To stop the nstrace. 

ベストプラクティス

1 秒あたり GB のトラフィックを処理するユニットでは、トラフィックのキャプチャは非常にリソースを大量に消費するプロセスです。リソースへの影響は、主に CPU とディスク容量の点にあります。ディスク容量への影響は、フィルタリング式を使用することで軽減できます。ただし、アプライアンスはパケットをキャプチャする前にフィルタに従ってパケットを処理する必要があるため、CPU への影響は残り、わずかに増加することがあります。

トレースのベストプラクティスは次のとおりです。

  1. 対象のパケットが確実にキャプチャされる場合は、トレースを実行する期間をできるだけ制限する必要があります。
  2. 営業時間外など、ユーザー数 (したがってトラフィック) が大幅に減少したときにトレースアクティビティが発生するようにスケジュールします。

その他のリソース

GUIから仮想サーバーでのセッション再利用を無効にする

トレースをキャプチャしてトレースで SSL ハンドシェイクを完了すると、セッションの再利用は無効になります。有効にすると、トレースで部分的なハンドシェイクをキャプチャできます。トレース収集後に必ずこのオプションを有効にしてください。 永続化メソッドが sslsession の場合、SSL セッションの再利用を無効にしないでください。既存の接続の永続性が損なわれるためです。詳細については、https://support.citrix.com/article/CTX121925を参照してください。

  1. 仮想サーバーを開き、[SSL パラメータ] に移動します。
  2. セッション再利用を有効にするが有効な場合は無効にします。

    セッション再利用を有効にする

CLIから仮想サーバーでのセッション再利用を無効にする

  1. アプライアンスコンソールに SSH 接続します。
  2. 次のコマンドを実行して、仮想サーバーから DH Param を無効にします。

    set ssl vserver "vServer_Name" -sessReuse DISABLED

GUI から仮想サーバの DH パラメータを無効にする

DHパラメータについて理解するにはhttps://support.citrix.com/article/CTX213335を参照してください。

  1. 仮想サーバーを開き、[SSL パラメータ] に移動します。
  2. DH Paramが有効な場合は無効にします。

    SSL パラメータ

CLI から仮想サーバの DH パラメータを無効にする

  1. アプライアンスコンソールに SSH 接続します。
  2. 次のコマンドを実行して、仮想サーバーから DH Param を無効にします。

    set ssl vserver "vServer_Name" -dh DISABLED

GUIから仮想サーバ上のECCカーブを無効にする

キャプチャされたSSLトレースを秘密鍵で復号化するために、ECCカーブが無効になっています。関連する SSL 暗号が使用されている場合は、キーを無効にしないでください。ECC カーブの詳細については、https://support.citrix.com/article/CTX205289を参照してください。

  1. 仮想サーバを開き、[ECC Curve] に移動します。

    ECC カーブ

  2. 仮想サーバにバインドされたECC Curveがない場合、他のアクションは必要ありません。

    CC カーブなし

  3. ECCカーブが仮想サーバにバインドされている場合は、ECCカーブをクリックして仮想サーバからバインド解除します。

CLIから仮想サーバ上のECCカーブを無効にする

  1. アプライアンスコンソールに SSH 接続します。
  2. 仮想サーバにバインドされているECC Curveごとに、次のコマンドを実行します。

    unbind ssl vserver "vServer_Name" -eccCurveName "ECC_Curve_Name"

Citrix ADCでパケットトレースを記録する方法