Citrix ADC

持続性の設定

仮想サーバーにより実行されるサービスへの接続を維持したい場合(電子商取引で使用される接続など)は、その仮想サーバーに対してパーシステンスを構成する必要があります。アプライアンスは、まず構成されている負荷分散方式に基づいてサーバーを選択しますが、それ以降は同じクライアントからのすべての要求を同じサーバーに転送します。

パーシステンスを構成すると、サーバーの初回選択時以降の要求で、負荷分散方式が無視されます。構成したパーシステンスの適用先サービスがダウンしている場合は、負荷分散方式に基づいて新しいサービスが選択され、同じクライアントからのそれ以降の要求はそのサービスに永続的に割り当てられます。選択したサービスがOut Of Service状態の場合、未処理の要求の処理は続行されますが、新しい要求や接続は受け付けられません。シャットダウン期間が経過すると、既存の接続が閉じます。次の表は、設定できるパーシステンスの種類を示しています。

パーシステンスタイプ 固定接続数
Source IP、SSL Session ID、Rule、DESTIP、SRCIPDESTIP 250K
CookieInsert、URL passive、Custom Server ID メモリの上限。CookieInsertの場合、タイムアウトが0でなければ、メモリの上限に達するまで任意の数の接続が許可されます。

表1. 同時持続接続数の制限

アプライアンスのリソース不足により構成済みのパーシステンスが維持できない場合は、負荷分散方式に基づいてサーバーが選択されます。パーシステンスは、その種類で構成された時間だけ保持されます。一部のパーシステンスの種類は、特定の仮想サーバーに固有です。次の表は、それらの関係を示しています。

持続性タイプヘッダー 1 HTTP HTTPS TCP UDP/IP SSL_Bridge
接続元IP はい はい はい はい はい
CookieInsert はい はい いいえ いいえ いいえ
SSL セッション ID いいえ はい いいえ いいえ はい
URL パッシブ はい はい いいえ いいえ いいえ
カスタムサーバ ID はい はい いいえ いいえ いいえ
規則 はい はい いいえ いいえ いいえ
SRCIPDESTIP - - はい はい -
DESTIP - - はい はい -

表2。各タイプの仮想サーバーで使用できる持続性タイプ

仮想サーバーのグループに対して、パーシステンスを指定することもできます。グループに対してパーシステンスを有効にすると、クライアント要求を受信した仮想サーバーに関係なく、クライアント要求は同じサーバーに送信されます。パーシステンスの構成時間が経過すると、着信したクライアント要求に対して、グループの任意の仮想サーバーが選択されます。

一般的に使用される2つのパーシステンスの種類は、Cookieに基づくパーシステンスとURLのサーバーIDに基づくパーシステンスです。

クッキーに基づくパーシステンスの設定

クッキーに基づくパーシステンスを有効にすると、Citrix ADCアプライアンスはHTTPレスポンスのSet-CookieヘッダーフィールドにHTTPクッキーを追加します。Cookieには、HTTP要求の送信先のサービスに関する情報が含まれています。クライアントはクッキーを保存し、それ以降のすべての要求に含め、ADCはそれを使用してこれらの要求のサービスを選択します。HTTPまたはHTTPSタイプの仮想サーバーに対して、この種類のパーシステンスを使用できます。

Citrix ADCアプライアンスは、<NSC_XXXX>= <ServiceIP> <ServicePort>のCookieを挿入します。

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

  • < <NSC_XXXX> は、仮想サーバ名から派生した仮想サーバ ID です。
  • < <ServiceIP> は、サービスの IP アドレスの 16 進数値です。
  • < <ServicePort> は、サービスのポートの 16 進数です。

ADCは、クッキーを挿入するときにサービスIPとサービスポートを暗号化し、クッキーを受信すると復号化します。

注:クライアントがHTTP Cookieを保存できない場合は、以降の要求にHTTP Cookieが含まれなくなり、パーシステンスは適用されません。

デフォルトでは、ADCアプライアンスは、Netscapeの仕様に準拠してHTTPクッキーバージョン0を送信します。また、RFC 2109に準拠して、バージョン1を送信することもできます。

HTTP Cookieに基づくパーシステンスに対して、タイムアウト値を設定できます。以下の点に注意してください:

  • HTTP Cookieバージョン0を使用する場合、Citrix ADCアプライアンスはCookieの有効期限(HTTP Cookieの有効期限属性)の絶対世界時(GMT)を挿入します。この属性は、ADCアプライアンスの現在のGMT時間とタイムアウト値の合計として計算されます。
  • HTTP cookie バージョン 1 が使用されている場合、ADC アプライアンスは相対的な有効期限(HTTP cookie の Max Age 属性)を挿入します。この場合、クライアントソフトウェアが実際の有効期限を計算します。

注:現在インストールされているほとんどのクライアントソフトウェア(Microsoft Internet ExplorerとNetscapeブラウザー)は、HTTP Cookieバージョン0を理解しますが、一部のHTTPプロキシはHTTP Cookieバージョン1を理解します。

タイムアウト値を 0 に設定すると、使用される HTTP cookie のバージョンに関係なく、ADC アプライアンスは有効期限を指定しません。この場合、有効期限はクライアントソフトウェアに依存し、そのようなCookieは、そのソフトウェアがシャットダウンすると、無効になります。この種類のパーシステンスはシステムリソースを消費しません。したがって、好きな数だけ永続的なクライアントを含めることができます。

管理者は、HTTP クッキーのバージョンを変更できます。

CLI を使用して HTTP クッキーのバージョンを変更するには

コマンドプロンプトで、「;」と入力します。

set ns param [-cookieversion ( 0 | 1 )]

例:

set ns param -cookieversion 1

GUI を使用して HTTP クッキーのバージョンを変更するには

  1. [ システム ] > [ 設定]に移動します。
  2. 詳細ペインで、[Change HTTP Parameters]をクリックします。
  3. [Configure HTTP Parameters]ダイアログボックスの[Cookie]で、[Version 0]または[Version 1]を選択します。

注:パラメータの詳細については、 クッキーに基づくパーシステンスの設定を参照してください。

コマンドプロンプトで次のコマンドを入力し、Cookieに基づくパーシステンスを構成して確認します。

set lb vserver <name> -persistenceType COOKIEINSERT

show lb vserver <name>

例:

set lb vserver vserver-LB-1 -persistenceType COOKIEINSERT
Done
show lb vserver vserver-LB-1
    vserver-LB-1 (10.102.29.60:80) - HTTP   Type: ADDRESS
    .
    .
    .
    Persistence: COOKIEINSERT (version 0)
    Persistence Timeout: 2 min
    .
    .
    .
 Done
  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動します。
  2. 詳細ペインで、パーシステンスを設定する仮想サーバー(たとえば、vserver-LB-1)を選択し、[Open]をクリックします。
  3. [Configure Virtual Server (Load Balancing)]ダイアログボックスの[Method and Persistence]タブにある[Persistence]リストで、[COOKIEINSERT]を選択します。
  4. [Time-out (min)]ボックスに、タイムアウト値(たとえば、「2」)を入力します。
  5. [ OK] をクリックします。
  6. パーシステンスを設定した仮想サーバーを選択して、ペインの下部にある[Details]を表示し、仮想サーバーが正しく構成されていることを確認します。

URL 内のサーバー ID に基づくパーシステンスの構成

Citrix ADCアプライアンスは、URL内のサーバーIDに基づいて永続性を維持できます。URLパッシブ・パーシスタンスと呼ばれる技術では、ADCはサーバー応答からサーバーIDを抽出し、それをクライアント要求のURLクエリに埋め込みます。サーバーIDは、16進数で表記されたIPアドレスとポートです。ADC は、後続のクライアント要求からサーバ ID を抽出し、それを使用してサーバを選択します。

URLパッシブパーシステンスでは、ペイロード式またはポリシーインフラストラクチャ式を設定し、クライアント要求に含まれるサーバーIDの場所を指定する必要があります。式の詳細については、「ポリシーの設定とリファレンス」を参照してください。

注:サーバーIDをクライアント要求から抽出できない場合、サーバーの選択は負荷分散方式に基づいて行われます。

:ペイロード式

式「URLQUERY contains sid=」では、クライアント要求のURLクエリから、「sid=」の後のサーバーIDが抽出されます。したがって、URLhttp://www.citrix.com/index.asp?\&sid;=c0a864100050を含む要求は、IP アドレス 10.102.29.10 およびポート 80 のサーバに送信されます。

タイムアウト値は、この種類のパーシステンスには影響しません。このパーシステンスは、サーバーIDがクライアント要求から抽出できる限り維持されます。この種類のパーシステンスはシステムリソースを消費しないため、保持されるクライアント数に制限はありません。

注:パラメータの詳細については、「負荷分散」を参照してください。

CLI を使用して URL のサーバー ID に基づいて永続性を構成するには

コマンドプロンプトで次のコマンドを入力し、URLのサーバーIDに基づくパーシステンスを構成して確認します。

set lb vserver <name> -persistenceType URLPASSIVE

<show lb vserver <name>

例:

set lb vserver vserver-LB-1 -persistenceType URLPASSIVE
Done
show lb vserver vserver-LB-1
    vserver-LB-1 (10.102.29.60:80) - HTTP   Type: ADDRESS
    .
    .
    .
    Persistence: URLPASSIVE
    Persistence Timeout: 2 min
    .
    .
    .
Done

GUI を使用して URL のサーバー ID に基づいて永続性を構成するには

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動します。
  2. 詳細ペインで、パーシステンスを設定する仮想サーバー(たとえば、vserver-LB-1)を選択し、[Open]をクリックします。
  3. [Configure Virtual Server (Load Balancing)]ダイアログボックスの[Method and Persistence]タブにある[Persistence]リストで、[URLPASSIVE]を選択します。
  4. [Time-out (min)]ボックスに、タイムアウト値(たとえば、「2」)を入力します。
  5. [Rule]ボックスに、有効な式を入力します。または、[Rule]ボックスの横にある[Configure]をクリックし、[Create Expression]ダイアログボックスを使用して式を作成します。
  6. [ OK] をクリックします。
  7. パーシステンスを設定した仮想サーバーを選択して、ペインの下部にある[Details]を表示し、仮想サーバーが正しく構成されていることを確認します。

持続性の設定