Citrix ADCクラスターのパケットのトレース
NetScalerオペレーティングシステムには、 アプライアンスで送受信されるパケットのダンプを取得するためのns traceというユーティリティが用意されています 。このユーティリティは、パケットをトレースファイルに格納します。これらのファイルを使用して、クラスターノードへのパケットフローの問題をデバッグできます。トレースファイルは Wireshark アプリケーションで表示する必要があります。
ns trace ユーティリティの重要な側面は次のとおりです。
- 従来の式とデフォルトの式を使用して、パケットを選択的にトレースするように設定できます。
- ns トレース形式 (.cap) と TCP ダンプ形式 (.pcap) の複数の形式でトレースをキャプチャできます。
- 構成コーディネーター上のすべてのクラスターノードのトレースファイルを集約できます。
- 複数のトレースファイルを 1 つのトレースファイルにマージできます (.cap ファイルのみ)。
nsトレースユーティリティは、NetScalerコマンドラインまたはNetScalerシェルから使用できます。
スタンドアロンアプライアンスのパケットをトレースするには
アプライアンスで start ns trace コマンドを実行します。<date-timestamp>このコマンドは、/var/nstrace/ ディレクトリにトレースファイルを作成します。<id>トレースファイルの名前は nstrace.cap という形式です。
show ns trace コマンドを実行すると、ステータスを表示できます。stop ns trace コマンドを実行すると、パケットのトレースを停止できます。
注
nstrace.sh ファイルを実行して、NetScalerシェルからnsトレースユーティリティを実行することもできます。ただし、nstraceユーティリティはNetScalerコマンドラインインターフェイスから使用することをお勧めします。
クラスタのパケットをトレースするには
すべてのクラスターノードでパケットをトレースし、構成コーディネーターのすべてのトレースファイルを取得できます。
クラスタ IP アドレスで start ns trace コマンドを実行します。コマンドは伝播され、すべてのクラスターノードで実行されます。トレースファイルは、<date-timestamp>
/var/nstrace/ ディレクトリの個々のクラスターノードに保存されます。<id>トレースファイルの名前は nstrace\<id> _node .cap という形式です。
各ノードのトレースファイルを使用して、ノードの操作をデバッグできます。ただし、すべてのクラスターノードのトレースファイルを 1 か所にまとめる場合は、クラスタ IP アドレスで stop ns trace コマンドを実行する必要があります。すべてのノードのトレースファイルが、以下のように<date-timestamp>
/var/nstrace/ ディレクトリのクラスター構成コーディネーターにダウンロードされます。
複数のトレースファイルをマージする
トレースファイルから 1 つのファイルを作成できます (のみサポート)。Cap ファイル (クラスタノードから取得したファイル)。シングルトレースファイルから、クラスタパケットのトレースを累積的に表示できます。単一トレースファイル内のトレースエントリは、パケットがクラスターで受信された時間に基づいてソートされます。
トレースファイルをマージするには、Citrix ADCシェルで次のように入力します。
> nstracemerge.sh -srcdir \<DIR\> -dstdir \<DIR\> -filename \<name\> -filesize \<num\>
各項目の意味は次のとおりです。
-
srcdir
トレースファイルのマージ元のディレクトリです。このディレクトリ内のすべてのトレースファイルが 1 つのファイルにマージされます。 -
dstdir
は、マージされたトレースファイルが作成されるディレクトリです。 -
Filename
は、作成されるトレースファイルの名前です。 -
Filesize
トレースファイルのサイズです。
例
ns trace ユーティリティを使用してパケットをフィルタリングする例をいくつか示します。
-
3 つのノードのバックプレーンインターフェイス上のパケットをトレースするには、次の手順を実行します。
クラシックな表現を使う:
> start nstrace -filter "INTF == 0/1/1 && INTF == 1/1/1 && INTF == 2/1/1"
既定の表現の使用:
> start nstrace -filter "CONNECTION.INTF.EQ("0/1/1") && CONNECTION.INTF.EQ("1/1/1") && CONNECTION.INTF.EQ("2/1/1")"
-
送信元 IP アドレス 10.102.34.201、または送信元ポートが 80 より大きく、サービス名が「s1」ではないシステムからのパケットを追跡するには:
クラシックな表現を使う
> start nstrace -filter \"SOURCEIP == 10.102.34.201 \|| \(SVCNAME != s1 && SOURCEPORT > 80)\"
既定のエクスプレッションの使用
> start nstrace -filter \"CONNECTION.SRCIP.EQ\(10.102.34.201) \|| \(CONNECTION.SVCNAME.NE\(\"s1\") && CONNECTION.SRCPORT.GT\(80))\"
注
ns トレースで使用されるフィルタの詳細については、 ns トレースを参照してください。
トレース中の SSL セッションキーのキャプチャ
「start ns trace」コマンドを実行すると、 capsslkeys
すべてのSSLセッションのSSLマスターキーをキャプチャする新しいパラメータを設定できます。このパラメータを含めると、nstrace.sslkeys という名前のファイルがパケットトレースとともに生成されます。このファイルをWiresharkにインポートして、対応するトレースファイル内のSSLトラフィックを復号化できます。
この機能は、後でWiresharkにインポートしてSSLトラフィックを復号化できるセッションキーをエクスポートするWebブラウザに似ています。
SSL セッションキーを使用するメリット
SSL セッションキーを使用する利点は次のとおりです。
- SSLPLAIN モードのキャプチャで作成された余分なパケットを含まない、より小さなトレースファイルを生成します。
- トレースからプレーンテキスト [SP (1)] を表示し、マスターキーファイルを共有するか、機密データを共有しないことで保護するかを選択できます。
SSL セッションキーを使用する場合の制限事項
SSL セッションキーを使用する場合の制限は次のとおりです。
- セッションの最初のパケットがキャプチャされない場合、SSL セッションは復号化できません。
- 連邦情報処理標準 (FIPS) モードが有効になっている場合、SSL セッションはキャプチャできません。
コマンドラインインターフェイス (CLI) を使用して SSL セッションキーをキャプチャするには
コマンドプロンプトで次のコマンドを入力して、トレースファイルの SSL セッションキーを有効または無効にし、トレース操作を確認します。
> start nstrace -capsslkeys ENABLED
> show nstrace
Example
> start nstrace -capsslkeys ENABLED
> show nstrace
State: RUNNING Scope: LOCAL TraceLocation: "/var/nstrace/04May2016_17_51_54/..."
Nf: 24 Time: 3600 Size: 164 Mode: TXB NEW_RX
Traceformat: NSCAP PerNIC: DISABLED FileName: 04May2016_17_51_54 Link: DISABLED
Merge: ONSTOP Doruntimecleanup: ENABLED TraceBuffers: 5000 SkipRPC: DISABLED
SkipLocalSSH: DISABLED Capsslkeys: ENABLED InMemoryTrace: DISABLED
Done
NetScaler GUIを使用してSSLセッションキーを構成するには
- [ 構成] > [システム] > [診断] > [テクニカルサポートツール ] に移動し、[ 新規トレースの開始 ] をクリックして、アプライアンス上の暗号化されたパケットのトレースを開始します。
- 「 トレースの開始 」ページで、「 SSL マスターキーのキャプチャ 」チェックボックスを選択します。
- [OK] をクリックし、[完了] をクリックします。
SSL マスターキーを Wireshark にインポートするには
Wireshark GUI で、[ 編集] > [設定] > [プロトコル] > [SSL] > (Pre)-Master-Secret ログファイル名に移動し 、アプライアンスから取得したマスターキーファイルを指定します。