ADC

HTTP Cookieのパーシステンス

HTTPCookie パーシステンスを構成すると、NetScalerアプライアンスは最初のクライアントリクエストのHTTPヘッダーにCookie を設定します。Cookie には、負荷分散アルゴリズムによって選択されたサービスの IP アドレスとポートが含まれます。他の HTTP 接続と同様に、クライアントはその Cookie を後続のリクエストに含めます。

NetScalerアプライアンスがCookie を検出すると、接続の持続性を維持したまま、そのリクエストをサービスIPとCookie 内のポートに転送します。このタイプのパーシスタンスは、HTTP または HTTPS タイプの仮想サーバーで使用できます。このパーシステンスタイプはアプライアンスリソースを消費しないため、永続的なクライアントの数に制限はありません。

注:クライアントの Web ブラウザが Cookie を拒否するように構成されている場合、HTTP Cookie ベースの永続性は機能しません。ウェブサイトでクッキーチェックを設定し、クッキーを適切に保存していないように見えるクライアントに、ウェブサイトで使用する場合は Cookie を有効にする必要があることを警告することをお勧めします。

Citrix ADCアプライアンスが挿入するクッキーの形式は次のとおりです。

NSC_XXXX=<ServiceIP ><ServicePort>

各項目の意味は次のとおりです:

  • NSC_XXXX は、仮想サーバー名から派生した仮想サーバー ID です。
  • ServiceIPとServicePortは、それぞれサービスIPアドレスとサービスポートをエンコードして表現したものです。IP アドレスとポートは別々にエンコードされます。

このタイプの永続性のタイムアウト値を設定して、セッションの非アクティブ期間を指定できます。指定された期間接続がアクティブでない場合、Citrix ADCアプライアンスは永続セッションを破棄します。同じクライアントからの後続の接続では、設定された負荷分散方式に基づいて新しいサーバが選択され、新しい永続セッションが確立されます。

注:タイムアウト値を0に設定すると、NetScalerアプライアンスは有効期限を指定せず、クライアントのブラウザをシャットダウンしても保存されないセッションCookie を設定します。

デフォルトでは、NetScalerアプライアンスはクライアントブラウザーとの互換性を最大限に高めるためにHTTPバージョン0のクッキーを設定します。(バージョン 1 の Cookie を理解できるのは特定の HTTP プロキシのみで、最も一般的に使用されているブラウザでは理解できません)。RFC2109 に準拠するため、HTTP バージョン 1 の Cookie を設定するようにアプライアンスを設定できます。HTTP バージョン 0 Cookie の場合、アプライアンスはクッキーの有効期限の日付と時刻を絶対協定世界時(GMT)として挿入します。この値は、アプライアンスの現在のGMT時間とタイムアウト値の合計として計算されます。HTTP バージョン 1 Cookie の場合、アプライアンスは HTTP クッキーの「Max-Age」属性を設定することによって相対的な有効期限を挿入します。この場合、クライアントのブラウザは実際の有効期限を計算します。

アプライアンスによって挿入された Cookie に基づいてパーシステンスを設定するには、ルールを必要としない永続性タイプの設定を参照してください

HTTP Cookie では、アプライアンスはデフォルトで Cookie がスクリプト不能であり、クライアントアプリケーションに公開してはならないことを示すHTTPOnlyフラグを設定します。したがって、クライアント側のスクリプトは Cookie にアクセスできず、クライアントはクロスサイトスクリプティングの影響を受けません。

ただし、一部のブラウザはHTTPOnlyフラグをサポートしていないため、Cookie を返さない場合があります。その結果、永続性が壊れます。このフラグをサポートしていないブラウザでは、永続性CookieのHTTPOnlyフラグを省略できます。

CLIを使用してHTTPOnlyフラグ設定を変更するには

コマンドプロンプトで入力します。

set lb parameter -httpOnlyCookieFlag (ENABLED|DISABLED)
<!--NeedCopy-->

例:

>  set lb parameter -httpOnlyCookieFlag disabled
   Done
> show lb parameter
  Global LB parameters:
       Persistence Cookie HttpOnly Flag: DISABLED
       Use port for hash LB: YES
 Done
<!--NeedCopy-->

GUIを使用してHTTPOnlyフラグの設定を変更するには

  1. [ トラフィック管理] > [ロードバランシング] > [ロードバランシングパラメータの設定] に移動し、[ パーシステンス Cookie HttpOnly ] フラグを選択またはクリアします。

クッキーの暗号化

リリース10.5ビルド55.8以降、SSL暗号化に加えてCookie を暗号化できるようになりました。

set lb parameter -UseEncryptedPersistenceCookie ENABLED -cookiePassphrase test
<!--NeedCopy-->
  1. [ **トラフィック管理 ] > [ 負荷分散パラメータの変更] に移動し、[ パーシステンス Cookie 値のエンコード] を選択し、[Cookie パスフレーズ] にパスフレーズを入力します。**
HTTP Cookieのパーシステンス