アウトバウンド規則を使用すると、パブリック標準ロード バランサーの SNAT (送信元ネットワーク アドレス変換) を明示的に定義できます。 この構成では、ロード バランサーのパブリック IP を使用して、バックエンド インスタンスに送信インターネット接続を提供できます。
この構成を使用すると、以下が可能になります。
- IP マスカレード
- 許可リストを簡略化する。
- デプロイするパブリック IP リソース数の削減。
アウトバウンド規則を使用すると、送信インターネット接続を完全に宣言的に制御できます。 アウトバウンド規則を使用すると、特定のニーズに合わせてこの機能をスケーリングおよび調整することができます。
アウトバウンドルールは、バックエンドのVMがインスタンスレベルのパブリックIPアドレス(ILPIP)を持っていない場合のみ守られます。
注記
スケーラブルなアウトバウンド接続を確保し、SNATポートの枯渇リスクを減らすためには、Azure NAT Gatewayをご利用ください。 代替手段としては、Load BalancerのアウトバウンドルールやインスタンスレベルのパブリックIPアドレスがあります。
アウトバウンド規則を使用して、送信 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 Load Balancerとして動作します。 既定でセキュリティで保護された構成の場合と、送信のニーズが厳しいアプリケーションの場合は、バックエンド プールを NIC 別に構成します。
アウトバウンド規則の定義
アウトバウンドルールはロードバランシングやインバウンドNATルールと同じ構文を使っています: フロントエンド、 パラメータ、 バックエンドプールです。
アウトバウンドルールは バックエンドプール内のすべての仮想マシンに対してアウトバウンドNATを設定し、そのトラフィックを フロントエンドに変換します。 パラメータはアウトバウンドNATアルゴリズムの詳細な制御を可能にします。
"パラメーター" により、アウトバウンド NAT アルゴリズムを細かく制御できます。
複数の IP アドレスでアウトバウンド NAT をスケーリングする
フロントエンドのIPアドレスが増えるごとに、ロードバランサーはさらに64,000個の一時的なポートをSNATポートとして利用できます。 ロードバランサーは利用可能なポートに基づいてIPを使用します。 現在のIPがこれ以上の接続を処理できなくなると、次のIPに移動します。
複数の IP アドレスを使用して大規模なシナリオを計画します。 Azure Load Balancer のサポートとトラブルシューティングに関するで説明されているように、送信側のルールを使用して SNAT の枯渇を軽減します。
パブリック IP プレフィックスをアウトバウンド規則で直接使用することもできます。
パブリックIPプレフィックスは展開のスケーリングを増加させます。 Azureリソースからのフローの許可リストにプレフィックスを追加します。 ロードバランサーでフロントエンドのIP設定を設定し、パブリックIPアドレスのプレフィックスを参照することができます。
ロードバランサーはパブリックIPプレフィックスを管理します。 送信ルールは、現在のIPでこれ以上送信接続ができない場合、自動的にプレフィックス内の他のパブリックIPアドレスを使用します。
パブリック IP プレフィックス内の IP アドレスごとに、ロード バランサーが SNAT ポートとして使用する 64,000 個のエフェメラル ポートが追加で提供されます。
アウトバウンド フローのアイドル タイムアウトと TCP リセット
アウトバウンドルールには、アウトバウンドフローのアイドルタイムアウトを制御するパラメータが含まれており、アプリケーションのニーズに合わせて調整できます。 アウトバウンド アイドル タイムアウトの既定値は 4 分です。 詳細については、アイドル タイムアウトの構成に関する記事を参照してください。
デフォルトでは、ロードバランサーはアウトバウンドのアイドルタイムアウトに達すると静かにフローを切り捨てます。
enableTCPResetパラメータは予測可能なアプリケーションの動作と制御を提供します。 このパラメータは、アウトバウンドのアイドルタイムアウトが発生する際に双方向TCPリセット(TCP RST)を送信するかどうかを決定します。
利用可能なリージョンなど、詳細については、アイドル タイムアウト時の TCP リセットに関するページをご覧ください。
送信接続を明示的に保護および制御する
負荷分散規則により、アウトバウンド NAT の自動プログラミングが提供されます。 負荷分散規則によるアウトバウンド NAT の自動プログラミングを無効にすることでメリットが得られる、またはこれが必要なシナリオもあります。 規則を介して無効にすると、動作を制御または調整できるようになります。
このパラメーターには、次の 2 通りの使い方があります。
アウトバウンド SNAT でのインバウンド IP アドレスの使用の防止。 負荷分散規則でアウトバウンド SNAT を無効にします。
インバウンドとアウトバウンドに同時に使用される 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 への新しいフローの送信が停止されます。
Azure Load Balancer の送信規則のシナリオ
- アウトバウンド接続をパブリック IP またはプレフィックスの特定のセットに構成する。
- SNAT ポートの割り当てを変更します。
- アウトバウンドのみを有効にする。
- VM 用のアウトバウンド NAT のみ (インバウンドなし)。
- 内部の標準ロード バランサー用のアウトバウンド NAT。
- パブリック標準ロード バランサーでアウトバウンド NAT の TCP および UDP の両方のプロトコルを有効にする。
シナリオ 1:アウトバウンド接続をパブリック IP またはプレフィックスの特定のセットに構成する
このシナリオは、一連のパブリック IP アドレスから送信されるアウトバウンド接続を調整する場合に使用します。 配信元に基づいて、許可リストまたはブロック リストにパブリック IP またはプレフィックスを追加します。
このパブリック IP またはプレフィックスは、負荷分散規則で使用されるものと同じにすることができます。
負荷分散規則で使用されるものとは異なるパブリック IP またはプレフィックスを使用するには、次のようにします。
- パブリック IP プレフィックスまたはパブリック IP アドレスを作成します。
- パブリック標準ロード バランサーを作成します。
- 使用するパブリック IP プレフィックスまたはパブリック IP アドレスを参照するフロントエンドを作成します。
- バックエンド プールを再利用するか、バックエンド プールを作成し、VM をパブリック ロード バランサーのバックエンド プールに配置します。
- フロントエンドを使用して 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 を提供します。 このシナリオでは、追加の規則を構成せずに、アウトバウンド規則を単独で使用します。
注記
Azure NAT Gateway は、ロード バランサーを必要とせずに、仮想マシンの送信接続を提供できます。 詳細については、「Azure NAT Gatewayを参照してください。
シナリオ 4:VM のアウトバウンド NAT のみ (インバウンドなし)
注記
Azure NAT Gateway は、ロード バランサーを必要とせずに、仮想マシンの送信接続を提供できます。 詳細については、「Azure NAT Gatewayを参照してください。
このシナリオでは、Azure Load Balancer送信規則と Virtual Network NAT は、virtual networkからのエグレスに使用できるオプションです。
- パブリック IP またはプレフィックスを作成します。
- パブリック標準ロード バランサーを作成します。
- アウトバウンド専用のパブリック IP またはプレフィックスに関連付けられているフロントエンドを作成します。
- VM のバックエンド プールを作成します。
- VM をバックエンド プールに配置します。
- アウトバウンド NAT を有効にするアウトバウンド規則を構成します。
プレフィックスまたはパブリック IP を使用して、SNAT ポートをスケーリングします。 送信接続のソースを許可またはブロック リストに追加します。
シナリオ 5: 内部用の標準ロード バランサーに対するアウトバウンド NAT
注記
Azure NAT Gateway は、内部標準ロード バランサーを使用する仮想マシンに送信接続を提供できます。 詳細については、「Azure NAT Gatewayを参照してください。
内部標準のロードバランサーは、インスタンスレベルのパブリックIPやVirtual Network NATを通じて明示的に有効化するか、バックエンドのプールメンバーをアウトバウンド専用のロードバランサー構成に関連付けるまで、アウトバウンド接続を持ちません。
詳細については、「送信専用ロード バランサーの構成」を参照してください。
シナリオ6:公開標準ロードバランサーを用いて、TCPおよびUDPプロトコルの両方をアウトバウンドNATに有効化
公開標準のロードバランサーを使用することで、自動アウトバウンドNATは負荷分散ルールのトランスポートプロトコルに一致します。
- 負荷分散規則でアウトバウンド SNAT を無効にします。
- 同じロード バランサーのアウトバウンド規則を構成します。
- VM によって既に使用されているバックエンド プールを再利用します。
- アウトバウンド規則の一部として "protocol": "All" を指定します。
インバウンドNATルールのみを使用する場合、アウトバウンドNATは提供されません。
- VM をバックエンド プールに配置します。
- パブリックIPアドレスまたはパブリックIPプレフィックス付きのフロントエンドIP構成を1つ以上定義します。
- 同じロード バランサーのアウトバウンド規則を構成します。
- アウトバウンド規則の一部として "protocol": "All" を指定します
Azure Load Balancer のアウトバウンド規則の制限
- フロントエンド IP アドレスごとに使用可能なエフェメラル ポートの最大数は 64,000 個です。
- 構成可能なアウトバウンド アイドル タイムアウトの範囲は、4 から 120 分 (240 から 7200 秒) です。
- ロード バランサーでは、送信 NAT の ICMP はサポートされていません。サポートされているプロトコルは TCP と UDP のみです。
- アウトバウンド規則は、NIC のプライマリ IPv4 構成にのみ適用できます。 VM または NVA のセカンダリ IPv4 構成の送信規則を作成することはできません。 複数 NIC がサポートされています。
- セカンダリ IP 構成のアウトバウンド規則は、IPv6 でのみサポートされます。
- 可用性セット内のすべての仮想マシンを、アウトバウンド接続のバックエンド プールに追加する必要があります。
- 仮想マシン スケール セット内のすべての仮想マシンを、アウトバウンド接続のバックエンド プールに追加する必要があります。
次の手順
Azure Standard Load Balancer - Azure Load Balancerに関するよくある質問をご覧ください