Citrix ADC

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

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

確認事項

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

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

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

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

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

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

    パケットサイズ

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

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

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

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

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

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

  1. System > Diagnosticsページに移動します。

    診断ページにアクセスする

  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ベースのフィルターで十分です。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
<!--NeedCopy-->

マージ

循環トレースのキャプチャ

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

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.

<!--NeedCopy-->

ベストプラクティス

1 秒あたりのギガバイトのトラフィックを処理するユニットでは、トラフィックのキャプチャは非常にリソースを大量に消費するプロセスです。リソースへの影響は、主に 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曲線を無効にする

キャプチャされた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 カーブに対して、次のコマンドを実行します。

    unbind ssl vserver "vServer_Name" -eccCurveName "ECC_Curve_Name"