Cloud NAT の使用

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

前提条件

Cloud NAT を設定する前に、次の手順を行う必要があります。

IAM 権限を取得する

roles/compute.networkAdmin ロールにより、Cloud Router での NAT ゲートウェイの作成、NAT IP アドレスの予約と割り当て、トラフィックが NAT ゲートウェイによるネットワーク アドレス変換を使用する必要があるサブネットワーク(サブネット)の指定を行う権限を取得できます。

Google Cloud の設定

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

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

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

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

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

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

  4. Cloud SDK をインストールして初期化します。

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

NAT の作成

シンプルな構成を作成する

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

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

ゲートウェイのエンドポイントに依存しないマッピングを有効または無効にできます。デフォルトでは有効になっています。gcloud コマンドでこれを無効にするには、--no-enable-endpoint-independent-mapping を指定します。

コンソール

  1. Google Cloud Console で、[Cloud NAT] ページに移動します。

    Cloud NAT ページに移動

  2. [開始] または [NAT ゲートウェイを作成] をクリックします。

  3. [ゲートウェイ名] を入力します。

  4. [VPC ネットワーク] を選択します。

  5. NAT ゲートウェイの [リージョン] を設定します。

  6. リージョンの Cloud Router を選択または作成します。

  7. [ロギング、最小ポート、タイムアウト] をクリックして対象セクションを開きます。

  8. [Stackdriver Logging] で [変換とエラー] を選択します。これにより、すべてのログが Cloud Logging に送信されます。

  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_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前

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

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

Console

  1. Cloud Console で、[Cloud NAT] ページに移動します。

    Cloud NAT ページに移動

  2. [開始] または [NAT ゲートウェイを作成] をクリックします。

  3. [ゲートウェイ名] を入力します。

  4. [VPC ネットワーク] を選択します。

  5. NAT ゲートウェイの [リージョン] を設定します。

  6. リージョンの Cloud Router を選択または作成します。

  7. [NAT IP アドレス] を [手動] に設定します。

  8. NAT に使用する予約された静的外部 IP アドレスを選択または作成します。

  9. 追加の IP アドレスを指定する場合は、[IP アドレスの追加] をクリックし、予約した静的外部 IP アドレスを選択または作成します。

  10. [作成] をクリックします。

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --nat-all-subnet-ip-ranges \
    --nat-external-ip-pool=IP_ADDRESS1,IP_ADDRESS2

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

  • NAT_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前
  • IP_ADDRESS1: NAT に使用する静的外部 IP アドレス。
  • IP_ADDRESS2: NAT に使用する別の静的外部 IP アドレス

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

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

Console

  1. Cloud Console で、[Cloud NAT] ページに移動します。

    Cloud NAT ページに移動

  2. [開始] または [NAT ゲートウェイを作成] をクリックします。

  3. [ゲートウェイ名] を入力します。

  4. [VPC ネットワーク] を選択します。

  5. NAT ゲートウェイの [リージョン] を設定します。

  6. リージョンの Cloud Router を選択または作成します。

  7. [NAT マッピング] で、[ソース] を [カスタム] に設定します。

  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=SUBNETS

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

  • NAT_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前
  • SUBNETS: サブネットのカンマ区切りのリスト

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

Console

  1. 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_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前

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

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

Console

  1. 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=SUBNETS \
    --udp-mapping-idle-timeout=60s \
    --icmp-mapping-idle-timeout=60s \
    --tcp-established-connection-idle-timeout=60s \
    --tcp-transitory-connection-idle-timeout=60s

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

  • NAT_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前
  • SUBNETS: サブネットのカンマ区切りのリスト

NAT の更新

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

Console

  1. Google Cloud Console で、[Cloud NAT] ページに移動します。

    Cloud NAT ページに移動

  2. NAT ゲートウェイをクリックします。

  3. [編集] をクリックします。

  4. [NAT マッピング] で、[ソース] を [カスタム] に設定します。

  5. サブネットを選択します。

  6. [IP 範囲] のプルダウン リストで、含めるサブネット IP 範囲を選択します。

  7. 追加の範囲を指定する場合は、[サブネットと IP 範囲の追加] をクリックします。

  8. [NAT IP アドレス] プルダウン リストをクリックし、[自動] または [手動] を選択します。

  9. [手動] を選択した場合は、外部 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=SUBNETS:range1

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

  • NAT_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前
  • IP_ADDRESS2: 手動外部 IP アドレス
  • IP_ADDRESS3: 別の手動外部 IP アドレス
  • SUBNETS: サブネットのカンマ区切りのリスト

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

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

Console

  1. Cloud Console で、[Cloud NAT] ページに移動します。

    Cloud NAT ページに移動

  2. NAT ゲートウェイをクリックします。

  3. [編集] をクリックします。

  4. [NAT IP アドレス] プルダウン リストをクリックし、[自動] または [手動] を選択します。

  5. [手動] を選択した場合は、外部 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_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前
  • IP_ADDRESS2: 手動外部 IP アドレス
  • IP_ADDRESS3: 別の手動外部 IP アドレス

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

手動で構成した IP アドレスを削除する前に、そのアドレスをドレインすることで、既存の接続の中断を防ぐことができます。IP アドレスをドレインすると、既存の接続がすべて期限切れになるまで続行できます。ログを表示して、既存の接続のステータスを確認できます。

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

NAT 構成には少なくとも 1 つの有効なアドレスが必要です。つまり、構成内のすべての IP アドレスをドレインすることはできません。

NAT IP アドレスの状態を確認するには、NAT ステータスを表示します。

Console

  1. Cloud Console で、[Cloud NAT] ページに移動します。

    Cloud NAT ページに移動

  2. NAT ゲートウェイをクリックします。

  3. [編集] をクリックします。

  4. [NAT IP アドレス] で、IP アドレスの横にある [IP ドレイン] の値を [オン] に設定します。

  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_ADDRESS2: IP_ADDRESS2 をドレインプールへ追加します。

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

  • NAT_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前
  • IP_ADDRESS3: IP アドレス
  • IP_ADDRESS2: 別の IP アドレス

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

Console

  1. 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_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前

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

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

Console

  1. 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_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前

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

Console

  1. 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_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前

エンドポイント マッピングの設定

ゲートウェイのエンドポイントに依存しないマッピングを有効または無効にできます。デフォルトでは有効になっています。

コンソール

代わりに、gcloud コマンドを使用してください。

gcloud

既存のゲートウェイの更新

gcloud alpha compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    [--enable-endpoint-independent-mapping | --no-enable-endpoint-independent-mapping]

以下を置き換えます。

  • NAT_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前

ロギングを構成する

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

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 構成、IP:port-ranges、ステータスを表示する

Console

  1. Google Cloud Console で、[Cloud NAT] ページに移動します。

    Cloud NAT ページに移動

  2. NAT ゲートウェイの詳細、マッピング情報、構成の詳細を表示するには、NAT ゲートウェイの名前をクリックします。

  3. NAT ステータスを表示するには、NAT ゲートウェイの [ステータス] 列を調べます。

gcloud

gcloud compute routers nats describe NAT_CONFIG --router=NAT_ROUTER

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

  • NAT_CONFIG: NAT 構成の名前
  • NAT_ROUTER: Cloud Router の名前
gcloud compute routers get-nat-mapping-info

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

gcloud compute routers get-status

割り当てと上限

特定の割り当てまたは上限はリソースごとに計算されます。割り当てと上限は、プロジェクトごと、ネットワークごと、リージョンごと、またはその他のリソースごとに適用されます。詳細については、割り当てページをご覧ください。

設定例

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

次のステップ