Azure NAT Gateway を使用したソース ネットワーク アドレス変換 (SNAT)

ソース ネットワーク アドレス変換 (SNAT) を使用すると、プライベート仮想ネットワークからのトラフィックは、完全にプライベートなままインターネットに接続できます。 SNAT は、発信パケットの送信元 IP とポートをパブリック IP とポートの組み合わせに書き換えます。 ポートは、互いに異なる接続を区別するために一意の識別子として使用されます。 インターネットでは、この区別を提供するために 5 タプル ハッシュ (プロトコル、送信元 IP/ポート、宛先 IP/ポート) が使用されます。

SNAT を使用すると、仮想ネットワーク内の複数のプライベート インスタンスで、同じ単一のパブリック IP アドレスまたは IP アドレス (プレフィックス) のセットを使用してインターネットに接続することもできます。

NAT ゲートウェイでは、多対一の SNAT 機能が有効になります。 サブネット内の多くのプライベート インスタンスは、インターネットに接続するために NAT ゲートウェイに接続されているパブリック IP アドレスに SNAT 接続できます。 NAT ゲートウェイが同じ宛先エンドポイントに複数の接続を行う場合、新しい接続ごとに異なる SNAT ポートが使用されるため、接続を相互に区別できます。

SNAT ポートが枯渇するのは、ソース エンドポイントで、新しい接続を区別するための空き SNAT ポートが使い果たされた場合です。 SNAT ポートの枯渇が発生すると、接続は失敗します。

NAT ゲートウェイの SNAT のスケーリング

NAT ゲートウェイのスケーリングは主に、共有された空き SNAT ポート インベントリを管理する機能です。

SNAT ポート インベントリは、パブリック IP アドレス、パブリック IP プレフィックス、または NAT ゲートウェイに接続されている両方によって提供されます。 SNAT ポート インベントリは、NAT ゲートウェイに接続されているサブネット内のすべてのインスタンスでオンデマンドで使用できます。 サブネットのプライベート インスタンスのワークロードがスケーリングされると、NAT ゲートウェイは必要に応じて SNAT ポートを割り当てます。

仮想ネットワーク内の複数のサブネットが同じ NAT ゲートウェイ リソースに接続されている場合、NAT ゲートウェイによって提供される SNAT ポート インベントリはすべてのサブネットで共有されます。

1 つの NAT ゲートウェイで、最大 16 個の IP アドレスまでスケールアップできます。 各 NAT ゲートウェイのパブリック IP アドレスでは、送信接続を行うために 64,512 個の SNAT ポートが提供されます。 NAT ゲートウェイでは、100 万個を超える SNAT ポートまでスケールアップできます。 TCP と UDP は、別個の SNAT ポート インベントリであり、NAT ゲートウェイから独立しています。

NAT ゲートウェイで SNAT ポートを動的に割り当てる

NAT ゲートウェイでは、仮想マシンなどサブネットのプライベート リソース全体に SNAT ポートを動的に割り当てます。 すべての空き SNAT ポートは、NAT ゲートウェイが構成されているサブネット上のすべての仮想マシンによってオンデマンドで使用されます。

他の SNAT 方式では、各仮想マシンへの SNAT ポートの事前割り当てが必要です。 この SNAT ポートの事前割り当てを行うと、一部の仮想マシンで SNAT ポートが枯渇する可能性がありますが、他の仮想マシンには送信接続用に使用可能な SNAT ポートが残っています。

NAT ゲートウェイでは、SNAT ポートの事前割り当ては必要ありません。つまり、SNAT ポートがそれらを実際に必要としていない仮想マシンによって使用されないまま放置される、ということがないことを意味します。

解放された SNAT ポートは、NAT ゲートウェイで構成されたサブネット上の任意の仮想マシンで使用できます。 割り当てはオンデマンドで行われるので、サブネット上の動的かつ多様なワークロードが必要に応じて SNAT ポートを使用できます。 使用できる SNAT ポートがある限り、SNAT フローは成功します。

NAT ゲートウェイ SNAT ポートの選択と再利用

新しい送信接続を作成するために、NAT ゲートウェイが使用可能な SNAT ポートのインベントリから1つをランダムに選択します。 NAT ゲートウェイが使用可能な SNAT ポートを検出できない場合、SNAT ポートを再利用します。 同じ SNAT ポートを使用して、複数の異なる宛先に同時に接続できます。

SNAT ポートを再利用して、同じ宛先エンドポイントに接続できます。 ポートが再利用される前に、NAT ゲートウェイは、接続が閉じられた後のポートのクール ダウンのために SNAT ポート再利用タイマーを配置します。

SNAT ポート再利用タイマーは、同じ宛先に接続するためにポートが選択されすぎないようにするのに役立ちます。 このプロセスは、宛先エンドポイントに、送信元ポートにクール ダウン タイマーを配置するファイアウォールまたはその他のサービスが構成されている場合に役立ちます。 SNAT ポート再利用タイマーは、接続フローが閉じられた方法によって異なります。 詳細については、「ポート再利用タイマー」を参照してください。

NAT ゲートウェイの SNAT フローの例

NAT ゲートウェイを使用する多対一の SNAT

NAT ゲートウェイでは、NAT ゲートウェイ構成サブネット内の複数のプライベート インスタンスが同じパブリック IP アドレスを使用して送信に接続できる多対一の構成を提供します。

次の表では、2 つの異なる仮想マシン (10.0.0.1 と 10.2.0.1) が https://microsoft.com 宛先 IP 23.53.254.142 に接続されます。 NAT ゲートウェイがパブリック IP アドレス 65.52.1.1 で構成されている場合、各仮想マシンの送信元 IP が NAT ゲートウェイのパブリック IP アドレスと SNAP ポートに変換されます。

Flow 送信元のタプル SNAT 変換の後の送信元タプル 送信先のタプル
1 10.0.0.1:4283 65.52.1.1:1234 23.53.254.142:80
2 10.0.0.1:4284 65.52.1.1:1235 23.53.254.142:80
3 10.2.0.1:5768 65.52.1.1:1236 23.53.254.142:80

IP マスカレードまたはポート マスカレードは、インターネットに接続する前に、プライベート IP とポートをパブリック IP とポートに置き換える処理です。 複数のプライベート リソースを、NAT ゲートウェイの同じパブリック IP の背後でマスカレードできます。

NAT ゲートウェイが SNAT ポートを再利用して新しい宛先に接続する

前述のように、NAT ゲートウェイは同じ SNAT ポートを再利用して、新しい宛先エンドポイントに同時に接続できます。 次の表では、NAT ゲートウェイによってフロー 4 が他の宛先に既に使用されている SNAT ポートに変換されます (前の表のフロー 1 を参照)。

Flow 送信元のタプル SNAT 変換の後の送信元タプル 送信先のタプル
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80

NAT ゲートウェイ SNAT ポートをクール ダウンして、同じ宛先に再利用する

NAT ゲートウェイが SNAT ポートを再利用して同じ宛先エンドポイントに新しい接続を確立するシナリオでは、SNAT ポートは最初にクール ダウンのために SNAT ポート再利用フェーズに配置されます。 SNAT ポートの再利用期間は、同じ宛先に接続するときに SNAT ポートがあまり迅速に再利用されないようにするのに役立ちます。 この SNAT ポートを NAT ゲートウェイのクール ダウンに再利用することは、宛先エンドポイントにクール ダウン用の独自のソース ポート タイマーを備えたファイアウォールがあるシナリオで役立ちます。

この SNAT ポートの再利用のクールダウン動作を示すために、前の表のフロー 4 を詳しく見てみましょう。 フロー 4 は、20 秒のソース ポート クール ダウン タイマーを使用して、ファイアウォールが前面にある宛先エンドポイントに接続していました。

Flow 送信元のタプル SNAT 変換の後の送信元タプル 送信先のタプル パケットの種類の接続は、次の方法で閉じられます ソース ポートのクール ダウン用の宛先ファイアウォール タイマー
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80 TCP FIN 20 秒

接続フロー 4 は TCP FIN パケットで閉じます。 接続は TCP FIN パケットで閉じられているため、NAT ゲートウェイは SNAT ポート 1234 を 65 秒間クールダウンしてから再利用できるようにします。 ポート 1234 は、ファイアウォール ソース ポートのクール ダウン タイマー期間が 20 秒よりも長いため、接続フロー 5 は SNAT ポート 1234 を問題なく再利用します。

Flow 送信元のタプル SNAT 変換の後の送信元タプル 送信先のタプル
5 10.2.0.1:5769 65.52.1.1:1234 26.108.254.155:80

NAT ゲートウェイは、前の接続の閉じ方に応じて、異なる SNAT ポート再利用クール ダウン タイマーの下に SNAT ポートを配置します。 SNAT ポート再利用タイマーの詳細については、「ポート再利用タイマー」を参照してください。

上述の例で送信元ポートが割り当てられた特定の方式をすべてに当てはめるのは避けてください。 上記は、あくまで基本的な概念を例示したものです。