Cloud NAT プロダクトの相互作用

このページでは、Cloud NAT と他の Google Cloud プロダクトとの間の重要な相互作用について説明します。

ルートの相互作用

Cloud NAT ゲートウェイは、ネクストホップがデフォルトのインターネット ゲートウェイであるルートのみを使用できます。各 VPC ネットワークはデフォルト ルートで始まり、宛先は 0.0.0.0/0、ネクストホップはデフォルトのインターネット ゲートウェイです。重要な基本背景情報については、ルートの概要をご覧ください。

次の例は、Cloud NAT ゲートウェイが動作しなくなる原因を示します。

  • ネクストホップが他のタイプのカスタム静的ルートのネクストホップに設定されたカスタム静的ルートを作成すると、宛先 IP アドレスがルートの宛先と一致するパケットは、デフォルトのインターネット ゲートウェイではなく、ネクストホップに送信されます。たとえば、NAT、ファイアウォール、プロキシ ソフトウェアを実行する VM インスタンスを使用する場合は、ネクストホップとして VM にトラフィックを転送するカスタム静的ルートを作成する必要があります。ネクストホップ VM には外部 IP アドレスが必要です。したがって、ネクストホップ VM を信頼する VM からのトラフィックも、ネクストホップ VM 自体も、Cloud NAT を使用できません。

  • ネクストホップが Cloud VPN トンネルのカスタム静的ルートを作成した場合、Cloud NAT はそのルートを使用しません。たとえば、宛先 0.0.0.0/0 を指定したカスタムの静的ルートとネクストホップ Cloud VPN トンネルは、デフォルトのインターネット ゲートウェイではなく、そのトンネルにトラフィックを転送します。その結果、Cloud NAT ゲートウェイはそのルートを使用できなくなります。これは、0.0.0.0/1128.0.0.0/1 など、具体的な宛先でも同様です。

  • オンプレミス ルーターが Cloud VPN トンネルまたは Cloud 相互接続のアタッチメント(VLAN)を管理する Cloud Router にカスタムの動的ルートをアドバタイズする場合、Cloud NAT ゲートウェイはそのルートを使用できません。たとえば、オンプレミス ルーターが宛先 0.0.0.0/0 のカスタム動的ルートをアドバタイズする場合、0.0.0.0/0 は Cloud VPN トンネルまたは Cloud Interconnect アタッチメント(VLAN)に転送されます。これは、0.0.0.0/1128.0.0.0/1 など、具体的な宛先でも同様です。

限定公開の Google アクセスの相互作用

Cloud NAT は、選択した Google API とサービスの外部 IP アドレスに送信されたトラフィックに対して NAT を実行しません。Cloud NAT ゲートウェイをプライマリまたはセカンダリのサブネット範囲に適用するように構成すると、Google Cloud によって、サブネット IP アドレス範囲での限定公開の Google アクセスが自動的に有効になります。ゲートウェイがサブネットの範囲に NAT を実施している限り、限定公開の Google アクセスはその範囲に対して有効であり、手動で無効にすることはできません。

Cloud NAT ゲートウェイは、限定公開の Google アクセスの動作を変更しません。詳細については、限定公開の Google アクセスをご覧ください。

共有 VPC の相互作用

共有 VPC を使用すると、1 つの組織内の複数のサービス プロジェクトで、ホスト プロジェクト内の共通の共有 VPC ネットワークを使用できます。共有 VPC ネットワークを使用するサービス プロジェクトで VM に NAT を実施するには、ホスト プロジェクトに Cloud NAT ゲートウェイを作成する必要があります。

VPC ネットワーク ピアリングの相互作用

Cloud NAT ゲートウェイは、単一のリージョンと単一 VPC ネットワーク内のサブネット IP アドレス範囲にと関連付けられています。1 つの VPC ネットワークで作成された Cloud NAT ゲートウェイは、VPC ネットワーク ピアリングで接続された他の VPC ネットワーク内の VM に、NAT を提供できません。ピア ネットワーク内の VM がゲートウェイと同じプロジェクトに存在する場合も同様です。ピアリングされている場合も含む)。ネットワークはゲートウェイと同じリージョンにあります。

GKE の相互作用

Cloud NAT ゲートウェイは、限定公開クラスタのノードと Pod に対して NAT を実行できます。これは VPC ネイティブ クラスタの一種です。クラスタが使用するサブネットのために、少なくとも次のサブネット IP アドレス範囲に適用するように Cloud NAT ゲートウェイを構成する必要があります。

  • サブネットのプライマリ IP アドレス範囲(ノードで使用)
  • サブネット クラスタ内の Pod に使用されるセカンダリ IP アドレス範囲
  • クラスタ内のサービスに使用されるサブネット セカンダリ IP アドレス範囲

限定公開クラスタ全体に NAT を提供する最も簡単な方法は、クラスタのサブネットのすべての IP アドレス範囲に適用するように Cloud NAT ゲートウェイを構成することです。

VPC ネイティブ クラスタでサブネット IP アドレス範囲を使用する方法に関する背景情報については、VPC ネイティブ クラスタの IP 範囲をご覧ください。

Cloud NAT ゲートウェイは、限定公開クラスタに対して NAT を実施するように構成されている場合、各ノード VM に NAT の送信元 IP アドレスと送信元ポートを予約します。Pod IP アドレスは各ノード VM に割り当てられたエイリアス IP 範囲として実装されるため、これらの NAT 送信元アドレスと送信元ポートは Pod で使用できます。

GKE VPC ネイティブ クラスタは、複数の IP アドレス(/32 より小さいネットマスク)を含むエイリアス IP 範囲を各ノードに常に割り振ります。

  • 静的ポートの割り当てが構成されている場合、Cloud NAT のポート予約手順では、ノードあたり 1,024 個以上の送信元ポートが予約されます。VM あたりの最小ポート数に指定された値が 1,024 を超える場合は、その値が使用されます。

  • 動的ポートの割り当てが構成されている場合、VM あたりの最小ポート数に指定された値が、最初にノードごとに割り当てられます。割り当てられるポートの数は、必要に応じて VM あたりの最小ポート数と最大ポート数に指定された値の間で変わります。

Pod IP アドレス範囲と VPC ネイティブ クラスタについては、Pod のサブネット セカンダリ IP アドレス範囲をご覧ください。

Cloud NAT とは独立して、クラスタの IP マスカレード構成を変更していない限り、Pod がインターネットにパケットを送信したときに、GKE は各ノードで実行されているソフトウェアを使用して SNAT を実行します。Pod からの下り(外向き)トラフィックを細かく制御する必要がある場合は、ネットワーク ポリシーを使用できます。

一定の条件のもとでは、Cloud NAT は限定公開以外の VPC ネイティブ クラスタにも役立ちます。限定公開以外のクラスタ内のノードには外部 IP アドレスがあるため、ノードのプライマリ内部 IP アドレスから送信されたパケットは Cloud NAT で処理されません。ただし、次の条件に該当する場合、限定公開クラスタ以外の Pod から送信されたパケットは、Cloud NAT ゲートウェイで処理できます。

  • VPC ネイティブ クラスタの場合、Cloud NAT ゲートウェイがクラスタの Pod ポッドのセカンダリ IP アドレス範囲に適用されます。

  • クラスタの IP マスカレード構成は、Pod からインターネットに送信されるパケットのクラスタ内で SNAT を実行するように構成されていません。

Cloud Load Balancing の相互作用

Google Cloud の外部ロードバランサとヘルスチェック システムは特別なルートを使用して VM と通信します。バックエンド VM は外部 IP アドレスを必要とせず、Cloud NAT ゲートウェイはロードバランサとヘルスチェックの通信を管理しません。詳細については、Cloud Load Balancing の概要ヘルスチェックの概要をご覧ください。

次のステップ