ADC

VRRPを使用したアクティブ/アクティブモードのCitrix ADCアプライアンス

アクティブ-アクティブ展開では、ダウンタイムを防止するだけでなく、展開内のすべてのCitrix ADCアプライアンスを効率的に使用できます。アクティブ-アクティブ展開モードでは、構成内のすべてのCitrix ADCアプライアンスに同じVIPが設定されますが、優先順位は異なります。これにより、特定のVIPは一度に1つのアプライアンスでのみアクティブになります。

アクティブVIPはマスターVIPと呼ばれ、他のCitrix ADCアプライアンス上の対応するVIPはバックアップVIPと呼ばれます。マスター VIP に障害が発生すると、プライオリティが最も高いバックアップ VIP が引き継がれ、マスター VIP になります。アクティブ/アクティブ展開のすべてのCitrix ADCアプライアンスは、仮想ルーター冗長プロトコル(VRRP)プロトコルを使用して、VIPとそれに対応する優先順位を定期的にアドバタイズします。

アクティブ-アクティブモードのCitrix ADCアプライアンスは、Citrix ADCがアイドル状態でないように構成できます。この構成では、Citrix ADCごとに異なるVIPセットがアクティブになります。たとえば、次の図では、VIP1、VIP2、VIP3、および VIP4 がアプライアンス NS1、NS2、および NS3 上で構成されています。これらの優先順位により、VIP1 と VIP 2 は NS1 上でアクティブになり、VIP3 は NS2 上でアクティブになり、VIP 4 は NS3 上でアクティブになります。たとえば、NS1に障害が発生すると、NS3上のVIP1とNS2上のVIP2がアクティブになります。

図1:アクティブ-アクティブ設定

アクティブ-アクティブ

上の図のCitrix ADCアプライアンスは、次のようにトラフィックを処理します。

  1. クライアント C1 は VIP1 に要求を送信します。要求は R1 に到達します。
  2. R1 には VIP1 用の ARP エントリがないため、VIP1 に対する ARP 要求をブロードキャストします。
  3. VIP1 は NS1 でアクティブであるため、NS1 は VIP1 に関連付けられた仮想 MAC(仮想 MAC1 など)として送信元 MAC アドレス、および VIP1 を送信元 IP アドレスとして応答します。
  4. SW1 は、ARP 応答から VIP1 のポートを学習し、ブリッジテーブルを更新します。
  5. R1 は ARP エントリを仮想 MAC1 および VIP1 で更新します。
  6. R1 は NS1 上の VIP1 にパケットを転送します。
  7. NS1の負荷分散アルゴリズムはサーバーS2を選択し、NS1はそのSNIPアドレスの1つとS2の間の接続を開きます。
  8. S2は、Citrix ADCのSNIPに応答します。
  9. NS1は、S2の応答をクライアントに送信します。応答では、NS1 は物理インターフェイスの MAC アドレスを送信元 MAC アドレスとして、VIP1 を送信元 IP アドレスとして挿入します。
  10. NS1に障害が発生した場合、Citrix ADCアプライアンスはVRRPプロトコルを使用して、優先順位が最も高いVIP1を選択します。この場合、NS3 上の VIP1 がアクティブになり、次の 2 つの手順でアクティブ-アクティブ設定を更新します。
  11. NS3 は VIP1 の GARP メッセージをブロードキャストします。このメッセージでは、仮想 MAC1 は送信元 MAC アドレス、VIP1 は送信元 IP アドレスです。
  12. SW1 は、仮想 MAC1 の新しいポートを GARP ブロードキャストから学習し、ブリッジテーブルを更新して VIP1 に対する後続のクライアント要求を NS3 に送信します。R1 は ARP テーブルを更新します。

VIP のプライオリティは、ヘルストラッキングによって変更できます。ヘルストラッキングを有効にする場合は、優先度が低い VIP が別の VIP によってプリエンプトされるように、プリエンプションも有効になっていることを確認する必要があります。

場合によっては、トラフィックがバックアップ VIP に到達することがあります。このようなトラフィックのドロップを回避するには、アクティブ/アクティブ設定を作成するときに、ノード単位で共有を有効にできます。または、マスターへのグローバル送信オプションを有効にすることもできます。共有が有効になっているノードでは、共有がマスターに送るよりも優先されます。

健全性の追跡

ベースプライオリティ(BP 範囲 1 ~ 255)は、通常、どの VIP がマスター VIP であるかを決定しますが、実効プライオリティ(EP)も決定に影響します。

たとえば、NS1 の VIP のプライオリティが 101 で、NS2 の同じ VIP のプライオリティが 99 の場合、NS1 の VIP はアクティブです。ただし、NS1 で 2 つの vServer が VIP を使用していて、そのうちの 1 つがDOWNすると、NS1 の VIP の EP がヘルストラッキングによって削減されます。次に、VRRP は NS2 上の VIP をアクティブな VIP にします。

EP を変更するためのヘルストラッキングオプションは次のとおりです。

  • なし。追跡なし。EP = BP
  • ALL。すべての仮想サーバがUPの場合は、EP = BP。それ以外の場合は、EP = 0 です。
  • ONE. 少なくとも1つの仮想サーバがUPの場合、EP = BP。それ以外の場合は、EP = 0 です。
  • PROGRESSIVE. すべての仮想サーバがUPの場合は、EP = BP。すべての仮想サーバがDOWNしている場合、EP = 0。それ以外の場合、EP = BP(1-K/N)。ここで、N は VIP に関連付けられた仮想サーバの総数、k はダウンしている仮想サーバの数です。

注: NONE 以外の値を指定する場合は、優先度が最も高いバックアップ VIP がアクティブになるように、マスター VIP の優先度がダウングレードされる必要があります。

プリエンプション

より高いプライオリティを達成する別の VIP によるアクティブ VIP のプリエンプションは、デフォルトで有効であり、通常は有効にする必要があります。ただし、場合によっては、無効にすることもできます。プリエンプションは、各 VIP のノード単位の設定です。

プリエンプションは、次の状況で発生します。

  • アクティブ VIP がダウンし、プライオリティの低い VIP が優先されます。プライオリティが高い VIP がオンラインに戻ると、現在アクティブな VIP がプリエンプトされます。
  • ヘルストラッキングにより、バックアップ VIP のプライオリティがアクティブ VIP のプライオリティよりも高くなります。バックアップ VIP は、アクティブ VIP をプリエンプトします。

共有

トラフィックがバックアップ VIP に到達した場合、バックアップ VIP で共有オプションが有効になっていない限り、トラフィックはドロップされます。この動作は、各 VIP のノード単位の設定であり、デフォルトでは無効になっています。

図では、NS1上の アクティブ/アクティブ構成 VIP1がアクティブで、NS2およびNS3上のVIP1 VIPはバックアップです。特定の状況下では、トラフィックが NS2 上の VIP1 に到達することがあります。NS2 で共有が有効になっている場合、このトラフィックはドロップされずに処理されます。

VRRPを使用したアクティブ/アクティブモードのCitrix ADCアプライアンス