Azure Load Balancer のアウトバウンド規則

アウトバウンド規則を使用すると、パブリック標準ロード バランサーの SNAT (送信元ネットワーク アドレス変換) を明示的に定義できます。 この構成では、ロード バランサーのパブリック IP を使用して、バックエンド インスタンスに対して送信インターネット接続を提供できます。

この構成を使用すると、以下が可能になります。

  • IP マスカレード
  • 許可リストの単純化。
  • デプロイするパブリック IP リソース数の削減。

アウトバウンド規則を使用すると、送信インターネット接続を完全に宣言的に制御できます。 アウトバウンド規則を使用すると、特定のニーズに合わせてこの機能をスケーリングおよび調整することができます。

アウトバウンド規則は、バックエンド VM にインスタンスレベルのパブリック IP アドレス (ILPIP) がない場合にのみ適用されます。

この図は、アウトバウンドのロード バランサー規則がある仮想マシンでの SNAT ポートの構成を示しています。

アウトバウンド規則を使用して、送信 SNAT の動作を明示的に定義できます。

アウトバウンド規則によって以下を制御できます。

  • どの仮想マシンがどのパブリック IP アドレスに変換されるか。
    • バックエンド プール 1 では青色の IP アドレスを両方使用し、バックエンド プール 2 では黄色の IP プレフィックスを使用する 2 つのルール。
  • アウトバウンド SNAT ポートの割り当て方法。
    • バックエンド プール 2 がアウトバウンド接続を行う唯一のプールである場合、バックエンド プール 2 にすべての SNAT ポートを提供し、バックエンド プール 1 には何も提供しません。
  • アウトバウンド変換の提供対象となるプロトコル。
    • バックエンド プール 2 にアウトバウンド用の UDP ポートが必要で、バックエンド プール 1 に TCP が必要な場合は、TCP ポートを 1 に、UDP ポートを 2 に提供します。
  • アウトバウンド接続のアイドル タイムアウトの時間 (4 分から 120 分)。
    • キープアライブを使用した長期の接続がある場合は、長期の接続用にアイドル ポートを最大 120 分間予約します。 古い接続が破棄され、新しい接続用にポートが 4 分以内に解放されることを想定します
  • アイドル タイムアウト時に TCP リセットを送信するかどうか。
    • アイドル状態の接続がタイムアウトになった場合は、フローが破棄されていることがわかるように TCP RST をクライアントとサーバーに送信しますか?

重要

バックエンド プールが IP アドレス別に構成されている場合、既定のアウトバウンドが有効な Basic ロード バランサーとして動作します。 既定でセキュリティで保護された構成の場合と、送信のニーズが厳しいアプリケーションの場合は、バックエンド プールを NIC 別に構成します。

アウトバウンド規則の定義

アウトバウンド規則は、負荷分散およびインバウンド NAT 規則と同じ使い慣れた構文 (フロントエンド + パラメーター + バックエンド プール) に従います。

アウトバウンド規則では、"フロントエンド" に変換される、"バックエンド プールによって識別されるすべての仮想マシン" のアウトバウンド NAT を構成します。

"パラメーター" により、アウトバウンド NAT アルゴリズムを細かく制御できます。

複数の IP アドレスでアウトバウンド NAT をスケーリングする

フロントエンドによって提供される追加の IP アドレスごとに、ロード バランサーが SNAT ポートとして使用する 64,000 個のエフェメラル ポートがさらに提供されます。

複数の IP アドレスを使用して大規模なシナリオを計画します。 アウトバウンド規則を使用して SNAT の不足を軽減します。

パブリック IP プレフィックスをアウトバウンド規則で直接使用することもできます。

パブリック IP プレフィックスを使用すると、デプロイのスケーリングが向上します。 プレフィックスは、対象の Azure リソースから送信されたフローの許可リストに追加できます。 パブリック IP アドレス プレフィックスを参照するように、ロード バランサー内のフロントエンド IP 構成を設定できます。

ロード バランサーにより、パブリック IP プレフィックスが制御されます。 アウトバウンド規則により、パブリック IP プレフィックスに含まれるすべてのパブリック IP アドレスが自動的にアウトバウンド接続に使用されるようになります。

パブリック IP プレフィックス内の IP アドレスごとに、ロード バランサーが SNAT ポートとして使用する 64,000 個のエフェメラル ポートが追加で提供されます。

アウトバウンド フローのアイドル タイムアウトと TCP リセット

アウトバウンド規則には、アウトバウンド フローのアイドル タイムアウトを制御し、アプリケーションのニーズに合わせるための構成パラメーターがあります。 アウトバウンド アイドル タイムアウトの既定値は 4 分です。 詳細については、アイドル タイムアウトの構成に関する記事を参照してください。

ロード バランサーの既定の動作では、アウトバウンド アイドル タイムアウトに達すると、警告なしにフローが破棄されます。 enableTCPReset パラメーターを使用すると、予測可能なアプリケーションの動作と制御が可能になります。 このパラメーターを使用して、送信アイドル タイムアウトのタイムアウト時に双方向 TCP リセット (TCP RST) を送信するかどうかを指定します。

利用可能なリージョンなど、詳細については、アイドル タイムアウト時の TCP リセットに関するページをご覧ください。

送信接続を明示的に保護および制御する

負荷分散規則により、アウトバウンド NAT の自動プログラミングが提供されます。 負荷分散規則によるアウトバウンド NAT の自動プログラミングを無効にすることでメリットが得られる、またはこれが必要なシナリオもあります。 規則を介して無効にすると、動作を制御または調整できるようになります。

このパラメーターには、次の 2 通りの使い方があります。

  1. アウトバウンド SNAT のインバウンド IP アドレスの防止。 負荷分散規則でアウトバウンド SNAT を無効にします。

  2. インバウンドとアウトバウンドに同時に使用される IP アドレスのアウトバウンド SNAT パラメーターを調整します。 アウトバウンド規則による制御を可能にするには、自動のアウトバウンド NAT を無効にする必要があります。 インバウンドにも使用されるアドレスの SNAT ポートの割り当てを変更するには、disableOutboundSnat パラメーターを true に設定する必要があります。

インバウンドに使用する IP アドレスを再定義しようとすると、アウトバウンド規則を構成する操作は失敗します。 まず、負荷分散規則のアウトバウンド NAT を無効にします。

重要

このパラメーターを true に設定し、アウトバウンド接続を定義するアウトバウンド規則がない場合、仮想マシンはアウトバウンド接続できなくなります。 VM またはアプリケーションの一部の操作は、アウトバウンド接続が使用可能であることに依存している場合があります。 使用しているシナリオの依存関係を理解し、この変更による影響を考慮してください。

場合によっては、VM でアウトバウンド フローを作成するのは望ましくない場合があります。 アウトバウンド フローを受信する宛先やインバウンド フローを開始する宛先を管理するための要件がある場合もあります。 ネットワーク セキュリティ グループを使用して、VM が接続できる宛先を管理します。 NSG を使用して、インバウンド フローを開始するパブリックの宛先を管理します。

負荷分散された VM に NSG を適用するときは、サービス タグ既定のセキュリティ規則に注意してください。

VM が Azure Load Balancer からの正常性プローブ要求を受け取ることができるようにしておいてください。

NSG が AZURE_LOADBALANCER 既定タグからの正常性プローブ要求をブロックすると、VM の正常性プローブが失敗して VM が利用不可とマークされます。 ロード バランサーにより、その VM への新しいフローの送信が停止されます。

アウトバウンド規則のシナリオ

シナリオ 1:アウトバウンド接続をパブリック IP またはプレフィックスの特定のセットに構成する

詳細

このシナリオは、一連のパブリック IP アドレスから送信されるアウトバウンド接続を調整する場合に使用します。 送信元に基づいて、許可リストまたはブロックリストにパブリック IP またはプレフィックスを追加します。

このパブリック IP またはプレフィックスは、負荷分散規則で使用されるものと同じにすることができます。

負荷分散規則で使用されるものとは異なるパブリック IP またはプレフィックスを使用するには、次のようにします。

  1. パブリック IP プレフィックスまたはパブリック IP アドレスを作成します。
  2. パブリック標準ロード バランサーを作成します。
  3. 使用するパブリック IP プレフィックスまたはパブリック IP アドレスを参照するフロントエンドを作成します。
  4. バックエンド プールを再利用するか、バックエンド プールを作成し、VM をパブリック ロード バランサーのバックエンド プールに配置します。
  5. フロントエンドを使用して VM のアウトバウンド NAT を有効にするように、パブリック ロード バランサーのアウトバウンド規則を構成します。 アウトバウンドに負荷分散規則を使用することは推奨されません。負荷分散規則のアウトバウンド SNAT を無効にしてください。

シナリオ 2:SNAT ポートの割り当てを変更する

詳細

アウトバウンド規則を使用して、バックエンド プール サイズに基づく SNAT ポートの自動割り当てを調整できます。

SNAT 不足が発生した場合は、SNAT ポートの数を既定値の 1,024 よりも増やします。

パブリック IP アドレスごとに、最大 64,000 個のエフェメラル ポートが提供されます。 バックエンド プール内の VM の数によって、各 VM に配布されるポートの数が決まります。 バックエンド プール内の 1 つの VM は、最大 64,000 個のポートにアクセスできます。 2 つの VM の場合、アウトバウンド規則を使用して最大 32,000 個の SNAT ポートを提供することができます (2 x 32,000 = 64,000)。

アウトバウンド規則を使用すると、既定で提供される SNAT ポートを調整できます。 既定の SNAT ポートの割り当てよりも多くまたは少なく提供します。 1 つのアウトバウンド規則を構成するフロントエンドのパブリック IP アドレスごとに、SNAT ポートとして使用する最大 64,000 個のエフェメラル ポートが提供されます。

ロード バランサーは、SNAT ポートを 8 の倍数で提供します。 8 で割り切れない値を指定すると、その構成操作は拒否されます。 各負荷分散規則とインバウンド NAT 規則は、8 つのポートの範囲を使用します。 負荷分散規則またはインバウンド NAT 規則が別の規則と同じ 8 つの範囲を共有する場合、追加のポートは使用されません。

(パブリック IP アドレスの数に基づく) 使用可能な SNAT ポートの数よりも多くのポートを提供しようとすると、その構成操作は拒否されます。 たとえば、VM ごとに 10,000 個のポートを指定し、バックエンド プール内の 7 つの VM が 1 つのパブリック IP を共有する場合、構成は拒否されます。 7 を 10,000 に乗算した値が 64,000 個のポート制限を超えています。 このシナリオに対応するには、アウトバウンド規則のフロントエンドにパブリック IP アドレスを追加します。

ポート数に 0 を指定して、既定のポート割り当てに戻します。 SNAT ポートの既定の割り当ての詳細については、SNAT ポートの割り当てについての表を参照してください。

シナリオ 3:アウトバウンドのみを有効にする

詳細

パブリック標準ロード バランサーを使用して、VM のグループにアウトバウンド NAT を提供します。 このシナリオでは、追加の規則を構成せずに、アウトバウンド規則を単独で使用します。

Note

Azure NAT Gateway では、ロード バランサーを使わずに、仮想マシンに対するアウトバウンド接続を提供できます。 詳細については、「Azure NAT Gateway とは」を参照してください。

シナリオ 4:VM のアウトバウンド NAT のみ (インバウンドなし)

Note

Azure NAT Gateway では、ロード バランサーを使わずに、仮想マシンに対するアウトバウンド接続を提供できます。 詳細については、「Azure NAT Gateway とは」を参照してください。

詳細

このシナリオでは、次のようにします。Azure Load Balancer のアウトバウンド規則と Virtual Network NAT は、仮想ネットワークからのエグレスに使用できるオプションです。

  1. パブリック IP またはプレフィックスを作成します。
  2. パブリック標準ロード バランサーを作成します。
  3. アウトバウンド専用のパブリック IP またはプレフィックスに関連付けられているフロントエンドを作成します。
  4. VM のバックエンド プールを作成します。
  5. VM をバックエンド プールに配置します。
  6. アウトバウンド NAT を有効にするアウトバウンド規則を構成します。

プレフィックスまたはパブリック IP を使用して、SNAT ポートをスケーリングします。 アウトバウンド接続の送信元を許可リストまたはブロックリストに追加します。

シナリオ 5:内部の標準ロード バランサーのアウトバウンド NAT

Note

Azure NAT Gateway では、内部の標準ロード バランサーを利用して、仮想マシンに対するアウトバウンド接続を提供できます。 詳細については、「Azure NAT Gateway とは」を参照してください。

詳細

インスタンスレベルのパブリック IP または Virtual Network NAT を使用して明示的に宣言するか、バックエンド プールのメンバーをアウトバウンド専用のロード バランサー構成に関連付けるまで、アウトバウンド接続を内部の標準ロード バランサーで使用することはできません。

詳細については、「送信専用ロード バランサーの構成」を参照してください。

シナリオ 6: パブリック標準ロード バランサーでアウトバウンド NAT の TCP および UDP の両方のプロトコルを有効にする

詳細

パブリック標準ロード バランサーでは、提供される自動アウトバウンド NAT は負荷分散規則のトランスポート プロトコルに対応します。

  1. 負荷分散規則でアウトバウンド SNAT を無効にします。
  2. 同じロード バランサーのアウトバウンド規則を構成します。
  3. VM によって既に使用されているバックエンド プールを再利用します。
  4. アウトバウンド規則の一部として "protocol": "All" を指定します。

インバウンド NAT 規則のみを使用している場合、アウトバウンド NAT は提供されません。

  1. VM をバックエンド プールに配置します。
  2. パブリック IP アドレスまたはパブリック IP プレフィックスを使用して、1 つまたは複数のフロントエンド IP 構成を定義します。
  3. 同じロード バランサーのアウトバウンド規則を構成します。
  4. アウトバウンド規則の一部として "protocol": "All" を指定します

制限事項

  • フロントエンド IP アドレスごとに使用可能なエフェメラル ポートの最大数は 64,000 個です。
  • 構成可能なアウトバウンド アイドル タイムアウトの範囲は、4 から 120 分 (240 から 7200 秒) です。
  • ロード バランサーでは、送信 NAT の ICMP はサポートされていません。サポートされているプロトコルは TCP と UDP のみです。
  • アウトバウンド規則は、NIC のプライマリ IPv4 構成にのみ適用できます。 VM または NVA のセカンダリ IPv4 構成用のアウトバウンド規則を作成することはできません。 複数 NIC がサポートされています。
  • セカンダリ IP 構成のアウトバウンド規則は、IPv6 でのみサポートされます。
  • 可用性セット内のすべての仮想マシンを、アウトバウンド接続のバックエンド プールに追加する必要があります。
  • 仮想マシン スケール セット内のすべての仮想マシンを、アウトバウンド接続のバックエンド プールに追加する必要があります。

次の手順