Azure の Outbound connectionsOutbound connections in Azure

Azure Load Balancer では、いくつかの異なるメカニズムを通じて顧客デプロイのアウトバウンド接続を提供します。The Azure Load Balancer provides outbound connectivity for customer deployments through several different mechanisms. この記事では、どのようなシナリオがあり、それらがいつ適用されるかについて説明するほか、それらのシナリオのしくみと管理方法について説明します。This article describes what the scenarios are, when they apply, how they work, and how to manage them. Azure ロード バランサーを経由するアウトバウンド接続で問題が発生した場合は、アウトバウンド接続のトラブルシューティング ガイドを参照してください。If you are experiencing issue with outbound connectivity through an Azure Load Balancer, see the [troubleshooting guide for outbound connections] (../load-balancer/troubleshoot-outbound-connection.md).

注意

この記事は、Resource Manager デプロイメントのみを対象とします。This article covers Resource Manager deployments only. Azure のすべてのクラシック デプロイメント シナリオについては、「送信接続 (クラシック)」をご覧ください。Review Outbound connections (Classic) for all Classic deployment scenarios in Azure.

Azure のデプロイは、パブリック IP アドレス空間で Azure 外部のエンドポイントと通信できます。A deployment in Azure can communicate with endpoints outside Azure in the public IP address space. インスタンスがパブリック IP アドレス空間の宛先への送信フローを開始すると、Azure によってプライベート IP アドレスがパブリック IP アドレスに動的にマッピングされます。When an instance initiates an outbound flow to a destination in the public IP address space, Azure dynamically maps the private IP address to a public IP address. このマッピングが作成されると、この送信フローの戻りトラフィックも、フローの送信元であるプライベート IP アドレスに到達できます。After this mapping is created, return traffic for this outbound originated flow can also reach the private IP address where the flow originated.

Azure は送信元ネットワーク アドレス変換 (SNAT) を使用してこの機能を実行します。Azure uses source network address translation (SNAT) to perform this function. 複数のプライベート IP アドレスが単一のパブリック IP アドレスでマスカレードされている場合、Azure ではポート アドレス変換 (PAT) を使用してプライベート IP アドレスがマスカレードされます。When multiple private IP addresses are masquerading behind a single public IP address, Azure uses port address translation (PAT) to masquerade private IP addresses. エフェメラル ポートが PAT に使用され、プール サイズに基づいて事前に割り当てられます。Ephemeral ports are used for PAT and are preallocated based on pool size.

送信シナリオは複数あります。There are multiple outbound scenarios. 必要に応じて、これらのシナリオを組み合わせることができます。You can combine these scenarios as needed. これらを注意深く確認して、実際のデプロイメント モデルとアプリケーション シナリオに適用される際の機能、制約、パターンを把握してください。Review them carefully to understand the capabilities, constraints, and patterns as they apply to your deployment model and application scenario. また、これらのシナリオを管理するためのガイダンスを確認してください。Review guidance for managing these scenarios.

重要

Standard Load Balancer および Standard パブリック IP では、アウトバウンド接続に新しい機能とさまざまな動作が導入されています。Standard Load Balancer and Standard Public IP introduce new abilities and different behaviors to outbound connectivity. これらは Basic SKU と同じではありません。They are not the same as Basic SKUs. Standard SKU を操作するときにアウトバウンド接続が必要な場合は、Standard パブリック IP アドレスまたは Standard パブリック Load Balancer で明示的に定義する必要があります。If you want outbound connectivity when working with Standard SKUs, you must explicitly define it either with Standard Public IP addresses or Standard public Load Balancer. これには、内部 Standard Load Balancer を使用する場合のアウトバウンド接続の作成が含まれます。This includes creating outbound connectivity when using an internal Standard Load Balancer. Standard パブリック Load Balancer では常にアウトバウンド規則を使用することをお勧めします。We recommend you always use outbound rules on a Standard public Load Balancer. シナリオ 3 は、Standard SKU では利用できません。Scenario 3 is not available with Standard SKU. つまり、内部 Standard Load Balancer が使用されているときに、アウトバウンド接続が必要な場合、バックエンド プール内の VM に対してアウトバウンド接続を作成する手順を行う必要があります。That means when an internal Standard Load Balancer is used, you need to take steps to create outbound connectivity for the VMs in the backend pool if outbound connectivity is desired. アウトバウンド接続のコンテキストでは、単一スタンドアロン VM、可用性セット内のすべての VM、VMSS のすべてのインスタンスがグループとして動作します。In the context of outbound connectivity, a single standalone VM, all the VM's in an Availability Set, all the instances in a VMSS behave as a group. つまり、可用性セット内の単一 VM が Standard SKU に関連付けられている場合、この可用性セット内のすべての VM インスタンスが、Standard SKU に関連付けられている場合と同じ規則に従って動作するようになります。個々のインスタンスが直接関連付けられていない場合でも同様です。This means, if a single VM in an Availability Set is associated with a Standard SKU, all VM instances within this Availability Set now behave by the same rules as if they are associated with Standard SKU, even if an individual instance is not directly associated with it. この動作は、ロード バランサーに複数のネットワーク インターフェイスカードが接続されているスタンドアロン VM の場合にも見られます。This behavior is also observed in the case of a standalone VM with multiple network interface cards attached to a load balancer. 1 つの NIC をスタンドアロンとして追加された場合、同じ動作が行われます。If one NIC is added as a standalone, it will have the same behavior. このドキュメント全体をよく読み、全体的な概念を理解し、SKU 間の違いについて Standard Load Balancer を確認し、アウトバウンド規則を確認してください。Carefully review this entire document to understand the overall concepts, review Standard Load Balancer for differences between SKUs, and review outbound rules. アウトバウンド規則を使用することで、アウトバウンド接続のすべての側面を細かく制御できます。Using outbound rules allows you fine grained control over all aspects of outbound connectivity.

シナリオの概要Scenario overview

Azure Resource Manager を使用している場合、Azure Load Balancer と関連するリソースは明示的に定義されます。Azure Load Balancer and related resources are explicitly defined when you're using Azure Resource Manager. 現在 Azure には、Azure Resource Manager リソースの送信接続を実現するのに 3 つの異なる方法があります。Azure currently provides three different methods to achieve outbound connectivity for Azure Resource Manager resources.

SKUSKUs シナリオScenario MethodMethod IP プロトコルIP protocols 説明Description
Standard、BasicStandard, Basic 1.インスタンス レベル パブリック IP アドレスを含む VM (ロード バランサーあり、またはなし)1. VM with an Instance Level Public IP address (with or without Load Balancer) SNAT (ポート マスカレードは不使用)SNAT, port masquerading not used TCP、UDP、ICMP、ESPTCP, UDP, ICMP, ESP インスタンスの NIC の IP 構成に割り当てられたパブリック IP が Azure によって使用されます。Azure uses the public IP assigned to the IP configuration of the instance's NIC. インスタンスには、使用可能なすべてのエフェメラル ポートがあります。The instance has all ephemeral ports available. Standard Load Balancer を使用しているときにパブリック IP が仮想マシンに割り当てられている場合、アウトバウンド規則はサポートされません。When using Standard Load Balancer, outbound rules are not supported if a public IP is assigned to the Virtual Machine.
Standard、BasicStandard, Basic 2.VM に関連付けられたパブリック ロード バランサー (インスタンスにパブリック IP アドレスなし)2. Public Load Balancer associated with a VM (no Public IP address on the instance) ロード バランサー フロントエンドを使用したポート マスカレード (PAT) による SNATSNAT with port masquerading (PAT) using the Load Balancer frontends TCP、UDPTCP, UDP Azure によってパブリック ロード バランサー フロントエンドのパブリック IP アドレスが複数のプライベート IP アドレスと共有されます。Azure shares the public IP address of the public Load Balancer frontends with multiple private IP addresses. Azure では、フロントエンドのエフェメラル ポートが PAT に使用されます。Azure uses ephemeral ports of the frontends to PAT. Standard Load Balancer を使用する場合は、アウトバウンド規則を使って、アウトバウンド接続を明示的に定義する必要があります。When using Standard Load Balancer, you should use outbound rules to explicitly define outbound connectivity.
なし、または Basicnone or Basic 3.スタンドアロン VM (ロード バランサーなし、パブリック IP アドレスなし)3. Standalone VM (no Load Balancer, no Public IP address) ポート マスカレード (PAT) による SNATSNAT with port masquerading (PAT) TCP、UDPTCP, UDP Azure によって自動的に SNAT 用のパブリック IP アドレスが指定され、このパブリック IP アドレスが可用性セットの複数のプライベート IP アドレスと共有されてから、このパブリック IP アドレスのエフェメラル ポートが使用されます。Azure automatically designates a public IP address for SNAT, shares this public IP address with multiple private IP addresses of the availability set, and uses ephemeral ports of this public IP address. このシナリオは、前のシナリオのフォールバックです。This scenario is a fallback for the preceding scenarios. 可視性と制御が必要は場合は推奨されません。We don't recommend it if you need visibility and control.

VM がパブリック IP アドレス空間で Azure の外部のエンドポイントと通信しないようにする場合、必要に応じてネットワーク セキュリティ グループ (NSG) を使用してアクセスをブロックできます。If you don't want a VM to communicate with endpoints outside Azure in public IP address space, you can use network security groups (NSGs) to block access as needed. NSG の使用の詳細については、「送信接続の防止」で説明します。The section Preventing outbound connectivity discusses NSGs in more detail. 送信アクセスがない仮想ネットワークの設計、実装、および管理のガイダンスについては、この記事の範囲外です。Guidance on designing, implementing, and managing a virtual network without any outbound access is outside the scope of this article.

シナリオ 1:パブリック IP アドレスありの VMScenario 1: VM with Public IP address

このシナリオでは、VM にパブリック IP が割り当てられています。In this scenario, the VM has a Public IP assigned to it. 送信接続に関する限り、VM が負荷分散されているかどうかは関係ありません。As far as outbound connections are concerned, it doesn't matter whether the VM is load balanced or not. このシナリオは他のシナリオよりも優先されます。This scenario takes precedence over the others. パブリック IP アドレスが使用されている場合、VM は、すべての送信フローにそのパブリック IP アドレスを使用します。When a Public IP address is used, the VM uses the Public IP address for all outbound flows.

VM に割り当てられたパブリック IP は (1 対多ではなく) 1 対 1 の関係であり、1 対 1 のステートレス NAT として実装されます。A public IP assigned to a VM is a 1:1 relationship (rather than 1: many) and implemented as a stateless 1:1 NAT. ポート マスカレード (PAT) は使用されず、VM は使用可能なすべてのエフェメラル ポートを備えます。Port masquerading (PAT) is not used, and the VM has all ephemeral ports available for use.

アプリケーションが多数の送信フローを開始したために SNAT ポートの枯渇が発生している場合は、SNAT の制約を緩和するためにパブリック IP アドレスを割り当てることを検討してください。If your application initiates many outbound flows and you experience SNAT port exhaustion, consider assigning a Public IP address to mitigate SNAT constraints. その全体像については、SNAT 不足の管理に関するセクションを確認してください。Review Managing SNAT exhaustion in its entirety.

シナリオ 2:パブリック IP アドレスなしの負荷分散 VMScenario 2: Load-balanced VM without a Public IP address

このシナリオでは、VM はパブリック Load Balancer バックエンド プールに含まれます。In this scenario, the VM is part of a public Load Balancer backend pool. VM にパブリック IP アドレスは割り当てられていません。The VM does not have a public IP address assigned to it. パブリック IP フロントエンドとバックエンド プール間にリンクを作成するには、ロード バランサー リソースをロード バランサー規則で構成する必要があります。The Load Balancer resource must be configured with a load balancer rule to create a link between the public IP frontend with the backend pool.

この規則の構成を完了しないと、動作は、パブリック IP なしのスタンドアロン VM のシナリオで説明されたとおりになります。If you do not complete this rule configuration, the behavior is as described in the scenario for Standalone VM with no Public IP. 成功するために正常性プローブのバックエンド プールの作業リスナーを規則に含める必要はありません。It is not necessary for the rule to have a working listener in the backend pool for the health probe to succeed.

負荷分散 VM が送信フローを作成すると、Azure が、送信フローのプライベート ソース IP アドレスをパブリック ロード バランサー フロントエンドのパブリック IP アドレスに変換します。When the load-balanced VM creates an outbound flow, Azure translates the private source IP address of the outbound flow to the public IP address of the public Load Balancer frontend. Azure は、SNAT を使用してこの機能を実行します。Azure uses SNAT to perform this function. また、Azure は、PAT を使用して、複数のプライベート IP アドレスをパブリック IP アドレスでマスカレードします。Azure also uses PAT to masquerade multiple private IP addresses behind a public IP address.

ロード バランサーのパブリック IP アドレス フロントエンドのエフェメラル ポートを使用して、VM から送信される個々のフローが区別されます。Ephemeral ports of the load balancer's public IP address frontend are used to distinguish individual flows originated by the VM. 送信フローが作成されると、事前に割り当てられたエフェメラル ポートが SNAT によって動的に使用されます。SNAT dynamically uses preallocated ephemeral ports when outbound flows are created. ここでは、SNAT で使用されるエフェメラル ポートを SNAT ポートと呼びます。In this context, the ephemeral ports used for SNAT are called SNAT ports.

SNAT ポートは、「SNAT と PAT の理解」の説明のとおり事前に割り当てられます。SNAT ports are pre-allocated as described in the Understanding SNAT and PAT section. これは有限のリソースであり、不足する可能性があります。They're a finite resource that can be exhausted. これらがどのように消費されるのかを理解することが重要です。It's important to understand how they are consumed. この消費のための設計と移行を必要に応じて行う方法については、SNAT 不足の管理に関するセクションを確認してください。To understand how to design for this consumption and mitigate as necessary, review Managing SNAT exhaustion.

複数のパブリック IP アドレスが Load Balancer Basic に関連付けられている場合、それらのパブリック IP アドレスはどれもアウトバウンド フローの候補になり、その 1 つがランダムに選択されます。When multiple public IP addresses are associated with Load Balancer Basic, any of these public IP addresses are a candidate for outbound flows, and one is selected at random.

Load Balancer Basic でアウトバウンド接続の正常性を監視するために、Load Balancer 用の Azure Monitor ログと、SNAT ポート不足メッセージを監視するためのアラート イベント ログを使用できます。To monitor the health of outbound connections with Load Balancer Basic, you can use Azure Monitor logs for Load Balancer and alert event logs to monitor for SNAT port exhaustion messages.

シナリオ 3:パブリック IP アドレスなしのスタンドアロン VMScenario 3: Standalone VM without a Public IP address

このシナリオでは、VM はパブリック ロード バランサー プールの一部ではなく (また内部の Standard Load Balancer プールの一部でもなく)、パブリック IP アドレスは割り当てられていません。In this scenario, the VM is not part of a public Load Balancer pool (and not part of an internal Standard Load Balancer pool) and does not have a Public IP address assigned to it. VM が送信フローを作成すると、Azure が、送信フローのプライベート ソース IP アドレスをパブリック ソース IP アドレスに変換します。When the VM creates an outbound flow, Azure translates the private source IP address of the outbound flow to a public source IP address. この送信フローで使用されるパブリック IP アドレスは構成不可能であり、サブスクリプションのパブリック IP リソースの制限に対してカウントされません。The public IP address used for this outbound flow is not configurable and does not count against the subscription's public IP resource limit. このパブリック IP アドレスはユーザーのものではなく、予約することはできません。This public IP address does not belong to you and cannot be reserved. VM、可用性セット、または仮想マシン スケール セットを再デプロイすると、このパブリック IP アドレスは解放され、新しいパブリック IP アドレスが要求されます。If you redeploy the VM or Availability Set or virtual machine scale set, this public IP address will be released and a new public IP address requested. IP アドレスをホワイトリストに登録する場合は、このシナリオを使用しないでください。Do not use this scenario for whitelisting IP addresses. 代わりに、送信シナリオと、送信接続で使用されるパブリック IP アドレスを明示的に宣言する他の 2 つのシナリオのいずれかを使用します。Instead, use one of the other two scenarios where you explicitly declare the outbound scenario and the public IP address to be used for outbound connectivity.

重要

このシナリオは、内部 Basic Load Balancer が接続されている場合に のみ 適用されます。This scenario also applies when only an internal Basic Load Balancer is attached. 内部 Standard Load Balancer が VM に接続されている場合、シナリオ 3 は 利用できませんScenario 3 is not available when an internal Standard Load Balancer is attached to a VM. 内部 Standard Load Balancer を使用することに加え、シナリオ 1 またはシナリオ 2 を明示的に作成する必要があります。You must explicitly create scenario 1 or scenario 2 in addition to using an internal Standard Load Balancer.

Azure は、SNAT とポート マスカレード (PAT) を使用してこの機能を実行します。Azure uses SNAT with port masquerading (PAT) to perform this function. このシナリオは、使用される IP アドレスに対するコントロールがない点を除いて、シナリオ 2 に類似しています。This scenario is similar to scenario 2, except there is no control over the IP address used. これは、シナリオ 1 および 2 がない場合のフォールバック シナリオです。This is a fallback scenario for when scenarios 1 and 2 do not exist. このシナリオは、送信アドレスに対するコントロールが必要な場合は推奨されません。We don't recommend this scenario if you want control over the outbound address. 送信接続がアプリケーションの重要な部分である場合は、別のシナリオを選ぶ必要があります。If outbound connections are a critical part of your application, you should choose another scenario.

SNAT ポートは、「SNAT と PAT の理解」の説明のとおり事前に割り当てられます。SNAT ports are preallocated as described in the Understanding SNAT and PAT section. 可用性セットを共有している VM の数によって、適用される事前割り当ての階層が決まります。The number of VMs sharing an Availability Set determines which preallocation tier applies. 事前割り当て (1024 SNAT ポート) を決定する目的の場合、可用性セットのないスタンドアロン VM は、事実上 1 のプールです。A standalone VM without an Availability Set is effectively a pool of 1 for the purposes of determining preallocation (1024 SNAT ports). SNAT ポートは有限のリソースであり、不足する可能性があります。SNAT ports are a finite resource that can be exhausted. これらがどのように消費されるのかを理解することが重要です。It's important to understand how they are consumed. この消費のための設計と移行を必要に応じて行う方法については、SNAT 不足の管理に関するセクションを確認してください。To understand how to design for this consumption and mitigate as necessary, review Managing SNAT exhaustion.

組み合わされた複数のシナリオMultiple, combined scenarios

これまでのセクションで説明したシナリオを組み合わせることで、特定の結果を実現することができます。You can combine the scenarios described in the preceding sections to achieve a particular outcome. 複数のシナリオがある場合は、次の優先順位が適用されます。シナリオ 1 は、シナリオ 2シナリオ 3 に優先します。When multiple scenarios are present, an order of precedence applies: scenario 1 takes precedence over scenario 2 and 3. シナリオ 2シナリオ 3 をオーバーライドします。Scenario 2 overrides scenario 3.

たとえば、アプリケーションが限られた数の宛先への送信接続に大きく依存している一方で、ロード バランサー フロントエンド経由で受信フローも受け取っている Azure Resource Manager デプロイがあります。An example is an Azure Resource Manager deployment where the application relies heavily on outbound connections to a limited number of destinations but also receives inbound flows over a Load Balancer frontend. この場合、シナリオ 1 と 2 を組み合わせて軽減を行えます。In this case, you can combine scenarios 1 and 2 for relief. その他のパターンについては、SNAT 不足の管理に関するセクションを確認してください。For additional patterns, review Managing SNAT exhaustion.

送信フローの複数のフロントエンドMultiple frontends for outbound flows

Standard Load BalancerStandard Load Balancer

複数の (パブリック) IP フロントエンドが存在する場合、Standard Load Balancer では、発信フローのすべての候補が同時に使用されます。Standard Load Balancer uses all candidates for outbound flows at the same time when multiple (public) IP frontends is present. 発信接続に対して負荷分散ルールが有効になっている場合、各フロントエンドは使用できる事前割当 SNAT ポートの数を増やします。Each frontend multiplies the number of available preallocated SNAT ports if a load balancing rule is enabled for outbound connections.

新しい負荷分散ルール オプションを使用して、発信接続にフロントエンド IP アドレスが使用されないようにすることができます。You can choose to suppress a frontend IP address from being used for outbound connections with a new load balancing rule option:

      "loadBalancingRules": [
        {
          "disableOutboundSnat": false
        }
      ]

通常、disableOutboundSnat オプションは既定で false になり、このルールによって負荷分散ルールのバックエンド プール内の関連付けられた VM の送信 SNAT がプログラムされることを示します。Normally, the disableOutboundSnat option defaults to false and signifies that this rule programs outbound SNAT for the associated VMs in the backend pool of the load balancing rule. disableOutboundSnattrue に変更すると、Load Balancer がこの負荷分散ルールのバックエンド プール内の VM の送信接続に、関連付けられたフロントエンド IP アドレスを使用しないようにすることができます。The disableOutboundSnat can be changed to true to prevent Load Balancer from using the associated frontend IP address for outbound connections for the VMs in the backend pool of this load balancing rule. また、「組み合わされた複数のシナリオ」で説明されているとおり、送信フローに特定の IP アドレスを指定することもできます。And you can also still designate a specific IP address for outbound flows as described in Multiple, combined scenarios as well.

Load Balancer BasicLoad Balancer Basic

複数の (パブリック) IP フロントエンドが送信フローの候補である場合、送信フローに使用される 1 つのフロントエンドが Load Balancer Basic によって選択されます。Load Balancer Basic chooses a single frontend to be used for outbound flows when multiple (public) IP frontends are candidates for outbound flows. この選択は構成することができません。選択アルゴリズムはランダムであると考える必要があります。This selection is not configurable, and you should consider the selection algorithm to be random. 組み合わされた複数のシナリオ」で説明されているとおり、送信フローに特定の IP アドレスを指定できます。You can designate a specific IP address for outbound flows as described in Multiple, combined scenarios.

可用性ゾーンAvailability Zones

可用性ゾーンありの Standard Load Balancer を使用する場合、ゾーン冗長フロントエンドでゾーン冗長発信 SNAT 接続を提供できます。また、ゾーン エラーが発生しても SNAT プログラミングは継続されます。When using Standard Load Balancer with Availability Zones, zone-redundant frontends can provide zone-redundant outbound SNAT connections and SNAT programming survives zone failure. ゾーンのフロントエンドを使用する場合、発信 SNAT 接続の有効期間は属するゾーンと同じです。When zonal frontends are used, outbound SNAT connections share fate with the zone they belong to.

SNAT と PAT の理解Understanding SNAT and PAT

ポート マスカレード SNAT (PAT)Port masquerading SNAT (PAT)

パブリック ロード バランサー リソースが VM インスタンスに関連付けられている (専用のパブリック ID アドレスがない) 場合、各送信接続のソースは書き換えられます。When a public Load Balancer resource is associated with VM instances, which do not have dedicated Public IP addresses, each outbound connection source is rewritten. ソースは、仮想ネットワークのプライベート IP アドレス空間からロード バランサー フロントエンドのパブリック IP アドレスに書き換えられます。The source is rewritten from the virtual network private IP address space to the frontend Public IP address of the load balancer. パブリック IP アドレス空間では、フローの 5 タプル (ソース IP アドレス、ソース ポート、IP 転送プロトコル、宛先 IP アドレス、宛先ポート) は一意である必要があります。In the public IP address space, the 5-tuple of the flow (source IP address, source port, IP transport protocol, destination IP address, destination port) must be unique. ポート マスカレード SNAT は、TCP または UDP IP プロトコルで使用できます。Port masquerading SNAT can be used with either TCP or UDP IP protocols.

これを実現するために、プライベート ソース IP アドレスの書き換え後にエフェメラル ポート (SNAT ポート) が使用されます。これは複数のフローが単一のパブリック IP アドレスから送信されるためです。Ephemeral ports (SNAT ports) are used to achieve this after rewriting the private source IP address, because multiple flows originate from a single public IP address. SNAT アルゴリズムをマスカレードしているポートは、UDP 対 TCP とは異なる方法で SNAT ポートを割り当てます。The port masquerading SNAT algorithm allocates SNAT ports differently for UDP versus TCP.

TCP SNAT ポートTCP SNAT Ports

1 つの SNAT ポートは、単一の宛先 IP アドレス、ポートへのフローごとに使用されます。One SNAT port is consumed per flow to a single destination IP address, port. 同じ宛先 IP アドレス、ポート、およびプロトコルへの複数の TCP フローでは、各 TCP フローが単一の SNAT ポートを使用します。For multiple TCP flows to the same destination IP address, port, and protocol, each TCP flow consumes a single SNAT port. これにより、同じパブリック IP アドレスから送信されて同じ宛先 IP アドレス、ポート、プロトコルに移動する複数のフローが、一意であることが保証されます。This ensures that the flows are unique when they originate from the same public IP address and go to the same destination IP address, port, and protocol.

別の宛先 IP アドレス、ポート、プロトコルへの複数のフローは、宛先ごとに 1 つの SNAT ポートを共有します。Multiple flows, each to a different destination IP address, port, and protocol, share a single SNAT port. 宛先 IP アドレス、ポート、プロトコルによってフローは一意になります。パブリック IP アドレス空間でフローを区別するための追加のソース ポートは必要ありません。The destination IP address, port, and protocol make flows unique without the need for additional source ports to distinguish flows in the public IP address space.

UDP SNAT ポートUDP SNAT Ports

UDP SNAT ポートは、TCP SNAT ポートではなく、別のアルゴリズムによって管理されます。UDP SNAT ports are managed by a different algorithm than TCP SNAT ports. ロード バランサーは、UDP の "ポート制限された Cone NAT" と呼ばれるアルゴリズムを使用します。Load Balancer uses an algorithm known as "port-restricted cone NAT" for UDP. 1 つの SNAT ポートは、宛先 IP アドレス、ポートに関係なく、各フローに対して使用されます。One SNAT port is consumed for each flow, irrespective of destination IP address, port.

SNAT ポートの再利用SNAT port reuse

解放されたポートは必要に応じて再利用できます。Once a port has been released, the port is available for reuse as needed. SNAT ポートは、特定のシナリオに対する最低から最高までのシーケンスと見なすことができます。最初に利用できる SNAT ポートは新しい接続に利用されます。You can think of SNAT ports as a sequence from lowest to highest available for a given scenario, and the first available SNAT port is used for new connections.

ポート不足Exhaustion

SNAT ポート リソースがなくなると、既存のフローによって SNAT ポートが解放されない限り、送信フローは失敗します。When SNAT port resources are exhausted, outbound flows fail until existing flows release SNAT ports. Load Balancer はフローが終了すると SNAT ポートを回収します。また、4 分間のアイドル タイムアウトを使用して、アイドル フローからの SNAT ポートを回収します。Load Balancer reclaims SNAT ports when the flow closes and uses a 4-minute idle timeout for reclaiming SNAT ports from idle flows.

一般的に UDP SNAT ポートは、使用されるアルゴリズムの違いが原因で、TCP SNAT ポートと比べてかなり迅速に使い果たされてしまいます。UDP SNAT ports generally exhaust much faster than TCP SNAT ports due to the difference in algorithm used. この違いを念頭に置いて、テストの設計とスケーリングを行う必要があります。You must design and scale test with this difference in mind.

SNAT ポート不足を引き起こしやすい状態を軽減するパターンについては、SNAT の管理に関するセクションを確認してください。For patterns to mitigate conditions that commonly lead to SNAT port exhaustion, review the Managing SNAT section.

ポート マスカレード SNAT (PAT) 用のエフェメラル ポートの事前割り当てEphemeral port preallocation for port masquerading SNAT (PAT)

Azure では、アルゴリズムを使用して、割り当てられる利用可能な SNAT ポートの数が決定されます。これは、ポート マスカレード SNAT (PAT) を使用する際のバックエンド プールのサイズに基づきます。Azure uses an algorithm to determine the number of preallocated SNAT ports available based on the size of the backend pool when using port masquerading SNAT (PAT). SNAT ポートは、特定のパブリック IP ソース アドレスについて使用可能なエフェメラル ポートです。SNAT ports are ephemeral ports available for a particular public IP source address. ロード バランサーに関連付けられている各パブリック IP アドレスでは、各 IP トランスポート プロトコルに対して 64,000 のポートを SNAT ポートとして使用できます。For each Public IP address associated with a load balancer there are 64,000 ports available as SNAT ports for each IP transport protocol.

同じ数の SNAT ポートが UDP と TCP にそれぞれ事前に割り当てられ、IP トランスポート プロトコルに従って個別に使用されます。The same number of SNAT ports are preallocated for UDP and TCP respectively and consumed independently per IP transport protocol. ただし、SNAT ポートの使用方法は、フローが UDP または TCP のどちらかに応じて異なります。However, the SNAT port usage is different depending on whether the flow is UDP or TCP.

重要

Standard SKU の SNAT プログラミングは、IP トランスポート プロトコルに従い、負荷分散規則から派生します。Standard SKU SNAT programming is per IP transport protocol and derived from the load balancing rule. TCP 負荷分散規則だけが存在する場合、SNAT は TCP でのみ使用できます。If only a TCP load balancing rule exists, SNAT is only available for TCP. TCP 負荷分散規則しかないときに、UDP の送信 SNAT が必要な場合は、同じフロントエンドから同じバックエンド プールへの UDP 負荷分散規則を作成します。If you have only a TCP load balancing rule and need outbound SNAT for UDP, create a UDP load balancing rule from the same frontend to the same backend pool. これにより、UDP の SNAT プログラミングがトリガーされます。This will trigger SNAT programming for UDP. 動作規則や正常性プローブは不要です。A working rule or health probe is not required. Basic SKU の SNAT では、負荷分散規則で指定されたトランスポート プロトコルに関係なく、常に両方の IP トランスポート プロトコルに対して SNAT がプログラムされます。Basic SKU SNAT always programs SNAT for both IP transport protocol, irrespective of the transport protocol specified in the load balancing rule.

SNAT ポートは Azure によって各 VM の NIC の IP 構成に事前に割り当てられます。Azure preallocates SNAT ports to the IP configuration of the NIC of each VM. IP 構成がプールに追加されると、バックエンド プール サイズに基づいて SNAT ポートがこの IP 構成に事前割り当てされます。When an IP configuration is added to the pool, the SNAT ports are preallocated for this IP configuration based on the backend pool size. 送信フローが作成されると、これらのポートは (事前に割り当てられた上限に達するまで) PAT によって動的に消費されます。そして、フローが終了するかアイドル タイムアウトが発生すると解放されます。When outbound flows are created, PAT dynamically consumes (up to the preallocated limit) and releases these ports when the flow closes or idle timeouts happen.

次の表は、バックエンド プール サイズのレベルに対する SNAT ポートの事前割り当てを示しています。The following table shows the SNAT port preallocations for tiers of backend pool sizes:

プール サイズ (VM インスタンス)Pool size (VM instances) IP 構成あたりの事前に割り当てられる SNAT ポートPreallocated SNAT ports per IP configuration
1-501-50 1,0241,024
51-10051-100 512512
101-200101-200 256256
201-400201-400 128128
401-800401-800 6464
801-1,000801-1,000 3232

注意

複数フロントエンドで Standard Load Balancer を使用する場合、フロントエンド IP アドレスごとに、前の表に記載されている使用可能な SNAT ポート数を増やします。When using Standard Load Balancer with multiple frontends, each frontend IP address multiplies the number of available SNAT ports in the previous table. たとえば、それぞれに個別のフロントエンド IP アドレスがある 2 つの負荷分散規則を持つ、50 個の VM のバックエンド プールでは、規則ごとに 2048 (2x 1024) 個の SNAT ポートを使用します。For example, a backend pool of 50 VM's with 2 load balancing rules, each with a separate frontend IP address, will use 2048 (2x 1024) SNAT ports per rule. 詳細については、複数のフロントエンドに関するセクションを参照してください。See details for multiple frontends.

利用できる SNAT ポートの数が、そのままフローの数に変換されるわけではないことに注意してください。Remember that the number of SNAT ports available does not translate directly to number of flows. 複数の一意の送信先に単一の SNAT ポートを再利用できます。A single SNAT port can be reused for multiple unique destinations. ポートは、フローを一意にするために必要な場合にのみ消費されます。Ports are consumed only if it's necessary to make flows unique. 設計と軽減策のガイダンスについて、この有限のリソースを管理する方法に関するセクション、および PAT について説明しているセクションを参照してください。For design and mitigation guidance, refer to the section about how to manage this exhaustible resource and the section that describes PAT.

パックエンド プールのサイズを変更すると、確立されたフローの一部に影響が及ぶ可能性があります。Changing the size of your backend pool might affect some of your established flows. バックエンド プール サイズが増加し、次のレベルに移行すると、1 つ大きいバックエンド プール レベルに移行する間に、事前に割り当てられた SNAT ポートの半分が回収されます。If the backend pool size increases and transitions into the next tier, half of your preallocated SNAT ports are reclaimed during the transition to the next larger backend pool tier. 回収された SNAT ポートに関連付けられているフローはタイムアウトになるので、再確立する必要があります。Flows that are associated with a reclaimed SNAT port will time out and must be reestablished. 新しいフローを試みると、事前に割り当てられたポートが使用可能な限り、フローはすぐに成功します。If a new flow is attempted, the flow will succeed immediately as long as preallocated ports are available.

バックエンド プールのサイズが減少し、1 つ小さいレベルに移行すると、使用できる SNAT ポートが増えます。If the backend pool size decreases and transitions into a lower tier, the number of available SNAT ports increases. この場合、割り当てられている既存の SNAT ポートと各フローに影響はありません。In this case, existing allocated SNAT ports and their respective flows are not affected.

SNAT ポートの割り当ては、IP トランスポート プロトコル固有であり (TCP と UDP は別々に管理されます)、次の条件下で解放されます。SNAT ports allocations are IP transport protocol specific (TCP and UDP are maintained separately) and are released under the following conditions:

TCP SNAT ポートの解放TCP SNAT port release

  • サーバー/クライアントのどちらかが FINACK を送信すると、SNAT ポートは 240 秒後に解放されます。If either server/client sends FINACK, SNAT port will be released after 240 seconds.
  • RST が送信されると、SNAT ポートは 15 秒後に解放されます。If a RST is seen, SNAT port will be released after 15 seconds.
  • アイドル タイムアウトに達すると、ポートは解放されます。If idle timeout has been reached, port is released.

UDP SNAT ポートの解放UDP SNAT port release

  • アイドル タイムアウトに達すると、ポートは解放されます。If idle timeout has been reached, port is released.

VM で使用されるパブリック IP の検出Discovering the public IP that a VM uses

送信接続のパブリック ソース IP アドレスを判別する方法は多数あります。There are many ways to determine the public source IP address of an outbound connection. OpenDNS によって提供されるサービスで、VM のパブリック IP アドレスを表示できます。OpenDNS provides a service that can show you the public IP address of your VM.

nslookup コマンドを使用することで、名前 myip.opendns.com に関する DNS クエリを OpenDNS Resolver に送信できます。By using the nslookup command, you can send a DNS query for the name myip.opendns.com to the OpenDNS resolver. このサービスは、クエリの送信に使用されたソース IP アドレスを返します。The service returns the source IP address that was used to send the query. VM から次のクエリを実行すると、その VM で使用されるパブリック IP が応答として返されます。When you run the following query from your VM, the response is the public IP used for that VM:

nslookup myip.opendns.com resolver1.opendns.com

送信接続の防止Preventing outbound connectivity

場合によっては、VM で送信フローを作成できるのは望ましくない場合があります。Sometimes it's undesirable for a VM to be allowed to create an outbound flow. また、送信フローで接続できる宛先や受信フローを開始できる宛先を管理するための要件がある場合もあります。Or there might be a requirement to manage which destinations can be reached with outbound flows, or which destinations can begin inbound flows. このような場合は、ネットワーク セキュリティ グループ を使用すると、VM が接続できる宛先を管理できます。In this case, you can use network security groups to manage the destinations that the VM can reach. また、NSG を使用して、受信フローを開始できるパブリックの宛先を管理することもできます。You can also use NSGs to manage which public destination can initiate inbound flows.

負荷分散された VM に NSG を適用するときは、サービス タグ既定のセキュリティ規則に注意してください。When you apply an NSG to a load-balanced VM, pay attention to the service tags and default security rules. VM が Azure Load Balancer からのヘルス プローブ要求を受け取ることができるようにしておいてください。You must ensure that the VM can receive health probe requests from Azure Load Balancer.

NSG が AZURE_LOADBALANCER 既定タグからのヘルス プローブ要求をブロックすると、VM のヘルス プローブが失敗して VM が停止しているとマークされます。If an NSG blocks health probe requests from the AZURE_LOADBALANCER default tag, your VM health probe fails and the VM is marked down. ロード バランサーはその VM への新しいフローの送信を停止します。Load Balancer stops sending new flows to that VM.

同じリージョン内の Azure Storage への接続Connections to Azure Storage in the same region

上記のシナリオでの送信接続の使用では、VM と同じリージョン内の Storage に接続する必要はありません。Having outbound connectivity via the scenarios above is not necessary to connect to Storage in the same region as the VM. これを望まない場合は、前述のようにネットワーク セキュリティ グループ (NSG) を使用します。If you do not want this, use network security groups (NSGs) as explained above. 他のリージョン内の Storage への接続では、送信接続が必要です。For connectivity to Storage in other regions, outbound connectivity is required. 同じリージョン内の VM から Storage に接続する場合、Storage 診断ログ内のソース IP アドレスは、VM のパブリック IP アドレスではなく、内部プロバイダー アドレスになることに注意してください。Please note that when connecting to Storage from a VM in the same region, the source IP address in the Storage diagnostic logs will be an internal provider address, and not the public IP address of your VM. お使いの Storage アカウントへのアクセスを、同じリージョン内の 1 つ以上の仮想ネットワーク サブネット内の VM に制限する場合は、ストレージ アカウントのファイアウォールを構成するときに、パブリック IP アドレスではなく、仮想ネットワーク サービス エンドポイントを使用します。If you wish to restrict access to your Storage account to VMs in one or more Virtual Network subnets in the same region, use Virtual Network service endpoints and not your public IP address when configuring your storage account firewall. サービス エンドポイントを構成すると、診断ログには、内部プロバイダー アドレスではなく、お使いの仮想ネットワークのプライベート IP アドレスが表示されます。Once service endpoints are configured, you will see your Virtual Network private IP address in your Storage diagnostic logs and not the internal provider address.

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

Azure Load Balancer は、アウトバウンドだけでなく、仮想ネットワークからのインバウンド接続も提供します。Azure Load Balancer provides outbound connectivity from a virtual network in addition to inbound. アウトバウンド規則を使用すると、パブリック Standard Load Balancer のアウトバウンド ネットワーク アドレス変換の構成を簡素化できます。Outbound rules make it simple to configure public Standard Load Balancer's outbound network address translation. アウトバウンド接続を宣言的に完全制御することで、特定のニーズに合わせてこの機能をスケーリングおよび調整できます。You have full declarative control over outbound connectivity to scale and tune this ability to your specific needs.

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

アウトバウンド規則を使用すると、Load Balancer を使って以下を行うことができます。With outbound rules, you can use Load Balancer to:

  • アウトバウンド NAT をゼロから定義する。define outbound NAT from scratch.
  • 既存のアウトバウンド NAT の動作をスケーリング、調整する。scale and tune the behavior of existing outbound NAT.

アウトバウンド規則によって以下を制御できます。Outbound rules allow you to control:

  • どの仮想マシンをどのパブリック IP アドレスに変換するか。which virtual machines should be translated to which public IP addresses.
  • アウトバウンド SNAT ポートを割り当てる方法。how outbound SNAT ports should be allocated.
  • アウトバウンド変換の提供対象となるプロトコル。which protocols to provide outbound translation for.
  • アウトバウンド接続のアイドル タイムアウトの時間 (4 ~ 120 分)。what duration to use for outbound connection idle timeout (4-120 minutes).
  • アイドル タイムアウト時に TCP リセットを送信するかどうか。whether to send a TCP Reset on idle timeout

アウトバウンド規則により、アウトバウンド接続に関する記事に記載されているシナリオ 2 がスケーリングされます。シナリオの優先順位はそのままです。Outbound rules expand scenario 2 in described in the outbound connections article and the scenario precedence remains as-is.

送信規則Outbound rule

すべてのロード バランサー規則と同様に、アウトバウンド規則は、負荷分散規則およびアウトバウンド NAT 規則と同じ構文に従います。Like all Load Balancer rules, outbound rules follow the same familiar syntax as load balancing and inbound NAT rules:

フロントエンド + パラメーター + バックエンド プールfrontend + parameters + backend pool

アウトバウンド規則では、"フロントエンド" に変換される、"バックエンド プールによって識別されるすべての仮想マシン" のアウトバウンド NAT を構成します。An outbound rule configures outbound NAT for all virtual machines identified by the backend pool to be translated to the frontend. また、"パラメーター" により、アウトバウンド NAT アルゴリズムをさらに細かく制御できます。And parameters provide additional fine grained control over the outbound NAT algorithm.

API バージョン "2018-07-01" では、次のような構造のアウトバウンド規則定義が許可されています。API version "2018-07-01" permits an outbound rule definition structured as follows:

      "outboundRules": [
        {
          "frontendIPConfigurations": [ list_of_frontend_ip_configuations ],
          "allocatedOutboundPorts": number_of_SNAT_ports,
          "idleTimeoutInMinutes": 4 through 66,
          "enableTcpReset": true | false,
          "protocol": "Tcp" | "Udp" | "All",
          "backendAddressPool": backend_pool_reference,
        }
      ]

注意

有効なアウトバウンド NAT 構成は、すべてのアウトバウンド規則と負荷分散規則を合成したものです。The effective outbound NAT configuration is a composite of all outbound rules and load balancing rules. アウトバウンド規則は負荷分散規則に対してインクリメントされます。Outbound rules are incremental to load balancing rules. VM に複数の規則を適用するときに、効果的なアウトバウンド NAT 変換を管理するために、負荷分散規則のアウトバウンド NAT を無効にする方法を確認してください。Review disabling outbound NAT for a load balancing rule to manage the effective outbound NAT translation when multiple rules apply to a VM. 負荷分散規則と同じパブリック IP アドレスを使用するアウトバウンド規則を定義するときは、アウトバウンド SNAT を無効にする必要があります。You must disable outbound SNAT when defining an outbound rule which is using the same public IP address as a load balancing rule.

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

アウトバウンド規則は 1 つのパブリック IP アドレスでのみ使用できますが、アウトバウンド規則によって、アウトバウンド NAT をスケーリングするための構成の負担が軽減されます。While an outbound rule can be used with just a single public IP address, outbound rules ease the configuration burden for scaling outbound NAT. 複数の IP アドレスを使用することで、大規模なシナリオを計画できます。また、アウトバウンド規則を使用して、SNAT が枯渇しがちなパターンを緩和することもできます。You can use multiple IP addresses to plan for large-scale scenarios and you can use outbound rules to mitigate SNAT exhaustion prone patterns.

フロントエンドによって提供される追加の IP アドレスごとに、Load Balancer が SNAT ポートとして使用する 64,000 個のエフェメラル ポートが提供されます。Each additional IP address provided by a frontend provides 64,000 ephemeral ports for Load Balancer to use as SNAT ports. 負荷分散規則またはアウトバウンド NAT 規則では単一のフロントエンドを使用しますが、アウトバウンド規則ではフロントエンドの概念をスケーリングし、規則ごとに複数のフロントエンドを使用できます。While load balancing or inbound NAT rules have a single frontend, the outbound rule expands the frontend notion and allows multiple frontends per rule. 規則ごとに複数のフロントエンドを使用すると、使用可能な SNAT ポートの数にパブリック IP アドレスの数が乗算されるので、大規模なシナリオをサポートできます。With multiple frontends per rule, the quantity of available SNAT ports is multiplied with each public IP address, and large scenarios can be supported.

さらに、パブリック IP プレフィックスをアウトバウンド規則で直接使用することもできます。Additionally, you can use a public IP prefix directly with an outbound rule. パブリック IP プレフィックスの使用により、Azure デプロイからのフローのスケーリングが容易になり、ホワイトリスト登録が簡素化されます。Using public IP prefix provides for easier scaling and simplified white-listing of flows originating from your Azure deployment. パブリック IP アドレス プレフィックスを直接参照するように、Load Balancer リソース内のフロントエンド IP 構成を設定できます。You can configure a frontend IP configuration within the Load Balancer resource to reference a public IP address prefix directly. これにより、Load Balancer はそのパブリック IP プレフィックスを排他的に制御することが可能になります。また、アウトバウンド規則で、パブリック IP プレフィックスに含まれるすべてのパブリック IP アドレスが自動的にアウトバウンド接続に使用されるようになります。This allows Load Balancer exclusive control over the public IP prefix and the outbound rule will automatically use all public IP addresses contained within the public IP prefix for outbound connections. パブリック IP プレフィックスの範囲内の IP アドレスごとに、Load Balancer が SNAT ポートとして使用する 64,000 個のエフェメラル ポートが提供されます。Each of the IP addresses within the range of the public IP prefix provide 64,000 ephemeral ports per IP address for Load Balancer to use as SNAT ports.

アウトバウンド規則によって、パブリック IP プレフィックスを完全に制御する必要があるため、このオプションを使用するときは、パブリック IP プレフィックスから作成される個々のパブリック IP アドレス リソースを使用することはできません。You cannot have individual public IP address resources created from the public IP prefix when using this option as the outbound rule must have complete control of the public IP prefix. より細かい制御が必要な場合は、パブリック IP プレフィックスから個々のパブリック IP アドレス リソースを作成し、複数のパブリック IP アドレスをアウトバウンド規則のフロントエンドに個別に割り当てます。If you need more fine grained control, you can create individual public IP address resource from the public IP prefix and assign multiple public IP addresses individually to the frontend of an outbound rule.

SNAT ポートの割り当てを調整するTune SNAT port allocation

アウトバウンド規則を使用して、バックエンド プール サイズに基づく SNAT ポートの自動割り当てを調整し、SNAT ポートの自動割り当てによって提供されるポート数よりも多くのポートを割り当てたり、割り当て数を減らしたりできます。You can use outbound rules to tune the automatic SNAT port allocation based on backend pool size and allocate more or less than the automatic SNAT port allocation provides.

VM (NIC IP 構成) ごとに 10,000 個の SNAT ポートを割り当てるには、次のパラメーターを使用します。Use the following parameter to allocate 10,000 SNAT ports per VM (NIC IP configuration).

      "allocatedOutboundPorts": 10000

アウトバウンド規則のすべてのフロントエンドのパブリック IP アドレスごとに、SNAT ポートとして使用する最大 64,000 個のエフェメラル ポートが提供されます。Each public IP address from all frontends of an outbound rule contributes up to 64,000 ephemeral ports for use as SNAT ports. Load Balancer は、SNAT ポートを 8 の倍数で割り当てます。Load Balancer allocates SNAT ports in multiples of 8. 8 で割り切れない値を指定すると、その構成操作は拒否されます。If you provide a value not divisible by 8, the configuration operation is rejected. パブリック IP アドレスの数に基づく使用可能な SNAT ポートの数よりも多くのポートを割り当てようとすると、その構成操作は拒否されます。If you attempt to allocate more SNAT ports than are available based on the number of public IP addresses, the configuration operation is rejected. たとえば、VM ごとに 10,000 個のポートを割り当て、バックエンド プール内の 7 つの VM が 1 つのパブリック IP アドレスを共有している場合、この構成は拒否されます (7 x 10,000 SNAT ポート > 64,000 SNAT ポート)。For example, if you allocate 10,000 ports per VM and 7 VMs in a backend pool would share a single public IP address, the configuration is rejected (7 x 10,000 SNAT ports > 64,000 SNAT ports). このシナリオに対応するには、アウトバウンド規則のフロントエンドにパブリック IP アドレスを追加します。You can add more public IP addresses to the frontend of the outbound rule to enable the scenario.

ポート数に 0 を指定することで、バックエンド プール サイズに基づく SNAT ポートの自動割り当てに戻すことができます。You can revert back to automatic SNAT port allocation based on backend pool size by specifying 0 for number of ports. その場合、表に従って、最初の 50 VM インスタンスは 1024 ポートを取得し、51 から 100 の VM インスタンスは、512 ポートを取得するというようになります。In that case the first 50 VM instances will get 1024 ports, 51-100 VM instances will get 512 and so on according to the table.

アウトバウンド フローのアイドル タイムアウトを制御するControl outbound flow idle timeout

アウトバウンド規則には、アウトバウンド フローのアイドル タイムアウトを制御し、アプリケーションのニーズに合わせるための構成パラメーターがあります。Outbound rules provide a configuration parameter to control the outbound flow idle timeout and match it to the needs of your application. アウトバウンド アイドル タイムアウトの既定値は 4 分です。Outbound idle timeouts default to 4 minutes. このパラメーターには、特定の規則に一致するフローのアイドル タイムアウトの分数として、4 から 120 の値を指定できます。The parameter accepts a value from 4 to 120 to specific the number of minutes for the idle timeout for flows matching this particular rule.

アウトバウンド アイドル タイムアウトを 1 時間に設定するには、次のパラメーターを使用します。Use the following parameter to set the outbound idle timeout to 1 hour:

      "idleTimeoutInMinutes": 60

アイドル タイムアウト時の TCP リセットを有効にする Enable TCP Reset on idle timeout

Load Balancer の既定の動作では、アウトバウンド アイドル タイムアウトに達すると、警告なしにフローが破棄されます。The default behavior of Load Balancer is to drop the flow silently when the outbound idle timeout has been reached. enableTCPReset パラメーターを使用すると、アプリケーションのより予測可能な動作を有効にし、アウトバウンド アイドル タイムアウトに達したときに、双方向 TCP リセット (TCP RST) を送信するかどうかを制御できます。With the enableTCPReset parameter, you can enable a more predictable application behavior and control whether to send bidirectional TCP Reset (TCP RST) at the time out of outbound idle timeout.

アウトバウンド規則で TCP リセットを有効にするには、次のパラメーターを使用します。Use the following parameter to enable TCP Reset on an outbound rule:

       "enableTcpReset": true

利用可能なリージョンなど、詳細については、アイドル タイムアウト時の TCP リセットに関するページをご覧ください。Review TCP Reset on idle timeout for details including region availability.

1 つの規則で TCP と UDP の両方のトランスポート プロトコルをサポートするSupport both TCP and UDP transport protocols with a single rule

ほとんどの場合、アウトバウンド規則のトランスポート プロトコルには "All" を使用しますが、必要に応じて、アウトバウンド規則を特定のトランスポート プロトコルに適用することもできます。You will likely want to use "All" for the transport protocol of the outbound rule, but you can also apply the outbound rule to a specific transport protocol as well if there is a need to do so.

プロトコルを TCP と UDP に設定するには、次のパラメーターを使用します。Use the following parameter to set the protocol to TCP and UDP:

      "protocol": "All"

負荷分散規則のアウトバウンド NAT を無効にするDisable outbound NAT for a load balancing rule

以前に説明したように、負荷分散規則では送信 NAT の自動プログラミングを提供します。As stated previously, load balancing rules provide automatic programming of outbound NAT. ただし、負荷分散規則による送信 NAT の自動プログラミングを無効にして、アウトバウンド NAT の動作を制御または調整できるようにすることでメリットが得られるシナリオやこれが必要なシナリオもあります。However, some scenarios benefit or require you to disable the automatic programming of outbound NAT by the load balancing rule to allow you to control or refine the behavior. アウトバウンド規則には、アウトバウンド NAT の自動プログラミングを停止することが重要となるシナリオがあります。Outbound rules have scenarios where it is important to stop the automatic outbound NAT programming.

このパラメーターには、次の 2 通りの使い方があります。You can use this parameter in two ways:

  • アウトバウンド NAT でのアウトバウンド IP アドレスの使用を必要に応じて抑制します。Optional suppression of using the inbound IP address for outbound NAT. アウトバウンド規則は負荷分散規則に対してインクリメントされますが、このパラメーターを設定することで、アウトバウンド規則による制御が可能になります。Outbound rules are incremental to load balancing rules and with this parameter set, the outbound rule is in control.

  • インバウンドとアウトバウンドに同時に使用される IP アドレスのアウトバウンド NAT パラメーターを調整します。Tune the outbound NAT parameters of an IP address used for inbound and outbound simultaneously. アウトバウンド規則による制御を可能にするには、アウトバウンド NAT の自動プログラミングを無効にする必要があります。The automatic outbound NAT programming must be disabled to allow an outbound rule to take control. たとえば、インバウンドにも使用されるアドレスの SNAT ポートの割り当てを変更するには、このパラメーターを true に設定する必要があります。For example, in order to change the SNAT port allocation of an address also used for inbound, this parameter must be set to true. アウトバウンド規則を使用して、インバウンドにも使用される IP アドレスのパラメーターを再定義しようとしたときに、負荷分散規則のアウトバウンド NAT プログラミングを解除していない場合、アウトバウンド規則の構成操作は失敗します。If you attempt to use an outbound rule to redefine the parameters of an IP address also used for inbound and have not released outbound NAT programming of the load balancing rule, the operation to configure an outbound rule will fail.

重要

このパラメーターを true に設定し、アウトバウンド接続を定義するアウトバウンド規則 (またはインスタンス レベルのパブリック IP のシナリオ) がない場合、仮想マシンはアウトバウンド接続できなくなります。Your virtual machine will not have outbound connectivity if you set this parameter to true and do not have an outbound rule (or instance-level public IP scenario to define outbound connectivity. VM またはアプリケーションの一部の操作は、アウトバウンド接続が使用可能であることに依存している場合があります。Some operations of your VM or your application may depend on having outbound connectivity available. 使用しているシナリオの依存関係を理解し、この変更による影響を考慮してください。Make sure you understand the dependencies of your scenario and have considered impact of making this change.

負荷分散規則で送信 SNAT を無効にするには、次の構成パラメーターを使用します。You can disable outbound SNAT on the load balancing rule with this configuration parameter:

      "loadBalancingRules": [
        {
          "disableOutboundSnat": true
        }
      ]

disableOutboundSnat パラメーターの既定値は false です。この場合、負荷分散規則は、負荷分散規則構成のミラー イメージとして自動アウトバウンド NAT を提供しますThe disableOutboundSNAT parameter defaults to false, which means the load balancing rule does provide automatic outbound NAT as a mirror image of the load balancing rule configuration.

負荷分散規則で disableOutboundSnat を true に設定すると、負荷分散規則はアウトバウンド NAT の自動プログラミングの制御を解放します。If you set disableOutboundSnat to true on the load balancing rule, the load balancing rule releases control of the otherwise automatic outbound NAT programming. 負荷分散規則の結果としてのアウトバウンド SNAT は無効になります。Outbound SNAT as a result of the load balancing rule is disabled.

既存のバックエンド プールを再利用するか、新しいバックエンド プールを定義するReuse existing or define new backend pools

アウトバウンド規則では、規則を適用する VM のグループを定義するための新しい概念は導入されていません。Outbound rules do not introduce a new concept for defining the group of VMs to which the rule should apply. 代わりに、負荷分散規則にも使用されるバックエンド プールの概念を再利用します。Instead, they reuse the concept of a backend pool, which is also used for load balancing rules. これを使用して、既存のバックエンド プール定義を再利用するか、アウトバウンド規則専用のものを作成することで、構成を簡素化できます。You can use this to simplify the configuration by either reusing an existing backend pool definition or creating one specifically for an outbound rule.

シナリオScenarios

アウトバウンド接続をパブリック IP アドレスの特定のセットに調整するGroom outbound connections to a specific set of public IP addresses

アウトバウンド規則を使用して、パブリック IP アドレスの特定のセットが発信元になるようにアウトバウンド接続を調整し、ホワイトリスト登録のシナリオを容易にすることができます。You can use an outbound rule to groom outbound connections to appear to originate from a specific set of public IP addresses to ease whitelisting scenarios. この発信元パブリック IP アドレスは、負荷分散規則で使用されているものと同じであっても、負荷分散規則で使用されているものとは異なるパブリック IP アドレスのセットであっても構いません。This source public IP address can be the same as used by a load balancing rule or a different set of public IP addresses than used by a load balancing rule.

  1. パブリック IP プレフィックス (またはパブリック IP プレフィックスのパブリック IP アドレス) を作成します。Create public IP prefix (or public IP addresses from public IP prefix)
  2. パブリック Standard Load Balancer を作成するCreate a public Standard Load Balancer
  3. 使用するパブリック IP プレフィックス (またはパブリック IP アドレス) を参照するフロントエンドを作成します。Create frontends referencing the public IP prefix (or public IP addresses) you wish to use
  4. バックエンド プールを再利用するか、バックエンド プールを作成し、VM をパブリック Load Balancer のバックエンド プールに配置します。Reuse a backend pool or create a backend pool and place the VMs into a backend pool of the public Load Balancer
  5. フロントエンドを使用してこれらの VM のアウトバウンド NAT をプログラムするように、パブリック Load Balancer のアウトバウンド規則を構成します。Configure an outbound rule on the public Load Balancer to program outbound NAT for these VMs using the frontends

アウトバウンドに負荷分散規則を使用しない場合は、負荷分散規則でアウトバウンド SNAT を無効にする必要があります。If you do not wish for the load balancing rule to be used for outbound, you need to disable outbound SNAT on the load balancing rule.

SNAT ポートの割り当てを変更するModify SNAT port allocation

アウトバウンド規則を使用して、バックエンド プール サイズに基づく SNAT ポートの自動割り当てを調整できます。You can use outbound rules to tune the automatic SNAT port allocation based on backend pool size.

たとえば、アウトバウンド NAT の 1 つのパブリック IP アドレスを共有する 2 つの仮想マシンがあり、SNAT ポートが枯渇している場合は、割り当てられた SNAT ポートの数を既定の 1024 個から増やすことができます。For example, if you have two virtual machines sharing a single public IP address for outbound NAT, you may wish to increase the number of SNAT ports allocated from the default 1024 ports if you are experiencing SNAT exhaustion. パブリック IP アドレスごとに、最大 64,000 個のエフェメラル ポートを提供できます。Each public IP address can contribute up to 64,000 ephemeral ports. 単一のパブリック IP アドレス フロントエンドでアウトバウンド規則を構成した場合、合計 64,000 個の SNAT ポートをバックエンド プール内の VM に配布できます。If you configure an outbound rule with a single public IP address frontend, you can distribute a total of 64,000 SNAT ports to VMs in the backend pool. 2 つの VM の場合、アウトバウンド規則を使用して最大 32,000 個 (2 x 32,000 = 64,000) の SNAT ポートを割り当てることができます。For two VMs, a maximum of 32,000 SNAT ports can be allocated with an outbound rule (2x 32,000 = 64,000).

アウトバウンド接続の概要と、SNAT ポートを割り当てて使用する方法の詳細をご覧ください。Review outbound connections and the details on how SNAT ports are allocated and used.

アウトバウンドのみを有効にするEnable outbound only

パブリック Standard Load Balancer を使用して、VM のグループにアウトバウンド NAT を提供できます。You can use a public Standard Load Balancer to provide outbound NAT for a group of VMs. このシナリオでは、追加の規則を必要とせずに、アウトバウンド規則を単独で使用できます。In this scenario, you can use an outbound rule by itself, without the need for any additional rules.

VM のアウトバウンド NAT のみ (インバウンドなし)Outbound NAT for VMs only (no inbound)

パブリック Standard Load Balancer を定義し、VM をバックエンド プールに配置します。アウトバウンド NAT をプログラムするようにし、特定のパブリック IP アドレスが発信元になるようにアウトバウンド接続を調整するアウトバウンド規則を構成します。Define a public Standard Load Balancer, place the VMs into the backend pool, and configure an outbound rule to program outbound NAT and groom the outbound connections to originate from a specific public IP address. パブリック IP プレフィックスを使用して、アウトバウンド接続の発信元のホワイトリスト登録を簡素化することもできます。You can also use a public IP prefix simplify white-listing the source of outbound connections.

  1. パブリック Standard Load Balancer を作成します。Create a public Standard Load Balancer.
  2. バックエンド プールを作成し、VM をパブリック Load Balancer のバックエンド プールに配置します。Create a backend pool and place the VMs into a backend pool of the public Load Balancer.
  3. これらの VM のアウトバウンド NAT をプログラムするように、パブリック Load Balancer のアウトバウンド規則を構成します。Configure an outbound rule on the public Load Balancer to program outbound NAT for these VMs.
内部 Standard Load Balancer のアウトバウンド NAT のシナリオOutbound NAT for internal Standard Load Balancer scenarios

内部 Standard Load Balancer を使用する場合、送信接続が明示的に宣言されるまで送信 NAT は使用できません。When using an internal Standard Load Balancer, outbound NAT is not available until outbound connectivity has been explicitly declared. 以下の手順で、アウトバウンド規則を使用して内部 Standard Load Balancer の背後にある VM の送信接続を作成し、送信接続を定義します。You can define outbound connectivity using an outbound rule to create outbound connectivity for VMs behind an internal Standard Load Balancer with these steps:

  1. パブリック Standard Load Balancer を作成します。Create a public Standard Load Balancer.
  2. 内部 Load Balancer に加えて、バックエンド プールを作成し、VM をパブリック Load Balancer のバックエンド プールに配置します。Create a backend pool and place the VMs into a backend pool of the public Load Balancer in addition to the internal Load Balancer.
  3. これらの VM のアウトバウンド NAT をプログラムするように、パブリック Load Balancer のアウトバウンド規則を構成します。Configure an outbound rule on the public Load Balancer to program outbound NAT for these VMs.
パブリック Standard Load Balancer でアウトバウンド NAT の TCP プロトコルと UDP プロトコルの両方を有効にするEnable both TCP & UDP protocols for outbound NAT with a public Standard Load Balancer
  • パブリック Standard Load Balancer を使用する場合、提供されるアウトバウンド NAT の自動プログラミングは負荷分散規則のトランスポート プロトコルに対応します。When using a public Standard Load Balancer, the automatic outbound NAT programming provided matches the transport protocol of the load balancing rule.

    1. 負荷分散規則でアウトバウンド SNAT を無効にします。Disable outbound SNAT on the load balancing rule.
    2. 同じ Load Balancer のアウトバウンド規則を構成します。Configure an outbound rule on the same Load Balancer.
    3. VM によって既に使用されているバックエンド プールを再利用します。Reuse the backend pool already used by your VMs.
    4. アウトバウンド規則の一部として "protocol": "All" を指定します。Specify "protocol": "All" as part of the outbound rule.
  • インバウンド NAT 規則のみを使用している場合、アウトバウンド NAT は提供されません。When only inbound NAT rules are used, no outbound NAT is provided.

    1. VM をバックエンド プールに配置します。Place VMs in a backend pool.
    2. パブリック IP アドレスまたはパブリック IP プレフィックスを使用して、1 つまたは複数のフロントエンド IP 構成を定義します。Define one or more frontend IP configurations with public IP address(es) or public IP prefix.
    3. 同じ Load Balancer のアウトバウンド規則を構成します。Configure an outbound rule on the same Load Balancer.
    4. アウトバウンド規則の一部として "protocol": "All" を指定しますSpecify "protocol": "All" as part of the outbound rule

制限事項Limitations

  • フロントエンド IP アドレスごとに使用可能なエフェメラル ポートの最大数は 64,000 個です。The maximum number of usable ephemeral ports per frontend IP address is 64,000.
  • 構成可能なアウトバウンド アイドル タイムアウトの範囲は、4 から 120 分 (240 から 7200 秒) です。The range of the configurable outbound idle timeout is 4 to 120 minutes (240 to 7200 seconds).
  • Load Balancer では、アウトバウンド NAT の ICMP はサポートされていません。Load Balancer does not support ICMP for outbound NAT.
  • アウトバウンド規則は、NIC のプライマリ IP 構成にのみ適用できます。Outbound rules can only be applied to primary IP configuration of a NIC. 複数 NIC がサポートされています。Multiple NICs are supported.
  • VNet およびその他の Microsoft プラットフォーム サービスなしの Web Worker ロールにアクセスできるのは、事前 VNet サービスおよびその他のプラットフォーム サービスの動作の副作用により、内部の Standard Load Balancer が使用される場合のみです。Web Worker Roles without a VNet and other Microsoft platform services can be accessible when only an internal Standard Load Balancer is used due to a side effect from how pre-VNet services and other platform services function. それぞれのサービス自体、または基になるプラットフォームは予告なく変更されることがあるため、この副作用に依存しないでください。Do not rely on this side effect as the respective service itself or the underlying platform may change without notice. 内部の Standard Load Balancer のみを使用する場合は、必要に応じて、明示的に送信接続を作成する必要があることを常に想定する必要があります。You must always assume you need to create outbound connectivity explicitly if desired when using an internal Standard Load Balancer only. この記事で説明されている既定の SNAT のシナリオ 3 を使用することはできません。The default SNAT scenario 3 described in this article is not available.

次のステップNext steps