Private NAT
Private NAT を使用すると、Google Cloud ネットワーク間でプライベートからプライベートへの変換が可能になります。Private NAT サービスの一つである Inter-VPC NAT を使用すると、Network Connectivity Center の Virtual Private Cloud(VPC)スポークと連動する Private NAT ゲートウェイを作成し、VPC ネットワーク間のネットワーク アドレス変換(NAT)を実行できます。
Private NAT の基本的な構成とワークフロー
次の図は、基本的な Inter-VPC NAT の構成を示しています。

この例では、Inter-VPC NAT が次のように設定されています。
pvt-nat-gw
ゲートウェイは、us-east1
リージョンのsubnet-a
のすべての IP アドレス範囲に適用されるようにvpc-a
で構成されています。pvt-nat-gw
の NAT IP 範囲を使用すると、vpc-a
のsubnet-a
がvpc-b
のsubnet-c
と重複していても、vpc-a
のsubnet-a
にある仮想マシン(VM)インスタンスは、vpc-b
のsubnet-b
にある VM にトラフィックを送信できます。vpc-a
とvpc-b
の両方が、Network Connectivity Center ハブのスポークとして構成されています。pvt-nat-gw
ゲートウェイは、同じ Network Connectivity Center ハブへの VPC スポークとして構成されている VPC ネットワーク間で NAT を提供するように構成されています。
Private NAT ワークフローの例
上の図では、vpc-a
の subnet-a
内の内部 IP アドレス 192.168.1.2
を持つ VM vm-a
は、vpc-b
の subnet-b
内の IP アドレス 192.168.2.2
を持つ vm-b
から更新をダウンロードする必要があります。両方の VPC ネットワークは、VPC スポークと同じ Network Connectivity Center ハブに接続されています。vpc-b
に、vpc-a
のサブネットと重複する別のサブネット 192.168.1.0/24
が存在するとします。vpc-a
の subnet-a
が vpc-b
の subnet-b
と通信するには、vpc-a
で次のようにプライベート NAT ゲートウェイ pvt-nat-gw
を構成する必要があります。
- Private NAT サブネット:
10.1.2.0/29
。Private NAT ゲートウェイを構成する前に、目的をPRIVATE_NAT
としてこのサブネットを作成します。このサブネットが、同じ Network Connectivity Center ハブに接続されている VPC スポークのいずれかで既存のサブネットと重複していないことを確認します。 nexthop.hub
が Network Connectivity Center ハブの URL と一致する NAT ルール。subnet-a
のすべてのアドレス範囲の NAT
次の表は、上記の例に指定したネットワーク構成をまとめたものです。
ネットワーク名 | ネットワーク コンポーネント | IP アドレス / 範囲 | リージョン |
---|---|---|---|
vpc-a | subnet-a | 192.168.1.0/24 | us-east1 |
vm-a | 192.168.1.2 | ||
pvt-nat-gw | 10.1.2.0/29 | ||
vpc-b | subnet-b | 192.168.2.0/24 | us-west1 |
vm-b | 192.168.2.2 | ||
subnet-c | 192.168.1.0/24 | ||
vm-c | 192.168.1.3 |
Private NAT は、ポート予約手順に沿って、ネットワーク内の各 VM に NAT の送信元 IP アドレスと送信元ポートのタプルを予約します。たとえば、Private NAT ゲートウェイは、vm-a
用に 64 の送信元ポート(10.1.2.2:34000
から 10.1.2.2:34063
)を予約します。
VM が TCP プロトコルを使用して、宛先ポート 80
で更新サーバー 192.168.2.2
にパケットを送信すると、次のようになります。
VM が次の属性のリクエスト パケットを送信します。
- 送信元 IP アドレス:
192.168.1.2
、VM の内部 IP アドレス - 送信元ポート:
24000
、VM のオペレーティング システムによって選択されたエフェメラル送信元ポート - 宛先アドレス:
192.168.2.2
、更新サーバーの IP アドレス - 宛先ポート:
80
、更新サーバーへの HTTP トラフィックの宛先ポート - プロトコル: TCP
- 送信元 IP アドレス:
pvt-nat-gw
ゲートウェイは、下り(外向き)で送信元ネットワーク アドレス変換(SNAT または送信元 NAT)を実行し、リクエスト パケットの NAT 送信元 IP アドレスと送信元ポートを書き換えます。- NAT 送信元 IP アドレス:
10.1.2.2
、VM の予約済み NAT 送信元 IP アドレスと送信元ポートのタプルの 1 つ - 送信元ポート:
34022
、VM の予約済み送信元ポートタプルの未使用の送信元ポート - 宛先アドレス:
192.168.2.2
、変更なし - 宛先ポート:
80
、変更なし - プロトコル: TCP、変更なし
- NAT 送信元 IP アドレス:
更新サーバーがレスポンス パケットを送信すると、そのパケットは次の属性の
pvt-nat-gw
ゲートウェイに到達します。- 送信元 IP アドレス:
192.168.2.2
、更新サーバーの内部 IP アドレス - 送信元ポート:
80
、更新サーバーからの HTTP レスポンス - 宛先アドレス:
10.1.2.2
、リクエスト パケットの元の NAT 送信元 IP アドレスと一致 - 宛先ポート:
34022
、リクエスト パケットの送信元ポートと一致 - プロトコル: TCP、変更なし
- 送信元 IP アドレス:
pvt-nat-gw
ゲートウェイは、レスポンス パケットに宛先ネットワーク アドレス変換(DNAT)を実行し、パケットが次の属性を使用して更新をリクエストした VM に配信されるように、レスポンス パケットの宛先アドレスと宛先ポートを書き換えます。- 送信元 IP アドレス:
192.168.2.2
、変更なし - 送信元ポート:
80
、変更なし - 宛先アドレス:
192.168.1.2
、VM の内部 IP アドレス - 宛先ポート:
24000
、リクエスト パケットの元のエフェメラル送信元ポートと一致 - プロトコル: TCP、変更なし
- 送信元 IP アドレス:
仕様
全般的な仕様
- Inter-VPC NAT では、
type=PRIVATE
の NAT 構成を使用することにより、重複するサブネット内の VPC ネットワーク リソースが重複しないサブネット内のリソースと通信できるようになります。 - 2 つの VPC ネットワーク間の Inter-VPC NAT を有効にするには、各 VPC ネットワークを Network Connectivity Center ハブの VPC スポークとして構成します。スポークを作成するときに、重複する IP アドレス範囲が他の VPC スポークと共有されないようにする必要があります。詳細については、VPC スポークを作成するをご覧ください。
- Network Connectivity Center ハブを参照して、カスタム NAT ルールを作成する必要があります。NAT ルールは、VM が別の VPC ネットワークと通信する際に使用できる、目的が
PRIVATE_NAT
のサブネット内の NAT IP アドレス範囲を指定します。 - Inter-VPC NAT では、リージョン内およびリージョン間の VPC サブネットのアドレス変換がサポートされています。
-
Private NAT により、アウトバウンド接続とそれに対するインバウンド レスポンスを可能にしています。各 Private NAT ゲートウェイは、下り(外向き)に送信元 NAT を実行し、確立済みのレスポンス パケットに宛先 NAT を実行します。
-
Private NAT では、ピア VPC スポークからの未承諾のインバウンド リクエストは、ファイアウォール ルールで許可されている場合でも許可されません。詳細については、該当する RFC をご覧ください。
-
各 Private NAT ゲートウェイは、1 つの VPC ネットワーク、リージョン、Cloud Router に関連付けられます。Private NAT ゲートウェイと Cloud Router は、データプレーンに関与していないコントロール プレーンを提供するため、パケットは Private NAT ゲートウェイまたは Cloud Router を通過しません。
ルートとファイアウォール ルール
Private NAT は、Network Connectivity Center ハブに接続された 2 つの Network Connectivity Center VPC スポークによって交換されるサブネット ルートのみを使用します。Network Connectivity Center の VPC スポークの詳細については、VPC スポークの概要をご覧ください。
Private NAT には Cloud ファイアウォール ルールの要件はありません。ファイアウォール ルールは、Private NAT ゲートウェイではなく、Compute Engine VM のネットワーク インターフェースに直接適用されます。
NAT IP アドレスとの間の接続を許可する特別なファイアウォール ルールを作成する必要はありません。Private NAT ゲートウェイが VM のネットワーク インターフェースに NAT を提供する場合、NAT の前に、ネットワーク インターフェースのパケットに対して該当する下り(外向き)ファイアウォール ルールが評価されます。また、NAT によって処理された後に、上り(内向き)ファイアウォール ルールが評価されます。
サブネット IP アドレス範囲の適用範囲
次のものに対して NAT を実施提供するように Private NAT ゲートウェイを構成できます。
- リージョン内のすべてのサブネットのプライマリおよびセカンダリ IP アドレス範囲。ネットワーク インターフェースがリージョンのサブネットを使用している対象 VM のプライマリ内部 IP アドレスとすべてのエイリアス IP 範囲に対して、単一の Private NAT ゲートウェイが NAT を実施します。このオプションは、リージョンごとに、正確に 1 つの NAT ゲートウェイを使用します。
-
カスタム サブネット リスト。ネットワーク インターフェースが指定のサブネットのリストからサブネットを使用する対象 VM のプライマリ内部 IP アドレスとすべてのエイリアス IP 範囲に対して、単一の Private NAT ゲートウェイが NAT を提供します。
帯域幅
Private NAT ゲートウェイを使用しても、VM が使用できるアウトバウンドまたはインバウンド帯域幅の総量は変わりません。帯域幅の仕様はマシンタイプによって異なります。詳しくは、Compute Engine のドキュメントでのネットワーク帯域幅をご覧ください。
複数のネットワーク インターフェースを持つ VM
VM に複数のネットワーク インターフェースを持つように構成する場合、各インターフェースは別々の VPC ネットワークに属している必要があります。したがって、Private NAT ゲートウェイは VM の 1 つのネットワーク インターフェースにのみ適用されます。個別の Private NAT ゲートウェイは同じ VM に NAT を提供できます。この場合、各ゲートウェイが個々の別個のインターフェースに適用されます。
NAT IP アドレスとポート
Private NAT ゲートウェイを作成する際には、VM に NAT IP アドレスを割り当てる目的 PRIVATE_NAT
のサブネットを指定する必要があります。Private NAT IP アドレスの割り当ての詳細については、Private NAT IP アドレスをご覧ください。
各 Private NAT ゲートウェイが NAT サービスを提供する各 VM で予約する送信元ポートの数を構成できます。静的ポートの割り当てを構成できます。この場合、各 VM に同じ数のポートが予約されます。あるいは、動的ポートの割り当てを構成できます。この場合、予約済みポートの数は、指定した上限と下限の間で変更できます。
NAT を実施する VM は、ゲートウェイが提供するように構成されているサブネット IP アドレス範囲によって決まります。
ポートの詳細については、ポートをご覧ください。
適用される RFC
Cloud NAT は、RFC 3489 で定義されているポート制限付き Cone NAT です。
NAT タイムアウト
Private NAT ゲートウェイは次のタイムアウトを使用します。デフォルトのタイムアウト値を変更して、ポートの再利用率を増減できます。タイムアウト値は、Private NAT リソースの効率的な使用と、アクティブな接続、フロー、セッションの中断とのバランスを取るものです。
タイムアウト | 説明 | Private NAT のデフォルト | 構成可能 |
---|---|---|---|
UDP マッピングのアイドル タイムアウト RFC 4787 REQ-5 |
UDP フローによってエンドポイントへのトラフィック送信が停止するまでの時間を秒単位で指定します。これにより、Private NAT マッピングが削除されます。 UDP マッピングのアイドル タイムアウトは、トラフィックの送受信を停止する 2 つのエンドポイントに影響します。また、レスポンスに時間がかかるエンドポイントや、ネットワーク レイテンシが増加した場合にも影響します。 指定したタイムアウト値を増やすと、ポートの再利用率を下げることができます。タイムアウト値を大きくすると、ポートで長時間接続が維持され、特定の UDP ソケット経由のトラフィックの一時停止を防ぐことができます。 |
30 秒 | ○ |
TCP 確立済み接続のアイドル タイムアウト RFC 5382 REQ-5 |
接続がアイドル状態になるまでの秒数を指定します。この期間が経過すると Private NAT マッピングが削除されます。 TCP 確立済み接続のアイドル タイムアウトは、応答に時間がかかるエンドポイントや、ネットワークのレイテンシが増加した場合に影響します。 TCP 接続を開き、キープアライブ メカニズムを使用せずに接続を長時間開いたままにする場合は、タイムアウト値を増やすことができます。 |
1,200 秒(20 分) | ○ |
TCP 一時接続のアイドル タイムアウト RFC 5382 REQ-5 |
TCP 接続を半開状態で維持できる時間を指定します。この期間が経過すると Private NAT マッピングを削除できます。 外部エンドポイントが指定された時間よりも時間がかかる場合、またはネットワーク レイテンシが増加した場合、TCP 一時接続のアイドル タイムアウトはエンドポイントに影響します。TCP 接続確立時のアイドル タイムアウトとは異なり、TCP 一時接続のアイドル タイムアウトは半開接続にのみ影響します。
|
30 秒 注: このタイムアウトに設定した値に関係なく、Private NAT では、Private NAT 送信元 IP アドレスと送信元ポートのタプルで新しい接続が処理されるようになるまでに最大で 30 秒ほどかかります。 |
はい |
TCP TIME_WAIT タイムアウト RFC 5382 REQ-5 |
接続の有効期限が切れた後に、完全に閉じた TCP 接続を Private NAT マッピングに維持する時間を秒単位で指定します。 TCP TIME_WAIT タイムアウトにより、閉じた TCP 接続に属し、再送信された無効なパケットを内部エンドポイントが受信しないようにすることができます。 タイムアウト値を減らすと、無関係な閉じた接続から再送信されるパケットを受信する可能性がありますが、Private NAT ポートの再利用率を改善できます。 |
120 秒 注: このタイムアウトに設定した値に関係なく、Private NAT では、Private NAT 送信元 IP アドレスと送信元ポートのタプルで新しい接続が処理されるようになるまでに最大で 30 秒ほどかかります。 |
はい |
ICMP のマッピングのアイドル タイムアウト RFC 5508 REQ-2 |
トラフィック フローがない Internet Control Message Protocol(ICMP)の Private NAT マッピングが終了するまでの時間を秒単位で指定します。 ICMP のマッピングのアイドル タイムアウトは、指定した時間よりもエンドポイントが応答するのに時間がかかる場合か、ネットワーク レイテンシが増加した場合に、エンドポイントに影響します。 |
30 秒 | はい |
次のステップ
- Inter-VPC NAT を設定する。
- Cloud NAT プロダクトの相互作用について学習する。
- Cloud NAT アドレスとポートについて学習する。
- Cloud NAT ルールについて学習する。
- 一般的な問題のトラブルシューティングを行う。