ADC

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

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

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

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

図1:アクティブ-アクティブ構成

アクティブ-アクティブ

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

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

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

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

ヘルストラッキング

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

たとえば、NS1のVIPの優先度が101で、NS2の同じVIPの優先順位が99の場合、NS1のVIPはアクティブです。ただし、2 台の仮想サーバが NS1 で VIP を使用していて、そのうちの 1 つがダウンした場合、ヘルストラッキングによって NS1 の VIP の EP が減少する可能性があります。その後、VRRPはNS2のVIPをアクティブなVIPにします。

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

  • なし。追跡なし。EP = BP
  • ALL。すべての仮想サーバーが稼働している場合、EP = BP です。それ以外の場合は、EP = 0 になります。
  • 一。少なくとも 1 台の仮想サーバーが稼働している場合、EP = BP です。それ以外の場合は、EP = 0 になります。
  • PROGRESSIVE. すべての仮想サーバーが稼働している場合、EP = BP です。すべての仮想サーバーがダウンしている場合、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アプライアンス