Citrix ADC

接続フェイルオーバー

接続フェイルオーバーは、分散環境に展開されているアプリケーションへのアクセスの中断を防ぐのに役立ちます。Citrix ADC高可用性(HA)セットアップでは、 接続フェイルオーバー(または接続ミラーリング-CM)とは、フェールオーバーが発生したときに、確立されたTCPまたはUDP接続をアクティブに保つことを指します。新しいプライマリCitrix ADCアプライアンスには、フェイルオーバー前に確立された接続に関する情報があり、それらの接続を引き続き提供します。フェイルオーバー後も、クライアントは同じ物理サーバに接続されたままになります。新しいプライマリアプライアンスは、情報を新しいセカンダリアプライアンスと同期します。L2Conn パラメータが設定されている場合、レイヤ 2 接続パラメータもセカンダリと同期されます。

注:

HA セットアップについて考えてみます。クライアントはプライマリノードとのセッションを確立し、プライマリノードがバックエンドサーバーとのセッションを確立します。この状態でフェールオーバーがトリガーされると、既存のクライアントおよびサーバノードから新しいプライマリで受信されたパケットは古いパケットとして扱われ、クライアントとサーバの接続がリセットされます。一方、ステートレス接続フェールオーバーが有効になっている場合(USIP がオン)、フェールオーバー後、クライアントまたはサーバーノードからパケットを受信しても、接続がリセットされません。代わりに、クライアント接続とサーバー接続は動的に作成されます。

接続フェールオーバーは、ステートレスモードまたはステートフルモードのいずれかで設定できます。ステートレス接続フェイルオーバーモードでは、HA ノードはフェールオーバーされた接続に関する情報を交換しません。このメソッドには実行時のオーバーヘッドはありません。

ステートフル接続フェールオーバーモードでは、プライマリアプライアンスはフェールオーバー接続のデータを新しいセカンダリアプライアンスと同期します。

接続フェールオーバーは、展開に長期間接続がある場合に役立ちます。たとえば、FTP 経由で大きなファイルをダウンロードしていて、ダウンロード中にフェールオーバーが発生した場合、接続が切断され、ダウンロードが中止されます。ただし、ステートフルモードで接続フェールオーバーを設定すると、フェールオーバー後もダウンロードが継続されます。

Citrix ADCアプライアンスでの接続フェイルオーバーの仕組み

ステートレス接続フェールオーバーでは、新しいプライマリアプライアンスは、受信したパケットに含まれる情報に基づいてパケットフローを再作成しようとします。

ステートフルフェールオーバーでは、ミラーリングされた接続に関する最新の情報を維持するために、プライマリアプライアンスはセカンダリアプライアンスにメッセージを送信します。セカンダリアプライアンスは、パケットに関連するデータを保持しますが、フェールオーバーの場合にのみ使用します。フェイルオーバーが発生すると、新しいプライマリ(古いセカンダリ)アプライアンスは、ミラーリングされた接続に関する保存されたデータを使用してトラフィックを受け入れます。移行期間中、クライアントとサーバーで短時間の中断と再送信が発生する可能性があります。

注:

プライマリアプライアンスがセカンダリアプライアンスで自分自身を認証できることを確認します。パスワードの正しい設定を確認するには、コマンドラインから show rpcnodeコマンドを使用するか、GUI の [ ネットワーク ] メニューの [RPC] オプションを使用します。

接続フェイルオーバーを使用する基本的な HA 設定には、次の図に示すエンティティが含まれます。

図1:接続フェールオーバーエンティティの図

接続フェイルオーバー

次のいずれかのイベントが発生すると、接続フェールオーバーはサポートされません。

- An upgrade to a later release.
- An upgrade to a later build within the same release, if the new build uses a different HA version.

サポートされているセットアップ

接続フェールオーバーは、負荷分散仮想サーバーでのみ構成できます。コンテンツスイッチング仮想サーバーでは構成できません。コンテンツスイッチング仮想サーバーに接続されている負荷分散仮想サーバーで接続のフェールオーバーを有効にすると、負荷分散仮想サーバーは最初にトラフィックを受け入れないため、接続のフェールオーバーは機能しません。

次の表に、接続フェイルオーバーでサポートされているセットアップを示します。

表1. 接続フェールオーバー-サポートされている設定

設定 ステートレス ステートフル
サービスタイプ どれでも。 任意、UDP、TCP、FTP、SSL_BRIDGE。
負荷分散方法 サービスタイプANYでサポートされるすべてのメソッド。ただし、ソース IP 永続性が設定されていない場合は、SRCIPSRCPORTHASH メソッドを使用する必要があります。 サポートされているサービスタイプに適用されるすべての方法。
持続性タイプ SOURCEIP パーシステンス。 サポートされているサービスタイプに適用されるすべてのタイプがサポートされています。
USIP オンにする必要があります。 制限なし。オンまたはオフにすることができます。
サービスバインディング サービスは 1 つの仮想サーバーにのみバインドできます。 サービスは 1 つ以上の仮想サーバーにバインドできます。
インターネットプロトコル (IP) バージョン IPv4とIPv6 IPv4とIPv6
冗長性サポート クラスタリングと高可用性 高可用性
INC モード 未サポート 仮想サーバーのサービスタイプが ANY で、モードが DSR (MAC、IPTUNNEL、TOS) で、仮想サーバーにバインドされたサービスで USIP が有効になっている場合にサポートされます。

注:

ステートフル接続のフェールオーバーは、TCP などの接続ベースのスイッチングサービスでのみサポートされます。HTTP は要求ベースのスイッチングを使用するため、接続のフェールオーバーはサポートされません。SSL では、フェールオーバー後に既存の接続がリセットされます。

接続フェイルオーバーの影響を受ける機能

次の表に、接続フェールオーバーが構成されている場合に影響を受ける機能を示します。

表2. 接続フェールオーバーがCitrix ADC機能に与える

機能 接続フェールオーバーの影響
SYN プロテクション どの接続でも、アプライアンスが SYN-ACK を発行した後、最終的な ACK を受信する前にフェールオーバーが発生した場合、接続フェールオーバーによって接続はサポートされません。クライアントは、接続を確立するために要求を再発行する必要があります。
サージ保護 サーバとの接続が確立される前にフェイルオーバーが発生した場合、新しいプライマリアプライアンスはサーバとの接続を確立しようとします。また、サージ保護中に保持されているすべてのパケットを再送信します。
アクセスダウン 有効にすると、アクセスダウン機能は接続のフェールオーバーよりも優先されます。
Application firewall アプリケーションファイアウォール機能はサポートされていません。
INC 独立ネットワーク構成 (INC) は、仮想サーバーのサービスタイプが ANY、モードが DSR (MAC、IPTUNNEL、TOS) で、仮想サーバーにバインドされたサービスで USIP が有効になっている場合にのみ、高可用性モードでサポートされます。その他のシナリオでは、INC はサポートされていません。
TCPバッファリング TCP バッファリングは接続ミラーリングと互換性がありません。
応答時に閉じる フェールオーバー後、応答時に NATPCB が閉じられないことがあります。

GUI を使用して接続のフェールオーバーを構成するには

トラフィック管理 ] > [ 負荷分散 ] > [ 仮想サーバー] に移動します。仮想サーバーを開き、[ 詳細設定] で [ 保護] をクリックし、[ ステートフル ] として [ 接続フェイルオーバー] を選択します。

CLI を使用して接続フェールオーバーを構成するには

コマンドプロンプトで、次の操作を行います。

set lb vserver <vServerName> -connFailover <Value>
show lb vserver <vServerName>
<!--NeedCopy-->

例:

set lb vserver Vserver-LB-1 -connFailover stateful
Done
<!--NeedCopy-->

仮想サーバで接続フェイルオーバーを無効にすると、仮想サーバに割り当てられたリソースが解放されます。

CLI を使用して接続フェールオーバーを無効にするには

コマンドプロンプトで、次の操作を行います。

set lb vserver <vServerName> -connFailover <Value>
show lb vserver <vServerName>
<!--NeedCopy-->

例:

set lb vserver Vserver-LB-1 -connFailover disable
Done
<!--NeedCopy-->

GUI を使用して接続のフェールオーバーを無効にするには

トラフィック管理] > [ 負荷分散] > [ 仮想サーバー] に移動します。仮想サーバーを開き、[ 保護] で [ 接続フェイルオーバー ] で [無効]を選択します。

接続フェイルオーバー