Edge Services Gateway (ESG) は、受信するクライアント トラフィックのプロキシとして考えることができます。

プロキシ モードでは、ロード バランサは、自身の IP アドレスを送信元のアドレスとして使用して、リクエストをバックエンド サーバに送信します。バックエンド サーバには、ロード バランサから送信されるときにすべてのトラフィックが表示され、このサーバはロード バランサに直接応答します。このモードは、SNAT モードまたは非透過モードとも呼ばれます。詳細については、『NSX 管理ガイド』を参照してください。

一般的な NSX ワンアーム ロード バランサは、バックエンド サーバと同じで分散論理ルーターとは異なるサブネットにデプロイされます。NSX ロード バランサ仮想サーバは、クライアントから受信したリクエストを仮想 IP アドレスで待機し、バックエンド サーバにリクエストを送信します。リターン トラフィックについては、リバース NAT が必要となります。これは、バックエンド サーバの送信元の IP アドレスを仮想 IP アドレス (VIP) に変更してから、クライアントに仮想 IP アドレスを送信するためです。この操作を行わないと、クライアントへの接続が切断されます。

トラフィックの受信後、ESG は次の 2 つの処理を実行します。
  • 宛先ネットワーク アドレス変換 (DNAT)。仮想 IP アドレスが、ロード バランシングされているいずれかのマシンの IP アドレスに変更されます。
  • 送信元ネットワーク アドレス変換 (SNAT)。ESG の IP アドレスとクライアントの IP アドレスが交換されます。

次に、ESG サーバはトラフィックをロード バランサ サーバに送信し、ロード バランサ サーバは応答を ESG に返し、さらにクライアントに返します。このオプションでは、インライン モードよりもが大幅に容易になりますが、2 つの注意点があります。最初の注意点は、専用の ESG サーバが必要となることであり、2 番目の注意点はロード バランサは元のクライアント IP アドレスを認識しないことです。HTTP/HTTPS アプリケーションでの 1 つの回避策として、HTTP アプリケーション プロファイルで [X-Forwarded-For HTTP ヘッダーの挿入 (Insert X-Forwarded-For)] を有効にすることによって、バックエンド サーバに送信される要求の X-Forwarded-For HTTP ヘッダーにクライアント IP アドレスが追加されます。

バックエンド サーバでのクライアント IP アドレスの可視化が、HTTP/HTTPS 以外のアプリケーションで必要となる場合には、透過的になるように IP アドレス プールを設定できます。クライアントがバックエンド サーバと同じサブネットにない場合には、インライン モードが推奨されます。インライン モードを使用しない場合には、バックエンド サーバのデフォルト ゲートウェイとしてロード バランサの IP アドレスを使用する必要があります。

注:
接続の整合性を保証する方法には、通常、次の 3 つがあります。
  • インライン/透過モード
  • SNAT/プロキシ/非透過モード(上記で説明)
  • DSR (Direct Server Return): 現在サポートされていません
DSR モードでは、バックエンド サーバが直接クライアントに応答します。現在、NSX ロード バランサは、DSR をサポートしていません。

以下では、HTTPS オフロード(SSL オフロード)アプリケーション プロファイル タイプを使用して、ワンアーム ロード バランサの設定手順について説明します。

手順

  1. vSphere Web Client にログインします。
  2. [ネットワークとセキュリティ (Networking & Security)] > [NSX Edge] の順にクリックします。
  3. NSX Edge をダブルクリックします。
  4. [管理 (Manage)] > [設定 (Settings)] > [証明書 (Certificate)] の順にクリックします。
    このシナリオでは、自己署名証明書を追加します。
  5. ロード バランサ サービスを有効にします。
    1. [管理 (Manage)] > [ロード バランサ (Load Balancer)] > [グローバル設定 (Global Configuration)] の順にクリックします。
    2. [編集 (Edit)] をクリックして、ロード バランサを有効にします。
  6. HTTPS アプリケーション プロファイルを作成します。
    1. [管理 (Manage)] > [ロード バランサ (Load Balancer)] > [アプリケーション プロファイル (Application Profiles)] の順にクリックします。
    2. [追加 (Add)] をクリックして、アプリケーション プロファイルのパラメータを指定します。
      バージョン 手順
      NSX 6.4.5 以降
      1. [アプリケーション プロファイル タイプ (Application Profile Type)] ドロップダウン メニューで、[HTTPS のオフロード (HTTPS Offloading)] を選択します。
      2. [名前 (Name)] テキスト ボックスに、プロファイルの名前を入力します。たとえば、Web-SSL-Profile を入力します。
      3. [クライアント SSL (Client SSL)] > [サービス証明書 (Service Certificates)] の順にクリックします。
      4. 前に追加した自己署名証明書を選択します。
      NSX 6.4.4 以前
      1. [タイプ (Type)] ドロップダウン メニューで、[HTTPS] を選択します。
      2. [名前 (Name)] テキスト ボックスに、プロファイルの名前を入力します。たとえば、Web-SSL-Profile を入力します。
      3. [サービス証明書の設定 (Configure Service Certificate)] チェック ボックスを選択します。
      4. 前に追加した自己署名証明書を選択します。
  7. (オプション) [管理 (Manage)] > [ロード バランサ (Load Balancer)] > [サービス モニタリング (Service Monitoring)] の順にクリックします。必要であれば、デフォルトのサービス モニタリングを編集して、基本の HTTP または HTTPS から特定の URL または URI に変更します。
  8. サーバ プールを作成します。
    1. [管理 (Manage)] > [ロード バランサ (Load Balancer)] > [プール (Pools)] の順にクリックして、[追加 (Add)] をクリックします。
    2. [名前 (Name)] テキスト ボックスに、サーバ プールの名前を入力します。たとえば、Web-Tier-Pool-01 を入力します。
    3. [アルゴリズム (Algorithm)] ドロップダウン メニューで、[ラウンドロビン (Round-Robin)] を選択します。
    4. [モニター (Monitors)] ドロップダウン メニューで、[default_https_monitor] を選択します。
    5. 2 つのメンバーをプールに追加します。
      たとえば、次の設定を指定します。
      状態 名前 IP アドレス 重み 監視ポート ポート 最大接続数 最小接続数
      有効 web-01a 172.16.10.11 1 443 443 0 0
      有効 web-02a 172.16.10.12 1 443 443 0 0
    6. SNAT モードを使用するには、[透過的 (Transparent)] オプションが有効になっていないことを確認します。
  9. [ステータスの表示 (Show Status)] または [プール統計の表示 (Show Pool Statistics)] をクリックして、Web-Tier-Pool-01 プールのステータスが UP になっていることを確認します。
    プールを選択して、このプールの両方のメンバーのステータスが UP であることを確認します。
  10. 仮想サーバを作成します。
    1. [管理 (Manage)] > [ロード バランサ (Load Balancer)] > [仮想サーバ (Virtual Servers)] の順にクリックして、[追加 (Add)] をクリックします。
    2. 仮想サーバのパラメータを指定します。

      たとえば、次の設定を指定します。

      オプション 説明
      仮想サーバ 仮想サーバを有効にします。
      アクセラレーション UDP やさらに高パフォーマンスの TCP に L4 ロード バランサを使用する場合には、アクセラレーションを有効にします。このオプションを有効にする場合は、NSX Edge ロード バランサでファイアウォールのステータスが有効になっていることを確認します。L4 SNAT ではファイアウォールが必須です。
      アプリケーション プロファイル OneArmWeb-01 を入力します。
      IP アドレス [172.16.10.110] を選択します。
      プロトコル [HTTPS] を選択します。
      ポート 443 を入力します。
      デフォルト プール 前に作成した [Web-Tier-Pool-01] サーバ プールを選択します。
      接続の制限 0 を入力します。
      接続速度の制限 0 を入力します。
    3. (オプション) [詳細 (Advanced)] タブをクリックして、仮想サーバにアプリケーション ルールを関連付けます。
      サポートされる例については、 https://communities.vmware.com/docs/DOC-31772 を参照してください。

    非透過モードでは、バックエンド サーバはクライアント IP アドレスを確認できませんが、ロード バランサ内部の IP アドレスは確認できます。HTTP または HTTPS トラフィックの回避策として、アプリケーション プロファイルで [X-Forwarded-For HTTP ヘッダーの挿入 (Insert X-Forwarded-For HTTP header)] を選択します。このオプションを選択すると、Edge ロード バランサは、クライアントの送信元の IP アドレスの値にヘッダー「X-Forwarded-For」を追加します。