トラブルシューティング

このガイドは、Cloud NAT の一般的な問題の解決に役立ちます。

一般的な問題

Cloud NAT なしで VM が予期せずにインターネットに接続することがある

Cloud NAT を使用せずに仮想マシン(VM)インスタンスまたはコンテナ インスタンスがインターネットに接続可能で、このような接続を行いたくない場合は、次の問題を確認してください。

  • VM のネットワーク インターフェースに外部 IP アドレスがあるかどうかを確認します。ネットワーク インターフェースに外部 IP アドレスが割り当てられている場合、Google Cloud は、インターフェースのプライマリ内部 IP アドレスに一致するパケットに 1 対 1 の NAT を自動的に実行します。詳細については、Cloud NAT の仕様をご覧ください。

    VM に外部 IP アドレスがあるかどうかを判断するには、既存のインスタンスに対する外部 IP アドレスの変更または割り当てをご覧ください。

  • Google Kubernetes Engine(GKE)クラスタが限定公開クラスタであることを確認します。非限定公開クラスタの各ノード VM には外部 IP アドレスがあるため、各ノードは Virtual Private Cloud(VPC)ネットワーク内のルートを使用できます。このネクストホップはデフォルト インターネット ゲートウェイで、Cloud NAT に依存しません。非限定公開クラスタと Cloud NAT ゲートウェイとのやり取りなどの詳細については、GKE の相互作用をご覧ください。

  • VPC ネットワークのルートを一覧表示して、デフォルトのインターネット ゲートウェイとは異なるネクストホップ経由でインターネット接続を提供できるルートを探します。次のような例が挙げられます。

    • ネクストホップが VM、内部 TCP / UDP ロードバランサ、または Cloud VPN トンネルであるカスタム静的ルートは、インターネット接続を間接的に提供する場合があります。たとえば、内部 TCP / UDP ロードバランサのネクストホップ VM またはバックエンド VM 自体が外部 IP アドレスを持つ場合や、Cloud VPN トンネルがインターネット アクセスを提供するネットワークに接続する場合です。

    • VPC ネットワーク内の Cloud Router によってオンプレミス ネットワークから学習されたカスタム動的ルートは、インターネット アクセスを提供するネットワークに接続する場合があります。

  • VPC ネットワーク内の他のカスタムルートの優先度は、ネクストホップがデフォルトのインターネット ゲートウェイであるルートより優先されます。Google Cloud によるルートの評価方法については、適用範囲と順序をご覧ください。

ログが生成されない

一部のログが除外される

  • NAT ロギングが有効であり、保持対象のログがログフィルタで除外されていないことを確認します。ログフィルタを消去すると、除外対象をなくすことができます。

  • Cloud NAT により、すべてのイベントが記録されるわけではありません。下り(外向き)トラフィックが多い間は、NAT のロギングは VM のマシンタイプに応じて抑制されます。変換またはエラーログが破棄される可能性があり、抑制中に何が省略されるかは特定できません。

追加の IP アドレスを割り振る必要がある

インスタンスがインターネットに到達できず、手動で IP アドレスを割り振る場合は、IP アドレスの追加が必要になる場合があります。

Cloud Console に「You need to allocate at least 'X' more IP addresses to allow all instances to access the internet」というメッセージが表示された場合は、さらに IP アドレスを割り振る必要があります。詳細については、NAT IP アドレスをご覧ください。

この問題をモニタリングするには、メッセージ nat_allocation_failedアラート ポリシーを定義します。

よくある質問

Cloud NAT のリージョン制限

複数のリージョンで同じ Cloud NAT ゲートウェイを使用できますか?

いいえ。Cloud NAT ゲートウェイは単一のリージョン、VPC ネットワーク、Cloud Router に関連付けられるリージョン リソースです。

他のリージョンや VPC ネットワークでは、別の Cloud NAT ゲートウェイを作成できます。特定のリージョンと VPC ネットワークで複数のゲートウェイを作成できるかどうかを確認するには、サブネット IP アドレス範囲の適用範囲をご覧ください。

Cloud NAT ゲートウェイが使用する外部 NAT IP アドレスはグローバルまたはリージョナルのどちらですか?

Cloud NAT ゲートウェイは、NAT IP アドレスとしてリージョン外部 IP アドレスを使用します。これはリージョン リソースですが、ルーティングで利用可能です。NAT IP アドレスのさまざまな割り振り、割り当て方法については、NAT IP アドレスをご覧ください。

Cloud NAT を使用できる場合と、使用できない場合について

GKE ノード VM などの外部 IP アドレスを持つインスタンスに Cloud NAT は適用されますか?

通常は適用されません。VM のネットワーク インターフェースに外部 IP アドレスが割り振られている場合、Google Cloud は Cloud NAT を使用せず、ネットワーク インターフェースのプライマリ内部 IP アドレスから送信されたパケットに対して 1 対 1 の NAT を実行します。ただし、同じネットワーク インターフェースのエイリアス IP アドレス範囲から送信されたパケットに対しては、Cloud NAT からが NAT サービスを提供できます。詳細については、Cloud NAT の仕様GKE の相互作用をご覧ください。

VPC ネットワークの VM 間の通信に Cloud NAT を使用できますか?

いいえ。Cloud NAT はインターネットのみに接続できるように設計されています。

Cloud NAT を使用して VPC ネットワークを別のネットワークに接続し、IP アドレスの重複を回避できますか?

いいえ。ネクストホップがデフォルトのインターネット ゲートウェイではないカスタムルートに Cloud NAT を適用できません。たとえば、宛先がルーティング可能な IP アドレスであっても、ネクストホップの Cloud VPN トンネルに送信されるトラフィックに Cloud NAT を適用することはできません。

送信元と宛先が同じ VPC ネットワーク内にある場合でも、Cloud NAT を使用して、ネットワーク インターフェースに外部 IP アドレスのない送信元 VM から宛先の VM または外部 IP アドレスを持つロードバランサにトラフィックを送信できますか?

はい。トラフィックは、VPC ネットワークからデフォルトのインターネット ゲートウェイを経由して同じネットワーク内の宛先に届きます。

送信元の VM が宛先にパケットを送信すると、Cloud NAT は送信元 NAT(SNAT)を実行してから、2 番目のインスタンスにパケットを配信します。2 番目のインスタンスから最初のインスタンスへのレスポンスに対して、Cloud NAT は、宛先 NAT(DNAT)を実行します。詳細については、手順については、NAT フローをご覧ください。

未承諾の受信接続の未サポートについて

Cloud NAT で、外部 IP アドレスのないインスタンスへの受信接続(SSH など)は許可されていますか?

いいえ、Cloud NAT は未承諾の受信接続をサポートしていません。詳細については、Cloud NAT の仕様をご覧ください。

外部 IP アドレスを持たない VM に接続する必要がある場合は、外部 IP アドレスを持たないインスタンスに接続するをご覧ください。たとえば、Cloud NAT の Compute Engine の設定で、Identity-Aware Proxy を使用して外部 IP アドレスなしで VM に接続します。

Cloud NAT とポート

VM のポート数が固定(デフォルトで 64)されているのはなぜですか?

Cloud NAT ゲートウェイが VM に NAT を提供するときに、ポート予約手順に従って送信元アドレスと送信元ポートのタプルを予約するためです。

詳細については、ポート予約の例をご覧ください。

VM に予約されているポートの最小数を変更できますか?

はい。新しい Cloud NAT ゲートウェイを作成するとき、または後で編集することにより、VM ごとの最小ポート数を変更できます。Cloud NAT ゲートウェイは、ポート予約手順に従って送信元アドレスと送信元ポートのタプルを予約します。

ポートの最小数を減らす場合については、減少についての詳細は、次の質問をご覧ください。

Cloud NAT ゲートウェイを作成した後、VM あたりの最小ポート数を減らすことはできますか?

はい。ただし、ポートの最小数を減らすと、ポート予約手順で予約される VM あたりのポート数が少なくなります。この場合、既存の TCP 接続はリセットされる可能性があり、リセットされた場合は再確立する必要があります。

Cloud NAT とその他の Google サービス

Cloud NAT で Google API やサービスへのアクセスを有効にできますか?

サブネットのプライマリ IP 範囲に Cloud NAT を有効にすると、Google Cloud は自動的に限定公開の Google アクセスを有効にします。詳細については、限定公開の Google アクセスの相互作用をご覧ください。

次のステップ