Citrix ADC

使用例 3: ダイレクトサーバーリターンモードで負荷分散を構成する

ダイレクトサーバーリターン(DSR)モードでの負荷分散により、サーバーはCitrix ADCアプライアンスを経由しないリターンパスを使用して、クライアントに直接応答できます。ただし、DSRモードでは、アプライアンスはサービスのヘルスチェックを継続して実行できます。大量のデータ・ボリューム環境では、DSRモードでクライアントに直接サーバ・トラフィックを送信すると、パケットがアプライアンスを通過しないため、アプライアンスの全体的なパケット処理能力が増加します。

DSR モードには、次の機能と制限があります。

  • これは、ワンアームモードとインラインモードをサポートしています。
  • アプライアンスは、アイドルタイムアウトに基づいてセッションを期限切れにします。
  • アプライアンスは TCP 接続をプロキシしない(つまり、クライアントに SYN-ACK を送信しない)ため、SYN 攻撃を完全にシャットダウンしません。SYN パケットレートフィルタを使用すると、サーバに対する SYN のレートを制御できます。SYN のレートを制御するには、SYN のレートのしきい値を設定します。SYN 攻撃から保護するには、TCP 接続をプロキシするようにアプライアンスを設定する必要があります。ただし、逆方向のトラフィックがアプライアンスを通過する必要があります。
  • DSR構成では、Citrix ADCアプライアンスは、負荷分散仮想サーバーのIPアドレスを宛先サーバーのIPアドレスに置き換えることはありません。代わりに、サーバーの MAC アドレスを使用してパケットをサービスに転送します。VIP は、サーバ上で設定され、ワンアームモードで設定されている場合、クライアント要求がアプライアンスをバイパスするのを防ぐために、サーバ上で設定されている VIP に対して ARP を無効にする必要があります。たとえば、ループバックインターフェイスで VIP を設定し、同じ VIP の ARP を無効にする必要があります。
  • アプライアンスは、サービスにバインドされたモニターからサーバーのMACアドレスを取得します。ただし、Citrix ADCアプライアンスに保存されたスクリプトを使用するカスタムユーザーモニター(「USER」タイプのモニター)では、サーバーのMACアドレスは認識されません。DSR構成でカスタム・モニターのみを使用する場合、仮想サーバーが受信する要求ごとに、アプライアンスは(ARP要求を送信して)宛先IPアドレスをMACアドレスに解決しようとします。宛先IPアドレスはCitrix ADCアプライアンスが所有する仮想IPアドレスであるため、ARP要求は常にCitrix ADCインターフェイスのMACアドレスに解決されます。その結果、仮想サーバが受信するすべてのトラフィックがアプライアンスにループバックされます。DSR 構成でユーザモニタを使用する場合は、サービス用に別のタイプのモニタ(PING モニタなど)も設定する必要があります。理想的には、プローブの間隔を長くして、サーバの MAC アドレスを学習できるようにします。
  • Citrix ADCアプライアンスは、サービスにバインドされているモニターからサーバーL2パラメーターを学習します。UDP-ECV モニタの場合は、受信文字列を設定して、アプライアンスがサーバの L2 パラメータを学習できるようにします。受信ストリングが設定されておらず、サーバが応答しない場合、アプライアンスは L2 パラメータを学習しませんが、サービスは UP に設定されます。このサービスのトラフィックはブラックホールです。

この例のシナリオでは、Service-ANY-1、Service-ANY-2、Service-ANY-3 が作成され、仮想サーバ Vserver-LB-1 にバインドされます。仮想サーバーはクライアント要求をサービスに対して負荷分散し、サービスはCitrix ADCアプライアンスをバイパスしてクライアントに直接応答します。次の表に、Citrix ADCアプライアンス上でDSRモードで構成されたエンティティの名前と値を示します。

エンティティタイプ 名前 IPアドレス プロトコル
仮想サーバ Vserver-LB-1 10.102.29.94 ANY
サービス Service-ANY-1 10.102.29.91 ANY
  Service-ANY-2 10.102.29.92 ANY
  Service-ANY-3 10.102.29.93 ANY
モニター TCP なし なし

次の図は、アプライアンスで設定するパラメータの負荷分散エンティティと値を示しています。

図1:DSRモデルにおける負荷分散のエンティティモデル

lb-entity-dsr-mode

アプライアンスがDSRモードで正常に機能するには、クライアント要求の宛先IPを変更する必要があります。代わりに、アプライアンスは宛先MACを選択したサーバーのMACに変更します。この設定では、サーバーはサーバーをバイパスしながら、クライアントへの要求を転送するためのクライアントMACアドレスを決定できます。

次に、基本的な負荷分散のセットアップの説明に従って基本的なロードバランシング設定を設定し、エンティティに名前を付けて、前の表で説明した値を使用してパラメータを設定します。

基本的なロード・バランシング設定を構成したら、DSRモード用にカスタマイズする必要があります。これを行うには、セッションレス仮想サーバーで Source IP ハッシュメソッドなど、サポートされている負荷分散メソッドを構成します。また、応答を転送するためのクライアント MAC アドレスをサーバが決定し、アプライアンスをバイパスするように、リダイレクションモードを設定する必要があります。

負荷分散方式とリダイレクションモードを構成したら、各サービスで USIP モードを有効にする必要があります。その後、サービスは応答を転送するときに送信元 IP アドレスを使用します。

コマンドラインインターフェイスを使用して、セッションレス仮想サーバーの負荷分散方法とリダイレクションモードを構成するには

コマンドプロンプトで、次のように入力します。

set lb vserver <vServerName> -lbMethod <LBMethodOption> -m <RedirectionMode> -sessionless <Value>

set lb vserver Vserver-LB-1 -lbMethod SourceIPHash -m MAC -sessionless enabled

-m MACオプションが有効になっている仮想サーバにバインドされたサービスの場合は、非ユーザーモニタをバインドする必要があります。

構成ユーティリティを使用して、セッションレス仮想サーバーの負荷分散方法とリダイレクションモードを構成するには

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動します。
  2. 仮想サーバーを開き、MACベースとしてリダイレクトモードを選択し、SOURCEIPHASHとしてメソッドを選択します。
  3. 「トラフィックの設定」で、「セッションレス負荷分散」を選択します。

コマンドラインインターフェイスを使用して送信元 IP アドレスを使用するようにサービスを構成するには

コマンドプロンプトで、次のように入力します。

set service <ServiceName> -usip <Value>

例:

set service Service-ANY-1 -usip yes

構成ユーティリティを使用して送信元 IP アドレスを使用するようにサービスを構成するには

  1. [ トラフィック管理 ] > [ ロードバランシング ] > [ サービス] に移動します。
  2. サービスを開き、[トラフィックの設定] で [送信元 IP アドレスの使用] を選択します。

特定の状況では、以降のセクションで説明する追加の手順が必要です。