Citrix ADC

書き換えの仕組み

書き換えポリシーは、規則とアクションで構成されます。このルールは、書き換えが適用されるトラフィックを決定し、アクションによってCitrix ADCが実行するアクションを決定します。複数の書き換えポリシーを定義できます。ポリシーごとに、バインドポイントと優先順位を指定します。

バインドポイントとは、Citrix ADCがトラフィックを調べて、書き換えポリシーを適用できるかどうかを検証するトラフィックフロー内のポイントを指します。ポリシーを特定の負荷分散またはコンテンツスイッチング仮想サーバーにバインドするか、Citrix ADCで処理されるトラフィック全体にポリシーを適用する場合は、ポリシーをグローバルにできます。これらのポリシーは、グローバルポリシーと呼ばれます。

ユーザー定義のポリシーに加えて、Citrix ADCにはいくつかのデフォルトポリシーがあります。デフォルトポリシーを変更または削除することはできません。

ポリシーを評価するために、Citrix ADCは下記の順序に従います。

  • グローバルポリシー
  • 特定の仮想サーバにバインドされたポリシー
  • デフォルトポリシー

注:Citrix ADCは、ポイントにバインドされている場合にのみ書き換えポリシーを適用できます。

Citrix ADCは、以下の手順で書き換え機能を実装します。

  • Citrix ADCアプライアンスは、グローバルポリシーをチェックし、個々のバインドポイントでポリシーをチェックします。

  • 複数のポリシーがバインドポイントにバインドされている場合、Citrix ADCは優先度の順にポリシーを評価します。プライオリティが最も高いポリシーが最初に評価されます。各ポリシーを評価した後、ポリシーが TRUE と評価された場合(トラフィックがルールに一致した場合)、ポリシーに関連付けられたアクションが、実行するアクションのリストに追加されます。一致は、ポリシー規則で指定された特性が、評価される要求または応答の特性と一致する場合に発生します。

  • どのポリシーでも、アクションに加えて、現在のポリシーが評価された後に評価されるポリシーを指定できます。このポリシーは「式に移動」と呼ばれます。どのポリシーでも、式に移動(gotoPriorityExpr)が指定されている場合、Citrix ADCは式に移動(Go to Expression)ポリシーを評価し、次に優先順位の高いポリシーを無視します。

    ポリシーのプライオリティを指定して、Go to Expression ポリシーを示すことができます。ポリシーの名前は使用できません。特定のポリシーを評価した後にCitrix ADCで他のポリシーの評価を停止する場合は、「式に移動」を「終了」に設定します。

  • すべてのポリシーが評価された後、またはポリシーの「式に移動」が「終了」に設定されている場合、Citrix ADCはアクションのリストに従ってアクションの実行を開始します。

書き換えポリシーの構成については「書き換えポリシーの設定」を書き換えポリシーのバインドについては、「書き換えポリシーのバインド」を参照してください。

次の図は、書き換え機能を使用した場合に、Citrix ADCが要求または応答をどのように処理するかを示しています。

図1:書き換えプロセス

画像

ポリシー評価

プライオリティが最も高いポリシーが最初に評価されます。Citrix ADCは、一致するものが見つかっても、リライトポリシーの評価を停止しません。Citrix ADCで設定されているすべてのリライトポリシーを評価します。

  • ポリシーがTRUEと評価された場合、Citrix ADCは以下の手順に従います。
    • ポリシーで「式に移動」が「終了」に設定されている場合、Citrix ADCは他のすべてのポリシーの評価を停止し、書き換えを開始します。
    • gotoPriority式は、「次へ」、「終了」、いくつかの整数、または「INVOCATION_LIST」に設定できます。値は、次のプライオリティを持つポリシーを決定します。次の表は、式の値ごとにCitrix ADCが実行するアクションを示しています。

      式の値 操作(アクション)
      NEXT 次のプライオリティを持つポリシーが評価されます。
      END ポリシーの評価が停止します。
      <an integer> 指定されたプライオリティのポリシーが評価されます。
      INVOCATION_LIST [次へ移動] または [終了] は、呼び出しリストの結果に基づいて適用されます。
  • ポリシーがFALSEと評価された場合、Citrix ADCは優先順位の順で評価を継続します。
  • ポリシーが UNDEFINED(エラーのために受信したトラフィックで評価できない)と評価されると、Citrix ADCはUNDEFINED条件(undefActionと呼ばれる)に割り当てられたアクションを実行し、ポリシーのさらなる評価を停止します。

Citrix ADCは、評価が完了した後にのみ、実際の書き換えを開始します。これは、ポリシーによって識別されるアクションのリストを参照し、TRUEと評価され、書き換えを開始します。リスト内のすべてのアクションを実装した後、Citrix ADCは必要に応じてトラフィックを転送します。

ポリシーで、HTTP ヘッダーまたは本文、または TCP ペイロードの同じ部分で競合または重複するアクションが指定されていないことを確認します。このような競合が発生すると、Citrix ADCは未定義の状況を検出し、書き換えを中止します。

リライトアクション

Citrix ADCアプライアンスで、本文内のテキストの追加、置換、削除、ヘッダーの追加、変更、削除など、TCPペイロードの変更をリライトアクションとして実行するアクションを指定します。書き換えアクションについては、「書き換えアクションの設定」を参照してください。

次の表では、ポリシーがTRUEと評価されたときにCitrix ADCが実行できる手順について説明します。

操作(アクション) 結果
Insert ポリシーに指定された書き換えアクションが実行されます。
NOREWRITE 要求または応答は書き換えられません。Citrix ADCは、メッセージの一部を書き換えることなくトラフィックを転送します。
RESET 接続は TCP レベルで中断されます。
DROP メッセージはドロップされます。

どのポリシーでも、undefaction(ポリシーが UNDEFINED に評価されたときに実行されるアクション)を NOREWRITE、RESET、または DROP として設定できます。

書き換え機能を使用するには、 次の手順を実行します。

  • Citrix ADCでこの機能を有効にします。
  • 書き換えアクションを定義します。
  • 書き換えポリシーを定義します。
  • ポリシーをバインドポイントにバインドして、ポリシーを有効にします。

書き換えの仕組み