Citrix ADC

ユーザー定義のルールに基づくパーシステンスの設定

ルールベースのパーシステンスを構成すると、Citrix ADCアプライアンスは、一致するルールの内容に基づいてパーシステンスセッションを作成してから、設定された負荷分散方式で選択されたサービスにリクエストを送信します。後で、ルールに一致するすべてのリクエストを同じサービスに送信します。HTTP、SSL、RADIUS、ANY、TCP、および SSL_TCP タイプのサービスに対して、規則ベースの永続性を設定できます。

ルールベースの永続性には、クラシックまたはデフォルトの構文式が必要です。従来の式を使用してリクエストヘッダーを評価したり、デフォルトの構文式を使用してリクエストヘッダー、リクエスト内の Web フォームデータ、レスポンスヘッダー、またはレスポンス本文を評価したりできます。たとえば、従来の式を使用して、HTTP Host ヘッダーの内容に基づいて永続性を設定できます。デフォルトの構文式を使用して、レスポンス Cookie またはカスタムヘッダー内のアプリケーションセッション情報に基づいて永続性を設定することもできます。クラシック構文式とデフォルトの構文式の作成と使用の詳細については、「 ポリシーと式」を参照してください。

設定できる式は、ルールベースの永続性を構成するサービスのタイプによって異なります。たとえば、RADIUS 以外のプロトコルでは RADIUS 固有の式を使用できず、ANY タイプ以外のサービスタイプでは TCP オプションベースの式を使用できません。TCP および SSL_TCP サービスタイプでは、TCP/IP プロトコルデータ、レイヤ 2 データ、TCP オプション、および TCP ペイロードを評価する式を使用できます。

注意:TCP経由で送信される財務情報交換(「FIX」) プロトコルデータに基づくルールベースの永続性を構成するユースケースについては、TCPバイトストリーム内の名前と値のペアに基づくルールベースの永続性の構成を参照してください

ルールベースの永続性は、Citrix SD-WANアプライアンス、Citrix SD-WCitrix SD-WAN プラグイン、キャッシュサーバー、アプリケーションサーバーなどのエンティティで永続性を維持するために使用できます。

注意: ANY 仮想サーバーでは、応答に対してルールベースの永続性を設定できません。

ユーザー定義のルールに基づいてパーシステンスを設定するには、「 ルールを必要としない永続性のタイプの設定」の説明に従ってパーシステンスを設定し、永続性タイプを RULE に設定します。その後、次の手順を実行できます。設定ユーティリティまたは CLI を使用して、ルールベースの永続性を設定できます。

CLI を使用してユーザー定義ルールに基づいて永続性を構成するには

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

set lb vserver <vserverName> [-rule <expression>][-resRule <expression>]
<!--NeedCopy-->

例:

set lb vserver vsvr_name –rule http.req.header("cookie").value(0).typecast_nvlist_t('=',';').value("server")

set lb vserver vsvr_name –resrule http.res.header("set-cookie").value(0).typecast_nvlist_t('=',';').value("server")

<!--NeedCopy-->

GUI を使用してユーザー定義ルールに基づいてパーシステンスを構成するには

  1. Traffic Management > Load Balancing > Virtual Serversに移動して仮想サーバーを開きます。
  2. 「持続性」セクションで、要件を満たすパーシステンスタイプを選択します。仮想サーバーに最も適したパーシステンスタイプは、オプションボタンとして使用できます。特定の仮想サーバータイプに適用可能なその他の永続性タイプは、[ その他] リストから選択できます。

パーシステンス・ルールを構成する

NetScaler リリース12.0ビルド56.20より前のバージョンでは、オプションボタンがない単一の永続性ドロップダウンリストですべてのパーシステンスタイプを使用できます。

例:要求ペイロードのクラシック式

次の古典的な式は、文字列「MyBrowser」を含む User-Agent HTTP ヘッダーの存在に基づいて永続性セッションを作成し、このヘッダーと文字列を含む後続のクライアント要求を、最初の要求用に選択されたのと同じサーバーに送信します。

http header User-Agent contains MyBrowser
<!--NeedCopy-->

例:要求ヘッダーのデフォルトの構文式

次のデフォルトの構文式は、前のクラシック式と同じ動作を行います。

HTTP.REQ.HEADER(“User-Agent”).CONTAINS (“MyBrowser”)

次の式は、「サーバー」クッキーの応答を調べ、そのクッキーを含むすべての要求を、最初の要求で選択されたのと同じサーバーに送信します。

HTTP.RES.HEADER(“SET-COOKIE”).VALUE(0).TYPECAST_NVLIST_T(‘=’,’;’).VALUE(“server”)

ユーザー定義のルールに基づくパーシステンスの設定