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

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

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

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

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

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

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

手順

  1. 一例として、SSL オフロードを使用したワンアームの仮想サーバを設定します。Edge をダブルクリックしてから、[管理(Manage)] > [設定(Settings)] > [証明書(Certificate)] を選択して、証明書を作成します。
  2. [管理(Manage)] > [ロード バランサ(Load Balancer)] > [グローバル設定(Global Configuration)] > [編集(Edit)] の順に選択して、ロード バランサ サービスを有効にします。
  3. [管理(Manage)] > [ロード バランサ(Load Balancer)] > [アプリケーション プロファイル(Application Profiles)] を選択して、HTTPS アプリケーション プロファイルを作成します。
    注: ドキュメント作成の都合上、上記のスクリーンショットでは、自己署名の証明書が使用されています。
  4. オプションで、[管理(Manage)] > [ロード バランサ(Load Balancer)] > [サービス モニタリング(Service Monitoring)] をクリックして、デフォルトのサービス モニタリングを編集し、必要に応じて、基本の HTTP/HTTPS から特定の URL/URI に変更します。
  5. [管理(Manage)] > [ロード バランサ(Load Balancer)] > [プール(Pools)] を選択して、サーバ プールを作成します。
    SNAT モードを使用するには、プール設定の [透過的 (Transparent)] チェック ボックスをオフのままにします。
    仮想マシンが表示され有効になっていることを確認します。
  6. オプションで、[管理(Manage)] > [ロード バランサ(Load Balancer)] > [プール(Pools)] > [プール統計の表示(Show Pool Statistics)] をクリックして、ステータスを確認します。
    メンバー ステータスが [UP] であることを確認します。
  7. [管理(Manage)] > [ロード バランサ(Load Balancer)] > [仮想サーバ(Virtual Servers)] を選択して、仮想サーバを作成します。
    UDP やさらに高パフォーマンスの TCP に L4 ロード バランサを使用する場合には、 [アクセラレーションの有効化 (Enable Acceleration)] をオンにします。 [アクセラレーションの有効化 (Enable Acceleration)] をオンにしている場合、L4 SNAT でファイアウォールが必要であるため、ファイアウォールのステータスがロード バランサ NSX Edge で [有効 (Enabled)] になっていることを確認します。
    IP アドレスがサーバ プールに関連付けられていることを確認します。
  8. オプションで、アプリケーション ルールを使用している場合、[管理(Manage)] > [ロード バランサ(Load Balancer)] > [アプリケーション ルール(Application Rules)] で設定を確認します。
  9. アプリケーション ルールを使用する場合、[管理(Manage)] > [ロード バランサ(Load Balancer)] > [仮想サーバ(Virtual Servers)] > [詳細(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」を追加します。