ハイブリッド NAT

Private NAT サービスであるハイブリッド NAT を使用すると、Virtual Private Cloud(VPC)ネットワークとオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークの間で IP アドレスのネットワーク アドレス変換(NAT)を実行できます。これらのネットワークは、Cloud VPN などの Google Cloud のエンタープライズ ハイブリッド接続プロダクトを使用して VPC ネットワークに接続する必要があります。

仕様

一般的な Private NAT 仕様に加えて、ハイブリッド NAT には次の仕様を検討してください。

  • ハイブリッド NAT を使用すると、通信ネットワークのサブネット IP アドレス範囲が重複していても、VPC ネットワークがオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークと通信できます。type=PRIVATE の NAT 構成を使用すると、VPC ネットワーク(重複するサブネットと重複しないサブネットの両方)のリソースは、オンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークの重複しないサブネットのリソースのみに接続できます。
  • ハイブリッド NAT を有効にするには、オンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークが動的ルートをアドバタイズして、VPC ネットワークがルートを学習して使用できるようにする必要があります。Cloud Router は、動的ルーティングが構成された HA VPN または Classic VPN などの Google Cloud のハイブリッド接続性ソリューションからこれらの動的ルートを学習します。これらの動的ルートの宛先は、VPC ネットワークの外部にある IP アドレス範囲です。

    同様に、戻りトラフィックの場合、VPC ネットワークは、Cloud Router を使用して Private NAT サブネット ルートをアドバタイズする必要があります。

  • ハイブリッド NAT は、VPC ネットワークから発するオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークへのトラフィックに対して NAT を実行します。ネットワークは、動的ルート上で Cloud VPN によって接続する必要があります。

  • ハイブリッド NAT では、動的ルーティングが有効になっている場合にのみ、既存の Classic VPN トンネルがサポートされます。

  • 一致式 nexthop.is_hybrid を使用してカスタム NAT ルールを作成する必要があります。NAT ルールは、VPC ネットワーク内のリソースが他のネットワークとの通信に使用できる、目的が PRIVATE_NAT のサブネット内の NAT IP アドレス範囲を指定します。

  • ハイブリッド NAT は、us-central1us-east4 を除くすべての Google Cloud リージョンでサポートされています。

  • Hybrid NAT を構成する Cloud Router は、VPC ネットワークと同じリージョンに存在する必要があります。

  • ハイブリッド NAT を構成する Cloud Router に、他の NAT 構成を含めることはできません。

  • Cloud Interconnect アタッチメントが存在する VPC ネットワークでは Hybrid NAT を構成しないでください。

基本的な Hybrid NAT の構成とワークフロー

次の図は、基本的な Hybrid NAT の構成を示しています。

ハイブリッド NAT 変換の例。
ハイブリッド NAT 変換の例(クリックして拡大)。

この例では、Hybrid NAT が次のように設定されています。

  • pvt-nat-gw ゲートウェイは、us-east1 リージョンの subnet-a のすべての IP アドレス範囲に適用されるように vpc-a で構成されています。
  • pvt-nat-gw の NAT IP アドレス範囲を使用することにより、vpc-asubnet-a にある仮想マシン(VM)インスタンスが、vpc-asubnet-a がオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワーク内の別のサブネットと重複している場合でも、オンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークの subnet-b にある VM にトラフィックを送信できます。

Hybrid NAT ワークフローの例

上の図では、vpc-asubnet-a 内の内部 IP アドレス 192.168.1.2 を持つ vm-a は、オンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークの subnet-b 内の IP アドレス 192.168.2.2 を持つ vm-b から更新をダウンロードする必要があります。Cloud VPN は、VPC ネットワークをオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークに接続します。オンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークに、vpc-a のサブネットと重複する別のサブネット 192.168.1.0/24 が含まれているとします。vpc-asubnet-a がオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワークの subnet-b と通信するには、vpc-a で次のように Private NAT ゲートウェイ pvt-nat-gw を構成する必要があります。

  • Private NAT サブネット: Private NAT ゲートウェイを構成する前に、サブネット IP アドレス範囲を 10.1.2.0/29 で、目的を PRIVATE_NAT にして、このサブネットを作成します。このサブネットが、接続されているネットワーク内の既存のサブネットと重複していないことを確認します。
  • match='nexthop.is_hybrid' の NAT ルール。
  • subnet-a のすべてのアドレス範囲の 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 にパケットを送信すると、次のようになります。

  1. VM が次の属性のリクエスト パケットを送信します。

    • 送信元 IP アドレス: 192.168.1.2、VM の内部 IP アドレス
    • 送信元ポート: 24000、VM のオペレーティング システムによって選択されたエフェメラル送信元ポート
    • 宛先アドレス: 192.168.2.2、更新サーバーの IP アドレス
    • 宛先ポート: 80、更新サーバーへの HTTP トラフィックの宛先ポート
    • プロトコル: TCP
  2. 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、変更なし
  3. 更新サーバーは、次の属性の pvt-nat-gw ゲートウェイに到着するレスポンス パケットを送信します。

    • 送信元 IP アドレス: 192.168.2.2、更新サーバーの内部 IP アドレス
    • 送信元ポート: 80、更新サーバーからの HTTP レスポンス
    • 宛先アドレス: 10.1.2.2、リクエスト パケットの元の NAT 送信元 IP アドレスと一致
    • 宛先ポート: 34022、リクエスト パケットの送信元ポートと一致
    • プロトコル: TCP、変更なし
  4. pvt-nat-gw ゲートウェイは、レスポンス パケットに宛先ネットワーク アドレス変換(DNAT)を実行し、パケットが次の属性を使用して更新をリクエストした VM に配信されるように、レスポンス パケットの宛先アドレスと宛先ポートを書き換えます。

    • 送信元 IP アドレス: 192.168.2.2、変更なし
    • 送信元ポート: 80、変更なし
    • 宛先アドレス: 192.168.1.2、VM の内部 IP アドレス
    • 宛先ポート: 24000、リクエスト パケットの元のエフェメラル送信元ポートと一致
    • プロトコル: TCP、変更なし

次のステップ