このページでは、Cloud NAT を構成する方法を説明します。Cloud NAT を設定する前に、Cloud NAT の概要をご覧ください。
前提条件
Cloud NAT を設定する前に、次の手順を行う必要があります。
IAM 権限を取得する
roles/compute.networkAdmin ロールにより、Cloud Router での NAT ゲートウェイの作成、NAT IP アドレスの予約と割り当て、トラフィックが NAT ゲートウェイによるネットワーク アドレス変換を使用する必要があるサブネットワーク(サブネット)の指定を行う権限を取得できます。
Google Cloud の設定
始める前に、Google Cloud で次の項目を設定します。
- Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する。
- Cloud SDK をインストールして初期化します。
使用シナリオとサンプル コマンド
NAT の作成
シンプルな構成を作成する
この構成では、あるリージョンに NAT サービスを提供するために必要な外部 IP アドレスが自動的に割り振られます。そのリージョンのどのサブネットにも外部 IP アドレスを持たない VM インスタンスは、NAT 経由でインターネットにアクセスできます。また、すべてのログタイプに対してロギングをオンにします。
自動割り振りを使用すると、Google Cloud はプロジェクト内の IP アドレスを自動的に予約します。これらのアドレスは、プロジェクトの静的 IP アドレス割り振りを減らします。
ゲートウェイのエンドポイントに依存しないマッピングを有効または無効にできます。設定については、エンドポイント マッピングの設定をご覧ください。
コンソール
Google Cloud Console で、[Cloud NAT] ページに移動します。
[開始] または [NAT ゲートウェイを作成] をクリックします。
[ゲートウェイ名] を入力します。
[VPC ネットワーク] を選択します。
NAT ゲートウェイの [リージョン] を設定します。
リージョンの Cloud Router を選択または作成します。
[ロギング、最小ポート、タイムアウト] をクリックして対象セクションを開きます。
[Stackdriver Logging] で [変換とエラー] を選択します。これにより、すべてのログが Cloud Logging に送信されます。
[作成] をクリックします。
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 アドレス リソースの名前です。
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
[開始] または [NAT ゲートウェイを作成] をクリックします。
[ゲートウェイ名] を入力します。
[VPC ネットワーク] を選択します。
NAT ゲートウェイの [リージョン] を設定します。
リージョンの Cloud Router を選択または作成します。
[NAT IP アドレス] を [手動] に設定します。
NAT に使用する予約された静的外部 IP アドレスを選択または作成します。
追加の IP アドレスを指定する場合は、[IP アドレスの追加] をクリックし、予約した静的外部 IP アドレスを選択または作成します。
[作成] をクリックします。
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 を使用できるプライマリおよびセカンダリ サブネット範囲を制限できます。
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
[開始] または [NAT ゲートウェイを作成] をクリックします。
[ゲートウェイ名] を入力します。
[VPC ネットワーク] を選択します。
NAT ゲートウェイの [リージョン] を設定します。
リージョンの Cloud Router を選択または作成します。
[NAT マッピング] で、[ソース] を [カスタム] に設定します。
サブネットを選択します。
[IP 範囲] のプルダウン リストで、含めるサブネット IP 範囲を選択します。
[OK] をクリックします。
追加の範囲を指定する場合は、[サブネットと IP 範囲の追加] をクリックします。
[作成] をクリックします。
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 ごとに異なるデフォルトの最小ポート数を指定する
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
[開始] または [NAT ゲートウェイを作成] をクリックします。
[ゲートウェイ名] を入力します。
[VPC ネットワーク] を選択します。
NAT ゲートウェイの [リージョン] を設定します。
リージョンの Cloud Router を選択または作成します。
[ロギング、最小ポート数、タイムアウト] をクリックします。
[VM インスタンスあたりの最小ポート数] に異なる値に設定します。
[作成] をクリックします。
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 に異なるタイムアウトを指定する
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
[開始] または [NAT ゲートウェイを作成] をクリックします。
[ゲートウェイ名] を入力します。
[VPC ネットワーク] を選択します。
NAT ゲートウェイの [リージョン] を設定します。
リージョンの Cloud Router を選択または作成します。
[ロギング、最小ポート数、タイムアウト] をクリックします。
必要に応じてタイムアウトを変更します。
[作成] をクリックします。
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 アドレス リソースを変更する
コンソール
Google Cloud Console で、[Cloud NAT] ページに移動します。
NAT ゲートウェイをクリックします。
[編集] をクリックします。
[NAT マッピング] で、[ソース] を [カスタム] に設定します。
サブネットを選択します。
[IP 範囲] のプルダウン リストで、含めるサブネット IP 範囲を選択します。
追加の範囲を指定する場合は、[サブネットと IP 範囲の追加] をクリックします。
[NAT IP アドレス] プルダウン リストをクリックし、[自動] または [手動] を選択します。
[手動] を選択した場合は、外部 IP アドレスを指定します。
高可用性のために手動 IP アドレスを使用する場合は、[IP アドレスの追加] をクリックし、2 つ目のアドレスを追加します。
[保存] をクリックします。
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 アドレスをドレインするをご覧ください。
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
NAT ゲートウェイをクリックします。
[編集] をクリックします。
[NAT IP アドレス] プルダウン リストをクリックし、[自動] または [手動] を選択します。
[手動] を選択した場合は、外部 IP アドレスを指定します。
高可用性のために、[IP アドレスの追加] をクリックし、2 つ目のアドレスを追加します。
[保存] をクリックします。
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 ステータスを表示します。
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
NAT ゲートウェイをクリックします。
[編集] をクリックします。
[NAT IP アドレス] で、IP アドレスの横にある [IP ドレイン] の値を [オン] に設定します。
[保存] をクリックします。
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 ごとに割り当てられるデフォルトの最小ポート数を変更する
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
NAT ゲートウェイをクリックします。
[編集] をクリックします。
[ロギング、最小ポート数、タイムアウト] をクリックします。
[VM インスタンスあたりの最小ポート数] フィールドを変更します。
[保存] をクリックします。
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 に関連付けられた接続タイムアウトの変更
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
NAT ゲートウェイをクリックします。
[編集] をクリックします。
[ロギング、最小ポート数、タイムアウト] をクリックします。
タイムアウトを必要な値に修正します。
[保存] をクリックします。
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 の接続タイムアウトをデフォルト値にリセットする
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
NAT ゲートウェイをクリックします。
[編集] をクリックします。
[ロギング、最小ポート数、タイムアウト] をクリックします。
リセットするユーザー定義の値をすべて削除します。
[保存] をクリックします。
削除された値はデフォルト値にリセットされます。
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 の名前
エンドポイント マッピングの設定
ゲートウェイのエンドポイントに依存しないマッピングを有効または無効にできます。デフォルトでは有効になっています。
コンソール
Cloud Console で、[Cloud NAT] ページに移動します。
NAT ゲートウェイをクリックします。
[編集] をクリックします。
[詳細構成] をクリックします。
エンドポイントに依存しないマッピングを有効にするには、[エンドポイントに依存しないマッピングの有効化] チェックボックスをオンにします。エンドポイントに依存しないマッピングを無効にするには、チェックボックスをオフにします。
[保存] をクリックします。
gcloud
既存のゲートウェイの更新
gcloud 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 構成が削除されます。ルーター自体は削除されません。
コンソール
Google Cloud Console で、[Cloud NAT] ページに移動します。
削除するゲートウェイ構成の横にあるチェックボックスをオンにします。
メニュー(
)で、[削除] をクリックします。
gcloud
gcloud compute routers nats delete NAT_CONFIG --router=NAT_ROUTER
次のように置き換えます。
NAT_CONFIG
: NAT 構成の名前NAT_ROUTER
: Cloud Router の名前
NAT 構成、IP:port-ranges、ステータスを表示する
コンソール
Google Cloud Console で、[Cloud NAT] ページに移動します。
NAT ゲートウェイの詳細、マッピング情報、構成の詳細を表示するには、NAT ゲートウェイの名前をクリックします。
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 をテストする方法を示しています。
次のステップ
- NAT 構成に関する一般的な問題のトラブルシューティングを行う。