Citrix ADC

N層キャッシュのリダイレクト

大量のキャッシュデータ (通常は数ギガバイト/秒) を効率的に処理するために、インターネットサービスプロバイダ (ISP) は複数の専用キャッシュサーバーを展開します。Citrix ADCアプライアンスのキャッシュリダイレクト機能は、キャッシュサーバーの負荷分散に役立ちますが、1台または2台のアプライアンスで大量のトラフィックを効率的に処理できない場合があります。

この問題を解決するには、Citrix ADCアプライアンスを2つの層(層)に展開します。この場合、上位層のアプライアンスは下位層のアプライアンスを負荷分散し、下位層のアプライアンスはキャッシュサーバーを負荷分散します。この配置を n 層キャッシュリダイレクトと呼びます。

監査やセキュリティなどの目的で、ISP は IP アドレス、提供された情報、対話の時間などのクライアントの詳細を追跡する必要があります。したがって、Citrix ADCアプライアンスを介したクライアント接続は完全に透過的である必要があります。ただし、Citrix ADCアプライアンスを並行して展開して透過キャッシュリダイレクトを構成する場合は、クライアントのIPアドレスをすべてのアプライアンスで共有する必要があります。クライアントIPアドレスを共有すると、競合が発生し、ルーター、キャッシュサーバー、オリジンサーバー、その他のCitrix ADCアプライアンスなどのネットワークデバイスが、応答の送信先となるアプライアンス、つまりクライアントを特定できなくなります。

N 層キャッシュリダイレクトの実装方法

この問題を解決するために、アプライアンスの n 層キャッシュリダイレクトは、ソースポート範囲を下層内のアプライアンス間で分割し、クライアント IP アドレスをキャッシュサーバに送信する要求に含めます。上位層のCitrix ADCアプライアンスは、アプライアンスへの不要な負荷を避けるために、セッションレス負荷分散を行うように構成されています。

下位層のCitrix ADCアプライアンスがキャッシュサーバーと通信する場合、マッピングされたIPアドレス(MIP)を使用してソースIPアドレスを表します。したがって、キャッシュサーバは、要求を受信したアプライアンスを識別し、同じアプライアンスに応答を送信できます。

下位層のCitrix ADCアプライアンスは、キャッシュサーバーに送信される要求のヘッダーにクライアントIPアドレスを挿入します。ヘッダーのクライアント IP は、アプライアンスがキャッシュサーバまたはキャッシュミスが発生した場合に、パケットを転送するクライアントを決定するのに役立ちます。オリジンサーバーは、リクエストヘッダーに挿入されたクライアントIPに従って送信される応答を決定します。

オリジナル・サーバーは、オリジナル・サーバーが要求を受信したソース・ポート番号を含む、上位層のアプライアンスに応答を送信します。ソースポート範囲全体(1024~65535)は、下位層のCitrix ADCアプライアンスに分散されます。各下位層のアプライアンスには、範囲内のアドレスのグループのみが割り当てられます。この割り当てにより、上位層のアプライアンスは、要求を元のサーバーに送信した下位層のCitrix ADCアプライアンスを明確に識別できます。したがって、上位層のアプライアンスは、正しい下位層のアプライアンスに応答を転送できます。

上位層のCitrix ADCアプライアンスはポリシーベースのルーティングを行うように構成され、ルーティングポリシーは送信元ポート範囲から宛先アプライアンスのIPアドレスを決定するように定義されます。

N層CRDの構成に必要なセットアップ

n 層キャッシュリダイレクトの機能には、次の設定が必要です。

各上位層Citrix ADCアプライアンスの場合:

  • レイヤ 3 モードを有効にします。
  • トラフィックが宛先ポートの範囲に従って転送されるように、ポリシーベースルート(PBR)のポリシーを定義します。
  • 負荷分散仮想サーバーを構成します。
  • クライアントからのすべてのトラフィックをリッスンするように仮想サーバを設定します。サービスタイプ/プロトコルを ANY に設定し、IP アドレスをアスタリスク(*)に設定します。
  • MACベースのリダイレクトモードでセッションレス負荷分散を有効にして、上位層のCitrix ADCアプライアンスの不要な負荷を回避します。
  • [プロキシポートを使用] オプションが有効になっていることを確認します。
  • 下位層アプライアンスごとにサービスを作成し、すべてのサービスを仮想サーバにバインドします。

下位層のCitrix ADCアプライアンスごとに、

  • アプライアンスのキャッシュリダイレクションポート範囲を設定します。下位層のアプライアンスごとに排他的な範囲を割り当てます。
  • 負荷分散仮想サーバーを構成し、MAC ベースのリダイレクトを有効にします。
  • このアプライアンスによって負荷分散されるキャッシュサーバーごとにサービスを作成します。サービスを作成するときに、ヘッダーにクライアント IP を挿入できるようにします。次に、負荷分散仮想サーバーにすべてのサービスをバインドします。
  • トランスペアレントモードキャッシュリダイレクト仮想サーバーを次の設定で構成します。
    • [オリジン USIP] オプションを有効にします。
    • 送信元 IP 式を追加して、クライアント IP をヘッダーに含めます。
    • [ポート範囲を使用] オプションを有効にします。

キャッシュヒット時のN層キャッシュリダイレクトの仕組み

次の図は、クライアント要求がキャッシュ可能で、応答がキャッシュサーバから送信された場合のキャッシュリダイレクトの動作を示しています。

図1:キャッシュヒット時にキャッシュリダイレクト

キャッシュヒット時にキャッシュリダイレクト

2つのCitrix ADCアプライアンス、L1NS1とL1NS2が上位層に展開され、4つのCitrix ADCアプライアンス、L2NS1、L2NS2、L2NS3およびL2NS4が下位層に展開されます。クライアント A は要求を送信し、ルータによって転送されます。キャッシュサーバー CRS1、CRS2、および CRS3 は、キャッシュ要求を処理します。オリジナル・サーバーOは、キャッシュされていない要求を処理します。

トラフィックフロー

  1. クライアントは要求を送信し、ルータは要求を L1NS1 に転送します。
  2. L1NS1 は、要求を L2NS2 に負荷分散します。
  3. L2NS2 は要求をキャッシュサーバ CRS1 に負荷分散し、要求はキャッシュ可能です。L2NS2 は、要求ヘッダーにクライアント IP を含めます。
  4. CRS1 は L2NS2 に応答を送信します。これは、L2NS2 が CRS1 に接続するときに MIP を送信元 IP アドレスとして使用するためです。
  5. 要求ヘッダー内のクライアント IP アドレスの助けを借りて、L2NS2 は要求が来たクライアントを識別します。L2NS2 は応答を直接ルータに送信し、上位層のアプライアンスへの不要な負荷を回避します。
  6. ルータは応答をクライアント A に転送します。

キャッシュバイパス中の N 層キャッシュリダイレクトの仕組み

次の図は、クライアント要求が応答のためにオリジンサーバーに送信されたときのキャッシュリダイレクトの動作を示しています。

図2:キャッシュバイパスの場合、キャッシュリダイレクト

キャッシュバイパスの場合、キャッシュリダイレクト

2つのCitrix ADCアプライアンス、L1NS1とL1NS2が上位層に展開され、4つのCitrix ADCアプライアンス、L2NS1、L2NS2、L2NS3およびL2NS4が下位層に展開されます。クライアント A は要求を送信し、ルータによって転送されます。キャッシュサーバー CRS1、CRS2、および CRS3 は、キャッシュ要求を処理します。オリジナル・サーバーOは、キャッシュされていない要求を処理します。

トラフィックフロー

  1. クライアントは要求を送信し、ルータは要求を L1NS1 に転送します。
  2. L1NS1 は、要求を L2NS2 に負荷分散します。
  3. 要求はキャッシュできません(キャッシュバイパス)。したがって、L2NS2 はルータ経由で送信元サーバに要求を送信します。
  4. オリジンサーバーは、上位層アプライアンス L1NS2 に応答を送信します。
  5. PBR ポリシーに従って、L1NS2 はトラフィックを下位層 L2NS2 の適切なアプライアンスに転送します。
  6. L2NS2 は、要求ヘッダーのクライアント IP アドレスを使用して、要求の送信元クライアントを識別し、応答を直接ルータに送信します。これにより、上位層のアプライアンスへの不要な負荷を回避できます。
  7. ルータは応答をクライアント A に転送します。

キャッシュミス時のN層キャッシュリダイレクトの仕組み

次の図は、クライアント要求がキャッシュされていない場合のキャッシュリダイレクトの動作を示しています。

図3:キャッシュミスによるキャッシュリダイレクト

キャッシュミスによるキャッシュリダイレクト

2つのCitrix ADCアプライアンス、L1NS1とL1NS2が上位層に展開され、4つのCitrix ADCアプライアンス、L2NS1、L2NS2、L2NS3およびL2NS4が下位層に展開されます。クライアント A は要求を送信し、ルータによって転送されます。キャッシュサーバー CRS1、CRS2、および CRS3 は、キャッシュ要求を処理します。オリジナル・サーバーOは、キャッシュされていない要求を処理します。

トラフィックフロー

  1. クライアントは要求を送信し、ルータは要求を L1NS1 に転送します。
  2. L1NS1 は、要求を L2NS2 に負荷分散します。
  3. L2NS2 は、要求がキャッシュ可能であるため、要求をキャッシュサーバ CRS1 に負荷分散します。
  4. CRS1 には応答(キャッシュミス)がありません。CRS1 は、下層のアプライアンスを介してオリジンサーバーに要求を転送します。L2NS3 はトラフィックを代行受信します。
  5. L2NS3 は、ヘッダーからクライアント IP を受け取り、要求をオリジンサーバーに転送します。パケットに含まれる送信元ポートは、要求がオリジンサーバに送信される L2NS3 ポートです。
  6. オリジンサーバーは、上位層アプライアンス L1NS2 に応答を送信します。
  7. PBR ポリシーに従って、L1NS2 はトラフィックを下位層 L2NS3 の適切なアプライアンスに転送します。
  8. L2NS3 は応答をルータに転送します。
  9. ルータは応答をクライアント A に転送します。