ハイブリッド NAT
Private NAT の一種であるハイブリッド NAT を使用すると、Virtual Private Cloud(VPC)ネットワークとオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークの間でネットワーク アドレス変換(NAT)を実行できます。Google Cloud 以外のネットワークは、Cloud Interconnect または Cloud VPN のような Google Cloud の Network Connectivity プロダクトを使用して、VPC ネットワークに接続する必要があります。
仕様
一般的な Private NAT 仕様に加えて、ハイブリッド NAT には次の仕様があります。
- ハイブリッド NAT を使用すると、通信ネットワークのサブネット IP アドレス範囲が重複している場合でも、VPC ネットワークはオンプレミス ネットワークや他のクラウド プロバイダ ネットワークと通信できます。
type=PRIVATE
の NAT 構成を使用すると、VPC ネットワークの重複のあるサブネットと重複しないサブネットの両方のリソースが、Google Cloud のネットワーク外の重複しないサブネットのリソースに接続できます。 ハイブリッド NAT を有効にするには、Google Cloud 以外のネットワークが動的ルートをアドバタイズして、VPC ネットワークがルートを学習して使用できるようにする必要があります。Cloud Router は、Cloud Interconnect、HA VPN、動的ルーティングが構成された Classic VPN などの Google Cloud の Network Connectivity プロダクトからこれらの動的ルートを学習します。これらの動的ルートの宛先は VPC ネットワーク外の IP アドレス範囲です。
同様に、戻りトラフィックの場合、VPC ネットワークは、Cloud Router を使用して Private NAT サブネット ルートをアドバタイズする必要があります。このサブネット ルートは、接続されたネットワークの既存のサブネットと重複しないようにする必要があります。
ハイブリッド NAT は、VPC ネットワークから発するオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークへのトラフィックに対して NAT を実行します。ネットワークは、Cloud Interconnect または Cloud VPN によって接続されている必要があります。
ハイブリッド NAT は、動的ルーティングが有効になっている場合にのみ、既存の Classic VPN トンネルをサポートします。
一致式
nexthop.is_hybrid
を使用してカスタム NAT ルールを作成する必要があります。NAT ルールは、VPC ネットワーク内のリソースが他のネットワークとの通信に使用できる、目的がPRIVATE_NAT
のサブネット内の NAT IP アドレス範囲を指定します。Hybrid NAT を構成する Cloud Router は、VPC ネットワークと同じリージョンに存在する必要があります。
ハイブリッド NAT を構成する Cloud Router に、他の NAT 構成を含めることはできません。
基本的なハイブリッド NAT の構成とワークフロー
次の図は、基本的なハイブリッド NAT 構成を示しています。
この例では、ハイブリッド NAT が次のように設定されています。
pvt-nat-gw
ゲートウェイは、us-east1
リージョンのsubnet-a
のすべての IP アドレス範囲に適用されるようにvpc-a
で構成されています。- Cloud Router と、オンプレミスまたは他のクラウド プロバイダのルーターは、次のサブネット ルートを交換します。
- Cloud Router は
10.1.2.0/29
を外部ルーターにアドバタイズします。 - 外部ルーターは
192.168.2.0/24
を Cloud Router にアドバタイズします。
- Cloud Router は
pvt-nat-gw
の NAT IP アドレス範囲を使用することで、vpc-a
のsubnet-a
にある仮想マシン(VM)インスタンスは、vpc-a
のsubnet-a
が Google Cloud 以外のネットワーク内の別のサブネットと重複していても、オンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークのsubnet-b
にある VM にトラフィックを送信できます。
ハイブリッド NAT ワークフローの例
上の図では、vpc-a
の subnet-a
内の内部 IP アドレス 192.168.1.2
を持つ vm-a
は、オンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークの subnet-b
内の IP アドレス 192.168.2.2
を持つ vm-b
から更新をダウンロードする必要があります。Cloud Interconnect は、VPC ネットワークをオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークに接続します。Google Cloud 以外のネットワークに、vpc-a
のサブネットと重複する別のサブネット 192.168.1.0/24
が存在するとします。vpc-a
の subnet-a
が Google Cloud 以外のネットワークの subnet-b
と通信するには、vpc-a
で Private NAT ゲートウェイ pvt-nat-gw
を構成する必要があります。次のように指定します。
- 目的が
PRIVATE_NAT
の Private NAT サブネットを指定します(例:10.1.2.0/29
)。Private NAT ゲートウェイを構成する前に、このサブネットを作成します。このサブネットが、接続されたどのネットワークでも既存のサブネットと重複しないようにしてください。 match='nexthop.is_hybrid'
で NAT ルールを作成します。subnet-a
のすべての IP アドレス範囲に適用するように Private NAT ゲートウェイを構成します。
ハイブリッド 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 アドレス:
次のステップ
- ハイブリッド NAT を設定する。
- Cloud NAT プロダクトの相互作用について学習する。
- Cloud NAT アドレスとポートについて学ぶ。
- Cloud NAT ルールについて学習する。
- 一般的な問題のトラブルシューティングを行う。