Cloud NAT の使用

はじめに

このページでは、Cloud NAT を構成する方法を説明します。Cloud NAT を設定する前に、Cloud NAT の概要をご覧ください。

要件

IAM 権限

  • roles/compute.networkAdmin のロールでは、Cloud Router で NAT ゲートウェイを作成し、NAT IP の予約または割り当てを行い、トラフィックが NAT ゲートウェイによる NAT 変換を使用するサブネットを指定できます。

Google Cloud の設定

始める前に、Google Cloud で次の項目を設定します。

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Cloud Console のプロジェクト セレクタページで、Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Cloud SDK をインストールして初期化します。
  gcloud config set project PROJECT_ID

すでに設定されているプロジェクト ID を表示することもできます。

  gcloud config list --format='text(core.project)'

設定例

これらの例は、Google Cloud で Cloud NAT をテストする方法を示しています。

Compute Engine の設定例

Compute Engine の設定例をご覧ください。

GKE の設定例

GKE の設定例をご覧ください。

使用シナリオとサンプル コマンド

NAT の作成

シンプルな構成

この構成では、あるリージョンに NAT サービスを提供するために必要な外部 IP アドレスが自動的に割り当てられます。そのリージョンのどのサブネットにも外部 IP アドレスを持たない VM インスタンスは、NAT 経由でインターネットにアクセスできます。また、すべてのログタイプに対してロギングをオンにします。

自動割り当てを使用すると、Google Cloud はプロジェクト内の IP アドレスを自動的に予約します。これらのアドレスは、プロジェクトの静的 IP アドレス割り当てを減らします。

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. [開始] または [NAT ゲートウェイを作成] をクリックします
  3. [ゲートウェイ名] を入力します。
  4. [VPC ネットワーク] を選択します。
  5. NAT ゲートウェイの [リージョン] を設定します。
  6. リージョンの [Cloud Router] を選択または作成します。
  7. [ロギング、最小ポート、タイムアウト] をクリックしてそのセクションを開きます。
  8. [Stackdriver ロギング] で、以下を選択します。
    • Logging for translation info and errors - すべてのログを Google Cloud のオペレーション スイートに送信します。
  9. [作成] をクリック

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --enable-logging

NAT の IP アドレスを指定する

各 IP アドレスは、予約済みの静的 IP アドレス リソースの名前です。

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. [開始] または [NAT ゲートウェイを作成] をクリックします
  3. [ゲートウェイ名] を入力します。
  4. [VPC ネットワーク] を選択します。
  5. NAT ゲートウェイの [リージョン] を設定します。
  6. リージョンの [Cloud Router] を選択または作成します。
  7. [NAT IP アドレス] を Manual に設定します。
  8. NAT に使用する予約された静的外部 IP アドレスを選択または作成します。
  9. 追加の IP アドレスを指定する場合は、[IP アドレスの追加] をクリックし、追加する予約された静的外部 IP アドレスを選択または作成します。
  10. [作成] をクリック

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --nat-external-ip-pool=ip-address1,ip-address2

NAT のサブネット範囲を指定する

デフォルトでは、特定の VPC ネットワークのリージョン内で、すべてのサブネットのすべてのプライマリ IP 範囲とセカンダリ IP 範囲に対して NAT が機能します。NAT を使用できるサブネットのプライマリ範囲とセカンダリ範囲を制限できます。

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. [開始] または [NAT ゲートウェイを作成] をクリックします
  3. [ゲートウェイ名] を入力します。
  4. [VPC ネットワーク] を選択します。
  5. NAT ゲートウェイの [リージョン] を設定します。
  6. リージョンの [Cloud Router] を選択または作成します。
  7. [NAT マッピング] の下に、[ソース] を Custom で設定します。
  8. サブネットを選択します。
  9. [IP 範囲] のプルダウン リストで、含めるサブネット IP 範囲を選択します。
  10. [OK] をクリックします。
  11. 追加の範囲を指定する場合は、[サブネットと IP 範囲の追加] をクリックします。
  12. [作成] をクリック

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --auto-allocate-nat-external-ips \
    --nat-custom-subnet-ip-ranges=SUBNET_1,SUBNET_3

NAT の VM ごとに異なるデフォルトの最小ポート数を指定する

詳細については、NAT ポートと接続数をご覧ください。

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. [開始] または [NAT ゲートウェイを作成] をクリックします
  3. [ゲートウェイ名] を入力します。
  4. [VPC ネットワーク] を選択します。
  5. NAT ゲートウェイの [リージョン] を設定します。
  6. リージョンの [Cloud Router] を選択または作成します。
  7. [ロギング、最小ポート数、タイムアウト] をクリックします。
  8. [VM インスタンスあたりの最小ポート数] に異なる値に設定してください
  9. [作成] をクリック

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --auto-allocate-nat-external-ips \
    --min-ports-per-vm=128

NAT に異なるタイムアウトを指定する

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. [開始] または [NAT ゲートウェイを作成] をクリックします
  3. [ゲートウェイ名] を入力します。
  4. [VPC ネットワーク] を選択します。
  5. NAT ゲートウェイの [リージョン] を設定します。
  6. リージョンの [Cloud Router] を選択または作成します。
  7. [ロギング、最小ポート数、タイムアウト] をクリックします。
  8. 必要に応じてタイムアウトを変更します。
  9. [作成] をクリック

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --auto-allocate-nat-external-ips \
    --nat-custom-subnet-ip-ranges=SUBNET_1,SUBNET_3 \
    --udp-mapping-idle-timeout=60s \
    --icmp-mapping-idle-timeout=60s \
    --tcp-established-connection-idle-timeout=60s \
    --tcp-transitory-connection-idle-timeout=60s

NAT の更新

NAT に関連付けられたサブネットワークと IP アドレスのリソースを変更する

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. NAT ゲートウェイをクリックします。
  3. [編集] をクリックします。
  4. [NAT マッピング] の下に、[ソース] を Custom で設定します。
  5. サブネットを選択します。
  6. [IP 範囲] のプルダウン リストで、含めるサブネット IP 範囲を選択します。
  7. 追加の範囲を指定する場合は、[サブネットと IP 範囲の追加] をクリックします。
  8. [NAT IP アドレス] のプルダウン リストをクリックし、Automatic または Manual を選択します。
  9. Manual を選択した場合は、外部IP アドレスを指定します。
  10. 高可用性のために手動 IP アドレスを使用する場合は、[IP アドレスの追加] をクリックし、2 つ目のアドレスを追加します。
  11. [保存] をクリックします。

gcloud

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --nat-external-ip-pool=ip-address2,ip-address3 \
    --nat-custom-subnet-ip-ranges=SUBNET_3,SUBNET_3,SUBNET_3:range1

NAT に関連付けられた外部 IP アドレスを変更する

特定のゲートウェイの外部 IP アドレスのリストを変更できます。この場合、GCP は古いアドレスを削除し、新しいアドレスを追加します。古い IP アドレスの既存の接続は直ちに終了します。既存の接続を継続し、それらの IP アドレスでの新しい接続を禁止するには、NAT に関連付けられた外部 IP アドレスを排出するをご覧ください。

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. NAT ゲートウェイをクリックします。
  3. [編集] をクリックします。
  4. [NAT IP アドレス] のプルダウン リストをクリックし、Automatic または Manual を選択します。
  5. Manual を選択した場合は、外部IP アドレスを指定します。
  6. 高可用性のために、[IP アドレスの追加] をクリックし、2 つ目のアドレスを追加します。
  7. [保存] をクリックします。

gcloud

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --nat-external-ip-pool=ip-address2,ip-address3

NAT に関連付けられた外部 IP アドレスを排出する

手動で構成した IP アドレスを削除する前に、既存の接続が中断されないように排出できます。IP アドレスが排出された場合、すべての既存の接続は、その接続が自然に期限切れになるまで継続されます。ログを表示して、既存の接続のステータスを確認できます。

排出された IP アドレスでは、新しい接続は許可されません。ただし、その IP アドレスは NAT 構成に関連付けられたままになります。

NAT 構成に少なくとも 1 つのアクティブなアドレスが必要です。つまり、構成内のすべての IP アドレスを排出することはできません。

NAT ステータスを表示すると、NAT IP アドレスの状態を確認できます。

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. [NAT ゲートウェイ] をクリックします。
  3. [編集] をクリックします。
  4. [NAT IP アドレス] の下に、IP アドレスの横にある [IP の排出] を On に設定します。
  5. [保存] をクリックします。

gcloud

アドレスを排出するには、同じコマンドでアドレスをアクティブ プールから排出プールに移動する必要があります。1 つのコマンドで排出プールに追加せずにアクティブ プールから削除すると、IP アドレスはサービスから削除され、既存の接続はすぐに終了します。

IP アドレスを排出プールからアクティブ プールに移動すると、IP アドレスの排出は取り消されます。両方のプールから NAT IP アドレスを削除すると、NAT 構成から IP アドレスの接続が切断されます。

このコマンドでは、NAT 設定の他の項目は変更されません。

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --nat-external-ip-pool=ip-address3 \
    --nat-external-drain-ip-pool=ip-address2

ここで

  • --nat-external-ip-pool=ip-address3 でアクティブ プールを更新して、ip-address2 を除外します。
  • --nat-external-drain-ip-pool=ip-address2ip-address2 を排出プールへ追加します。

NAT に関連付けられた VM ごとに割り当てられるデフォルトの最小ポート数を変更する

詳細については、NAT ポートと接続数をご覧ください。

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. NAT ゲートウェイをクリックします。
  3. [編集] をクリックします。
  4. [ロギング、最小ポート数、タイムアウト] をクリックします。
  5. VM インスタンスあたりの最小ポート数項目を変更します。
  6. [保存] をクリックします。

gcloud

このコマンドでは、NAT 設定の他の項目は変更されません。

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --min-ports-per-vm=128

NAT に関連付けられた接続タイムアウトを変更する

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. NAT ゲートウェイをクリックします。
  3. [編集] をクリックします。
  4. [ロギング、最小ポート数、タイムアウト] をクリックします。
  5. タイムアウトを変更したい値に修正します。
  6. [保存] をクリックします。

gcloud

このコマンドでは、NAT 設定の他の項目は変更されません。

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --udp-mapping-idle-timeout=60s \
    --icmp-mapping-idle-timeout=60s \
    --tcp-established-connection-idle-timeout=60s \
    --tcp-transitory-connection-idle-timeout=60s

関連付けられた NAT の接続タイムアウトをデフォルト値にリセットする

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. NAT ゲートウェイをクリックします。
  3. [編集] をクリックします。
  4. [ロギング、最小ポート数、タイムアウト] をクリックします。
  5. リセットするユーザー構成値を削除します。
  6. [保存] をクリックします。

削除された値は、デフォルト値にリセットされます。

gcloud

このコマンドでは、NAT 設定の他の項目は変更されません。

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --clear-udp-mapping-idle-timeout \
    --clear-icmp-mapping-idle-timeout \
    --clear-tcp-established-connection-idle-timeout \
    --clear-tcp-transitory-connection-idle-timeout

ロギングを追加、変更、削除する

既存のゲートウェイのロギングを有効、変更、削除する方法については、ロギングの構成をご覧ください。

NAT の削除

この操作で、Cloud Router から NAT 構成が削除されます。ルーター自体は削除されません。

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. 削除するゲートウェイの構成の横にあるチェックボックスをオンにします。
  3. [削除] をクリックします。

gcloud

gcloud compute routers nats delete nat-config --router=nat-router

ここで、次のように置き換えます。

  • nat-config は、NAT 設定の名前に置き換えます。
  • nat-router は、Cloud Router の名前に置き換えます。

NAT 情報を表示する

NAT 設定を表示する

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. NAT ゲートウェイをクリックします。

gcloud

gcloud compute routers nats describe nat-config --router=nat-router

NAT IP:port-ranges を表示する

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. NAT ゲートウェイをクリックします。

gcloud

gcloud compute routers get-nat-mapping-info

NAT ステータスを表示する

Console

  1. Google Cloud Console の [Cloud NAT] ページに移動します。
    [Cloud NAT] ページに移動
  2. NAT ゲートウェイのステータスの列を調べます。
  3. ゲートウェイの名前をクリックすると、構成の詳細が表示されます。

gcloud

既存の routers get-status コマンドで NAT ステータスが表示されます。

gcloud compute routers get-status

割り当てと上限

割り当てページをご覧ください。

次のステップ