Citrix ADC

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

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

確認事項

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

  • Citrix ADCバージョン10.5以降では、キャプチャを復号化し、ECC(楕円曲線暗号)を確実にするために、トレースがキャプチャされる前に仮想サーバーからセッション再利用およびDHパラメータが無効になります。

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

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

    「診断」ページへのアクセス

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

    パケットサイズ

  4. [Start] をクリックして、ネットワークパケットトレースの記録を開始します。
  5. [Stop and Download] をクリックして、テスト完了後にネットワークパケットトレースの記録を停止します。

    トレースを停止してダウンロードする

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

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

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

NetScaler 10.5アプライアンスでパケットトレースを記録する

  1. [システム] > [診断] ページに移動します。

    アクセス診断ページ

  2. 次のスクリーンショットに示すように、 テクニカルサポートツール の下の [新しいトレースの開始] リンクをクリックします。
  3. [パケットサイズ( Packet Size )] フィールドのパケットサイズを 0 に更新します。

    パケットサイズ

    :アプライアンスのヘッダーが不要な場合は、「.pcap 形式でトレースをキャプチャ」を選択します。

  4. [Start] をクリックして、ネットワークパケットトレースの記録を開始します。
  5. [OK] をクリックして、テスト完了後にネットワークパケットトレースの記録を停止します。

    トレース記録の停止

    ネットワークパケットトレースを含む nstrace.cap ファイルが生成されます。

  6. 必要なファイルを強調表示し、[ダウンロード] をクリックします。

    ファイルをダウンロードする

  7. 宛先を指定し、パケットトレースを保存します。
  8. 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ベースのフィルタは、適切なキャプチャを取得するのに十分です。フィルタと例の詳細なリストについては、Citrixドキュメントの「ns trace」を参照してください。

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

仮想サーバの IP アドレスのフィルタを使用して、CLI で「—link」オプションを有効にするか、GUI で「フィルタリングされた接続ピアトラフィックのトレース」オプション(10.1 以降で利用可能)を選択すると、その特定の IP アドレスのフロントエンドトラフィックとバックエンドトラフィックの両方をキャプチャできます。このオプションでは、送信元 IP フィルタまたは宛先 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 パラメータを無効にします。

    SSL パラメータ

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

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

    set ssl vserver "vServer_Name" -dh DISABLED

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

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

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

    ECC カーブ

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

    CC曲線なし

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

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

  1. アプライアンスコンソールに SSH 接続します。
  2. 仮想サーバにバインドされた各 ECC カーブに対して、次のコマンドを実行します。

    unbind ssl vserver "vServer_Name" -eccCurveName "ECC_Curve_Name"