ADC

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

ポリシーを定義した後、ポリシーをバインドポイントにバインドし、優先度レベルを指定することで、ポリシーを呼び出すことができます。ポリシーは 1 つのバインドポイントにのみバインドできます。バインドポイントは、グローバル(構成されたすべての仮想サーバーに適用)、またはバインドポイントを特定の仮想サーバー(ロードバランシングまたはコンテンツスイッチング仮想サーバー)にすることができます。

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

注:

統合キャッシュ機能は例外です。

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

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

ただし、Citrix ADCの機能は、使用可能なバインディングのタイプが異なります。次の表は、ポリシーを使用するCitrix ADC機能のポリシーバインディングをまとめたものです。

機能名 機能で設定された仮想サーバ 機能で設定されたポリシー ポリシーに設定されたバインドポイント 機能でのポリシーの使用
DNS なし 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 と評価されると、ターゲットの負荷分散仮想サーバーが選択されます。
  • すべてのコンテンツスイッチングポリシーが FALSE と評価されると、コンテンツスイッチング VIP の下にあるデフォルトの負荷分散仮想サーバーが選択されます。

コンテンツスイッチングプロセスでターゲット負荷分散仮想サーバーを選択すると、ポリシーは次の順序で評価されます。

  1. グローバルオーバーライドバインドポイントにバインドされているポリシー。
  2. デフォルトの負荷分散仮想サーバーにバインドされているポリシー。
  3. ターゲットコンテンツスイッチング仮想サーバーにバインドされているポリシー。
  4. グローバルデフォルトバインドポイントにバインドされているポリシー。

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

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

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

政策バンクの各エントリには、最低でもポリシーと優先レベルがあります。プライオリティベースの評価順序を変更するエントリを設定したり、外部ポリシーバンクを呼び出すエントリを設定することもできます。 ポリシーバンクは、特定のバインドポイントでバインドされ、一部のトラフィックについて評価できるポリシーのグループです。一部のポリシーが HTTP プロトコルタイプの LB vserver にバインドされている場合、LB vserver はポリシーバンクです。また、このポリシーバンクにバインドされたポリシーは、HTTP トラフィックについて評価できます。一部の書き換えポリシーが、DNS_REQ_OVERRIDE バインドポイントでグローバルにリライトするようにバインドされている場合、DNS_REQ_OVERRIDE bindpoit は、一部のポリシーがバインドされているポリシーバンクになります。

ポリシーラベルでは、ポリシーの数をバインドできるため、ポリシーラベルもポリシーバンクです。

ポリシーバンクは、プロトコル、条件、優先順位に基づいて区別されます。2 LB 仮想サーバーがあるとします。1つはHTTPタイプで、もう1つはDNSタイプです。また、これらの仮想サーバーにはさまざまなポリシーがバインドされます。したがって、両方の仮想サーバがポリシーバンクですが、いずれかのポリシーバンクにバインドされたポリシーは HTTP トラフィックに対して評価されます。別のポリシーバンクにバインドされたポリシーは、DNS トラフィックについて評価されます。ポリシー評価ごとに、ルールが評価されます。NOPOLICY についても、ルール true が評価されます。 ユーザーがすべてのトラフィックに対してポリシーラベルを呼び出す場合、ユーザは NOPOLICY をルール true として使用できます。

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

ポリシー名 優先度 五島式 呼び出しタイプ ポリシーバンクの呼び出し
ポリシー名、または「ダミー」ポリシー。 整数。 オプションです。設定されていない場合、ADC はデフォルトの gotoPriorityExpression の値を使用します。現在のポリシーが真と評価された場合に評価される次のポリシーを識別するか、それ以上の評価を終了します。 オプションです。外部ポリシーバンクが呼び出されたことを示します。このフィールドは、選択肢をグローバルポリシーラベルまたは仮想サーバに制限します。 オプションです。呼び出しタイプと共に使用します。これは、ポリシーバンクまたは仮想サーバ名のラベルです。Citrix ADCは、外部バンクを処理した後、現在のバンクに戻ります。

ポリシーがTRUEと評価された場合、Citrix ADCはポリシーに関連付けられているアクションを保存します。gotoPriorityExpressionフィールド値に基づいて次のポリシーを評価を追加します。ポリシーがFALSEと評価された場合、Citrix ADCは次のポリシーを評価します。ポリシーがTRUEでもFALSEでもない場合、Citrix ADCは関連付けられた未定義(未定義)アクションを使用します。 呼び出しタイプは、ポリシーバンクタイプを指定します。値は次のいずれかになります。

  • Request Vserver: 仮想サーバーに関連付けられている要求時ポリシーを呼び出します。
  • Response Vserver: 仮想サーバーに関連付けられている応答時間ポリシーを呼び出します。
  • ポリシーラベル:銀行のポリシーラベルによって識別されるように、別のポリシーバンクを呼び出します。 優先順位式フィールドの値へ行く:
  • 次へ移動-次に高い優先度でポリシーに移動します。
  • Goto END-評価を終了
  • Goto #-評価される次のポリシーのプライオリティ番号を生成する式。Gotoは政策銀行でしか前進できない。
  • Goto USE_INVOCATION_RESULT — このポリシーが別のポリシーラベルを呼び出す場合に適用されます。呼び出されたポリシーラベルの最後の goto の値が END の場合、評価は停止します。最後の goto が END 以外の場合、現在のポリシーラベルは NEXT を実行します。 Goto 式を省略すると、END を指定するのと同じになります。 Goto 式を使用するポリシーバンクの例:
ポリシー名 優先度 Goto 呼び出し ポリシーバンクが呼び出される
クライアント証明書ポリシー 100 300 なし なし
サブネットポリシー 200 Next なし なし
ポリシーなし 300 呼び出し結果を使用する リクエストサーバー My_request_vServer
ポリシーなし 350 呼び出し結果を使用する ポリシーラベル Policy_Label
勤務時間ポリシー 400 終わり なし なし

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

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

  • 優先順位。

    評価順序に関する情報の最小量は、数値の優先レベルです。数値が小さいほど、優先順位が高くなります。

  • Goto 式。

    指定すると、Goto 式は評価される次のポリシーを示します。通常、同じポリシーバンク内。Goto 表現は、バンク内でのみ進むことができます。ループを防止するために、Goto ステートメントがバンクを後方を指す場合、ポリシーバンク設定は有効ではありません。

  • 他の政策銀行の呼び出し。

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

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

  • 次。

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

  • 整数。

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

  • 終わり。

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

  • ブランク。

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

  • 数値式。

    これは、現在の銀行内の別のポリシーの優先番号に解決される高度なポリシー式です。

  • INVOCATION_RESULT。

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

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

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

ポリシー名 優先度 Goto 呼び出し ポリシーバンクの呼び出し                    
ClientCertificatePolicy (ルール:リクエストにクライアント証明書が含まれていますか?) 100 300 なし なし                    
SubnetPolicy (ルール:クライアントはプライベートサブネットの出身ですか?) 200 次へ なし なし NOPOLICY 300 呼び出し結果の使用 仮想サーバーのリクエスト my_Request_vServer NOPOLICY 350 呼び出し結果を使用する ポリシーラベル my_Policy_Label
WorkingHoursPolicy(ルール:それか労働時間?) 400 END なし                      

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

ポリシー評価の終了方法

ポリシーバンクの評価は、Citrix ADCアプライアンスが次のいずれかの手順を実行すると終了します。

  • ポリシー評価が「TRUE」の場合、外部ポリシーバンクを呼び出し、その Goto ステートメントの値が「USE_INVOCATION_RESULT」になります。また、外部ポリシー・バンク内の別のポリシーでも「TRUE」と評価され、Gotoステートメントの値が「END」の場合は、外部から戻った後に政策銀行、それ以上の政策は評価されません。

  • 外部ポリシーバンクが呼び出され、その評価が END を返し、Goto ステートメントは USE_INVOCATION_RESULT または END の値を使用します。評価は、この機能に関する次のポリシーバンクで継続されます。たとえば、現在のバンクが要求時間オーバーライドバンクである場合、Citrix ADCは仮想サーバーの要求時間ポリシーバンクを次に評価します。

  • Citrix ADCは、この機能のすべてのポリシーバンクを通過しましたが、ENDが見つかりませんでした。

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

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

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

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

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