Citrix ADC

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

Direct Server Return(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アプライアンスをバイパスしてクライアントに直接応答します。次の表に、DSRモードのCitrix ADCアプライアンスに構成されているエンティティの名前と値を示します。

エンティティタイプ 名前 IPアドレス プロトコル
仮想サーバー vserver-LB-1 10.102.29.94 ANY
Services 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モード用にカスタマイズする必要があります。これを行うには、セッションレス仮想サーバーでのソース IP ハッシュ法など、サポートされている負荷分散方法を構成します。また、リダイレクトモードを設定して、サーバーが応答を転送するためのクライアントMACアドレスを決定し、アプライアンスをバイパスできるようにする必要があります。

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

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

コマンドプロンプトで入力します。

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

set lb vserver Vserver-LB-1 -lbMethod SourceIPHash -m MAC -sessionless enabled
<!--NeedCopy-->

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

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

  1. [Traffic Management]>[Load Balancing]>[Virtual Servers] の順に移動します。
  2. 仮想サーバーを開き、[リダイレクトモード] を [MAC ベース]、[方法] を [SOURCEIPHASH] として選択します。
  3. [トラフィック設定] で、[セッションレス負荷分散] を選択します。

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

コマンドプロンプトで入力します。

set service <ServiceName> -usip <Value>
<!--NeedCopy-->

例:

set service Service-ANY-1 -usip yes
<!--NeedCopy-->

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

  1. [Traffic Management]>[Load Balancing]>[Services] の順に移動します。
  2. サービスを開き、[トラフィック設定] で、[送信元 IP アドレスの使用] を選択します。

特定の状況では、後続のセクションで説明するように、いくつかの追加手順が必要です。