Citrix ADC

高度なポリシーを使用したポリシーのバインド

ポリシーを定義したら、ポリシーをバインドポイントにバインドし、優先度レベルを指定して、ポリシーをいつ呼び出すかを指定します。ポリシーは、1 つのバインドポイントにのみバインドできます。バインドポイントはグローバルにできます。つまり、構成したすべての仮想サーバーに適用できます。また、バインドポイントは、負荷分散またはコンテンツスイッチング仮想サーバーのいずれかである特定の仮想サーバーに固有にすることができます。すべてのバインドポイントがすべての機能で使用できるわけではありません。

ポリシーが評価される順序によって、ポリシーが適用される順序が決まり、機能では通常、さまざまなポリシーバンクが特定の順序で評価されます。ただし、他の機能が評価の順序に影響を与えることがあります。ポリシーバンク内では、評価の順序は、ポリシーで設定されたパラメータの値によって異なります。ほとんどの機能は、評価結果が処理中のデータと一致するポリシーに関連付けられたすべてのアクションを適用します。統合キャッシュ機能は例外です。

ポリシーバインディングの機能固有の相違点

ポリシーは、組み込みのグローバルバインドポイント(バンク)、仮想サーバー、またはポリシーラベルにバインドできます。

ただし、Citrix ADC の機能は、使用可能なバインディングの種類によって異なります。次の表は、ポリシーを使用するさまざまなCitrix ADC機能でポリシーバインディングを使用する方法をまとめたものです。

[フィーチャ名] 機能で設定された仮想サーバ 機能で設定されたポリシー ポリシーに設定されたバインドポイント 機能におけるポリシーの使用
DNS なし ドメインネームシステム グローバル 要求に対して DNS 解決を実行する方法を決定する。
コンテンツスイッチング(注:この機能では、クラシックポリシーまたはアドバンスポリシーのいずれかをサポートできますが、両方をサポートすることはできません)。 コンテンツスイッチング(CS) コンテンツスイッチングポリシー コンテンツスイッチングまたはキャッシュリダイレクト仮想サーバ、ポリシーラベル 着信要求の特性に基づいて、応答を処理するサーバまたはサーバグループを判断する。要求特性には、デバイスタイプ、言語、Cookie、HTTP メソッド、コンテンツタイプ、および関連するキャッシュサーバが含まれます。
統合キャッシュ なし キャッシュポリシー グローバルオーバーライド、グローバルデフォルト、ポリシーラベル、ロードバランシング、コンテンツスイッチング、または SSL オフロード仮想サーバー HTTP 応答を Citrix ADC アプライアンスの統合キャッシュに格納し、そのキャッシュから処理できるかどうかを判断します。
レスポンダー なし レスポンダーポリシー グローバルオーバーライド、グローバルデフォルト、ポリシーラベル、ロードバランシング、コンテンツスイッチング、または SSL オフロード仮想サーバー レスポンダー関数の動作を構成する。
書き換え なし 書き換えポリシー グローバルオーバーライド、グローバルデフォルト、ポリシーラベル、ロードバランシング、コンテンツスイッチング、または SSL オフロード仮想サーバー 提供する前に変更する HTTP データを識別します。ポリシーは、データを変更するためのルールを提供します。たとえば、HTTP データを変更して、着信要求のアドレスに基づいて選択したサーバーに要求をリダイレクトしたり、セキュリティ上の目的で応答のサーバー情報をマスクしたりできます。
リライト機能の URL 変換機能 なし トランスフォーメーション・ポリシー グローバルオーバーライド、グローバルデフォルト、ポリシーラベル URL を変更する必要があるかどうかを評価するために、HTTP トランザクションおよびテキストファイル内の URL を識別すること。
Citrix Gateway(クライアントレス VPN 機能のみ) VPN サーバー クライアントレスアクセスポリシー VPN グローバル、VPN サーバー Citrix Gateway で認証、承認、監査などの機能を実行する方法を決定し、Citrix Gatewayを使用した一般的なWebアクセスに対する書き換えルールを定義します。

バインドポイントと評価の順序

ポリシーを有効にするには、処理中のある時点でポリシーが呼び出されるようにする必要があります。これを行うには、ポリシーをバインドポイントに関連付けます。バインドポイントにバインドされたポリシーのコレクションは、ポリシーバンクと呼ばれます。

Citrix ADCが評価するバインドポイントを以下に示します。ポリシーバンク内の一般的な評価順で示します。

  1. 要求時のオーバーライド。要求が機能を経由すると、Citrix ADCは最初にその機能の要求時間上書きポリシーを評価します。
  2. 要求時の負荷分散仮想サーバー。すべての要求時間上書きポリシーを評価した後にポリシー評価を完了できない場合、Citrix ADCは仮想サーバーの負荷分散のための要求時間ポリシーを処理します。
  3. 要求時のコンテンツスイッチング仮想サーバー。負荷分散仮想サーバーのすべての要求時間ポリシーが評価された後でポリシー評価を完了できない場合、Citrix ADCはコンテンツスイッチング仮想サーバーの要求時間ポリシーを処理します。
  4. 要求時のデフォルト。すべての要求時間後にポリシー評価を完了できない場合、仮想サーバー固有のポリシーが評価されると、Citrix ADCは要求時間の詳細ポリシーを処理します。
  5. 応答時間のオーバーライド。応答時に、Citrix ADCは、応答時間オーバーライドのバインドポイントにバインドされたポリシーで開始します。
  6. 応答時間の負荷分散仮想サーバー。すべての応答時間上書きポリシーが評価された後でポリシー評価を完了できない場合、Citrix ADCは応答時間ポリシーを処理して仮想サーバーの負荷分散を行います。
  7. 応答時間のコンテンツスイッチング仮想サーバー。負荷分散仮想サーバーのすべてのポリシーを評価した後にポリシー評価を完了できない場合、Citrix ADCはコンテンツスイッチング仮想サーバーの応答時間ポリシーを処理します。
  8. 応答時間のデフォルト。すべての応答時間後にポリシー評価を完了できない場合、仮想サーバー固有のポリシーが評価されると、Citrix ADCは応答時間の詳細ポリシーを処理します。

複数の機能にわたるポリシー評価

機能内のポリシーの評価に加えて、ポリシーをコンテンツスイッチ仮想サーバにバインドしている場合は、これらのポリシーが他のポリシーよりも先に評価されることに注意してください。コンテンツスイッチング仮想サーバーにポリシーをバインドすると、Citrix ADC バージョン 9.0.x 以降では、8.x バージョンとは異なる結果が得られます。Citrix ADC 9.0 以降のバージョンでは、次のように評価が行われます。

  • コンテンツスイッチングポリシーは、他のポリシーの前に評価されます。コンテンツスイッチングポリシーが TRUE と評価されると、ターゲットロードバランシング vserver が選択されます。
  • すべてのコンテンツスイッチングポリシーが FALSE と評価されると、コンテンツスイッチング VIP の下にあるデフォルトのロードバランシング vserver が選択されます。

コンテンツスイッチングプロセスによってターゲットロードバランシング vserver が選択されると、ポリシーは次の順序で評価されます。

  1. グローバルオーバーライドバインドポイントにバインドされたポリシー。
  2. デフォルトのロードバランシング vserver にバインドされたポリシー。
  3. ターゲットコンテンツスイッチング vserver にバインドされたポリシー。
  4. グローバルデフォルトバインドポイントにバインドされるポリシー。

ポリシーが意図した順序で評価されるようにするには、次のガイドラインに従ってください。

  • デフォルトのロードバランシング vserver に外部から直接到達できないことを確認します。たとえば、vserver の IP アドレスは 0.0.0.0 です。
  • ロードバランシングのデフォルト vserver で内部データが公開されないようにするには、「503 Service Unavailable」ステータスで応答するようにポリシーを設定し、デフォルトのロードバランシング vserver にバインドします。

ポリシーバンクのエントリ

ポリシーバンクの各エントリには、少なくとも、ポリシーと優先度レベルがあります。また、優先順位ベースの評価順序を変更するエントリを構成したり、外部ポリシーバンクを呼び出すエントリを構成することもできます。

次の表は、ポリシーバンクの各エントリをまとめたものです。

ポリシー名 優先度 Goto式 呼び出しタイプ 呼び出されるポリシーバンク
ポリシー名、または NOPOLICY という名前の「ダミー」ポリシー。NOPLOCy エントリは、ルールを処理せずに評価フローを制御します。 整数。 オプションです。評価するバンク内の次のポリシーを識別する、または任意のさらなる評価を終了する オプションです。外部ポリシーバンクが呼び出されることを示します。このフィールドでは、グローバルポリシーラベルまたは仮想サーバに選択肢を制限します。 オプションです。呼び出しタイプとともに使用されます。これは、ポリシーバンクまたは仮想サーバー名のラベルです。Citrix ADCは、外部バンクの処理後に現在のバンクに戻ります。

ポリシーがTRUEと評価された場合、Citrix ADCはポリシーに関連付けられたアクションを保存します。ポリシーがFALSEと評価されると、Citrix ADCは次のポリシーを評価します。ポリシーがTRUEでもFALSEでもない場合、Citrix ADCは関連するUndef(未定義)アクションを使用します。

ポリシーバンク内の評価順序

ポリシーバンク内では、評価順序は次の項目によって異なります。

  • 優先度です。

    評価順序に関する情報の最小量は、数値優先度レベルです。数値が小さいほど、プライオリティが高くなります。

  • Goto式。

    指定した場合、Goto 式は、評価される次のポリシー(通常は同じポリシーバンク内)を示します。Goto 式は、バンク内でのみ前進できます。ループを防ぐために、Goto ステートメントがバンク内で逆方向を指している場合、ポリシーバンクの設定は無効です。

  • 他のポリシーバンクの呼び出し。

    どのエントリでも、外部ポリシーバンクを呼び出すことができます。Citrix ADCには、ルールを持たないNOPOLICYという名前の組み込みエンティティが用意されています。別のポリシーバンクを呼び出すが、呼び出し前に他のルールを処理したくない場合は、ポリシーバンクに NOPOLICY エントリを追加できます。複数のポリシーバンクに複数の NOPOLICY エントリを含めることができます。

Goto 式の値は次のとおりです。

  • 次。

    このキーワードは、現在のポリシーバンクで、次に高いプライオリティレベルを持つポリシーを選択します。

  • 整数。

    整数を指定する場合は、現在のポリシーバンク内の別のポリシーの優先度レベルと一致する必要があります。

  • END.

    このキーワードは、現在のポリシーの処理後に評価を停止し、このバンク内の追加のポリシーは処理されません。

  • ブランク。

    Goto 式が空の場合、END を指定した場合と同じです。

  • 数値式。

    これは、現在のバンク内の別のポリシーのプライオリティ番号に解決される高度なポリシー式です。

  • USE_INVOCATION_RESULT.

    このフレーズは、外部ポリシーバンクを呼び出す場合にのみ使用できます。このフレーズを入力すると、Citrix ADCは次のアクションのいずれかを実行します。

    • 呼び出されたポリシーバンクの最後の Goto の値が END であるか、または空の場合、呼び出し結果は END となり、評価は停止します。
    • 呼び出されたポリシーバンクの最後の Goto 式が END 以外の場合、Citrix ADC は NEXT を実行します。

次の表は、Goto ステートメントとポリシーバンクの呼び出しを使用するポリシーバンクを示しています。

ポリシー名 優先度 Goto 呼び出し 呼び出されるポリシーバンク
クライアント証明書ポリシー (規則:要求にクライアント証明書が含まれていますか?) 100 300 なし なし
SubnetPolicy (ルール:クライアントはプライベートサブネットに属していますか?) 200 NEXT なし なし
NOPOLICY 300 USE INVOCATION RESULT 仮想サーバのリクエスト My_Request_VServer
NOPOLICY 350 USE INVOCATION RESULT ポリシーラベル My_Policy_Label
WorkingHoursPolicy (ルール:勤務時間ですか?) 400 END なし なし

表3. Gotos と外部バンク呼び出しを使用するポリシーバンクの例

ポリシー評価の終了方法

ポリシーバンクの評価は、次のいずれかの場合に終了します。

  • ポリシーが TRUE と評価され、Goto ステートメントの値が END になります。

    この機能では、これ以上のポリシーやポリシーバンクは評価されません。

  • 外部ポリシーバンクが呼び出され、評価によって END が戻され、Goto ステートメントでは USE_INVOCATION_RESULT または END の値が使用されます。

    この機能の次のポリシーバンクで評価が継続されます。たとえば、現在のバンクが要求時間優先バンクである場合、Citrix ADCは次に仮想サーバーの要求時間ポリシーバンクを評価します。

  • Citrix ADCは、この機能のすべてのポリシーバンクを歩いていましたが、ENDは発生していません。

    このポリシーバンクで評価される最後のエントリである場合、Citrix ADCは次の機能に進みます。

ポリシー評価後のアクションの使用方法

特定のデータポイント(HTTPリクエストなど)に関連するすべてのポリシーを評価した後、Citrix ADCは、データに一致するポリシーに関連付けられたすべてのアクションを保存します。

ほとんどの機能では、一致するポリシーからのすべてのアクションが、Citrix ADCから送信されるトラフィックパケットに適用されます。統合キャッシュ機能は、CACHE または NOCACHE の 1 つのアクションのみを適用します。このアクションは、「最も高い優先度」ポリシーバンク内で最も低い優先度値を持つポリシーに関連付けられます(たとえば、仮想サーバ固有のポリシーの前に要求時間上書きポリシーが適用されます)。