Private NAT でネットワーク アドレス変換を設定、管理する

このページでは、Cloud NAT でプライベート間ネットワーク アドレス変換(NAT)を構成する方法について説明します。

始める前に

Private NAT を設定する前に、次の操作を行います。

Private NAT の仕様を確認する

次の仕様と要件をご覧ください。

  • 一般的な仕様については、Private NAT をご覧ください。
  • VPC スポークやハイブリッド スポークなど、Network Connectivity Center ハブのスポーク間のトラフィックについては、Network Connectivity Center スポークの Private NAT をご覧ください。
  • Cloud Interconnect または Cloud VPN を介した Virtual Private Cloud(VPC)ネットワークと Google Cloud 以外のネットワーク間のトラフィックについては、ハイブリッド NAT をご覧ください。

IAM 権限を取得する

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

Google Cloud の設定

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

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

このページの Google Cloud CLI の説明では、コマンド発行前にプロジェクト ID を設定済みであることを前提としています。

  1. プロジェクト ID は、次のコマンドで設定できます。

    gcloud config set project PROJECT_ID
    
  2. すでに設定されているプロジェクト ID を表示することもできます。

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

目的 PRIVATE_NAT の NAT サブネットを作成する

Private NAT を構成する前に、目的 PRIVATE_NAT の NAT サブネットを作成します。NAT サブネットは、Private NAT ゲートウェイを作成する予定のリージョンに存在する必要があります。Private NAT ゲートウェイは、このサブネットの IP アドレス範囲を使用して NAT を実行します。このサブネットが、接続されたどのネットワークでも既存のサブネットと重複しないようにしてください。このサブネットにはリソースを作成できません。 このサブネットは Private NAT にのみ使用されます。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの詳細ページを表示するには、VPC ネットワークの名前をクリックします。

  3. [サブネット] タブをクリックします。

  4. [サブネットを追加] をクリックします。[サブネットを追加] ダイアログで、次の操作を行います。

    1. サブネットの名前を入力します。
    2. リージョンを選択します。
    3. [目的] で [プライベート NAT] を選択します。
    4. [IP アドレス範囲] を入力します。これは、サブネットのプライマリ IPv4 範囲です。

      RFC 1918 アドレス以外の範囲を選択した場合は、その範囲が既存の構成と競合していないことを確認します。有効な IPv4 サブネット範囲の詳細については、IPv4 サブネット範囲をご覧ください。

  5. [Add] をクリックします。

gcloud

gcloud compute networks subnet create コマンドを使用して、サブネットを作成します。

  gcloud compute networks subnets create NAT_SUBNET \
      --network=NETWORK \
      --region=REGION \
      --range=IP_RANGE \
      --purpose=PRIVATE_NAT

以下を置き換えます。

  • NAT_SUBNET: 作成する Private NAT サブネット範囲の名前。
  • NETWORK: サブネットワークが属するネットワーク。
  • REGION: 作成するサブネットワークのリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。
  • IP_RANGE: このサブネットに割り振られる IP 空間(CIDR 形式)。IP_RANGE では、VM あたり必要なポートのサイズの 2 倍が使用されているようにします。

プライベート NAT を構成する

Private NAT を構成するには、ソース VPC ネットワークに Private NAT ゲートウェイを作成します。各ゲートウェイは、1 つの VPC ネットワーク、リージョン、Cloud Router に関連付けられます。

Private NAT を構成するときに、次のいずれかまたは両方を有効にできます。

  • Network Connectivity Center スポークの Private NAT。次の間のトラフィックに NAT を有効にします。
    • 同じ Network Connectivity Center ハブ内の送信元 VPC ネットワークと宛先 VPC ネットワーク。両方のネットワークを VPC スポークとして構成する必要があります。
    • Network Connectivity Center ハブの VPC スポークとして構成された送信元 VPC ネットワークと、ハイブリッド スポークを介してハブに接続されている宛先のオンプレミスまたは他のクラウド プロバイダ ネットワーク。
  • ハイブリッド NAT。送信元の VPC ネットワークと宛先のオンプレミス ネットワークまたは他のクラウド プロバイダ ネットワーク間のトラフィックに NAT を有効にします。ネットワークは Cloud Interconnect または Cloud VPN を介して接続する必要があります。

Private NAT ゲートウェイを作成する

NAT を構成するソース VPC ネットワークに Private NAT ゲートウェイを作成します。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

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

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

  4. [NAT タイプ] で [プライベート] を選択します。

  5. NAT ゲートウェイの VPC ネットワークを選択します。

  6. NAT ゲートウェイのリージョンを選択します。

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

  8. 送信元エンドポイントのタイプとして [VM インスタンス] が選択されていることを確認します。

  9. [ソース] リストで [カスタム] を選択します。

  10. NAT を実行するサブネットを選択します。

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

  12. [ルールの追加] をクリックします。

  13. [ルール番号] フィールドに、165000 の任意の値を入力します。

  14. [一致] で、次のいずれかのオプションを選択します。

    • ハイブリッド NAT を有効にするには、[ハイブリッド接続ルート] を選択します。
    • Network Connectivity Center スポークで Private NAT を有効にするには、[Network Connectivity Center ハブ] を選択します。
    • 両方のオプションを有効にするには、[ハイブリッド接続ルート] と [Network Connectivity Center ハブ] を選択します。
  15. プライベート NAT サブネット範囲を選択するか作成します。

  16. [完了] をクリックします。

  17. 省略可: [詳細設定] セクションで、次のいずれかの設定を調整します。

    • ロギングを構成するかどうか。デフォルトでは、[ロギングなし] が選択されています。
    • Cloud NAT がポートを割り当てる方法を変更するかどうか。デフォルトでは、[動的ポートの割り当ての有効化] が選択されています。静的ポートの割り当てを構成するには、[動的ポートの割り当てを有効にする] をオフにして、[VM インスタンスあたりの最小ポート数] を指定します。デフォルト値は 64 です。
    • プロトコル接続の NAT タイムアウトを更新するかどうか。これらのタイムアウトとそのデフォルト値については、NAT タイムアウトをご覧ください。
  18. [作成] をクリックします。

gcloud

  1. NAT を構成する VPC ネットワークに Cloud Router を作成します。

    gcloud compute routers create コマンドを使用します。

    gcloud compute routers create ROUTER_NAME \
        --network=NETWORK --region=REGION
    

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

    • ROUTER_NAME: Cloud Router の名前。
    • NETWORK: Cloud Router を作成する VPC ネットワーク。
    • REGION: Cloud Router を作成するリージョン。
  2. Private NAT ゲートウェイを作成し、NAT を構成するソース VPC ネットワークのサブネットを 1 つ以上指定します。

    --type フラグを PRIVATE に設定して gcloud compute routers nats create コマンドを使用します。

    gcloud compute routers nats create NAT_CONFIG \
        --router=ROUTER_NAME --type=PRIVATE --region=REGION \
        --nat-custom-subnet-ip-ranges=SUBNETWORK:ALL|[SUBNETWORK_1:ALL,SUBNETWORK_2:ALL,...] | \
        [--nat-all-subnet-ip-ranges]
    

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

    • NAT_CONFIG: 作成する Private NAT 構成の名前。
    • ROUTER_NAME: このゲートウェイで使用する Cloud Router の名前。これは、前の手順で作成した Cloud Router です。他のリソースで使用されていない必要があります。
    • SUBNETWORK: NAT を使用するサブネットの名前またはサブネットのリスト。

      SUBNETWORK_1, SUBNETWORK_2 のようなカンマ区切り形式でサブネットのリストを指定することもできます。Private NAT は、指定されたサブネットまたはサブネットのリストのすべてのサブネット IP 範囲で常に NAT を実行します。

    デフォルトでは、Private NAT は動的ポート割り当てを使用します。静的ポート割り当てを使用して限定公開 NAT ゲートウェイを作成する場合は、--no-enable-dynamic-port-allocation フラグを指定して上記のコマンドを実行します。

    gcloud compute routers nats create NAT_CONFIG \
        --router=ROUTER_NAME --type=PRIVATE --region=REGION \
        --nat-custom-subnet-ip-ranges=SUBNETWORK:ALL|[SUBNETWORK_1:ALL,SUBNETWORK_2:ALL,...] | \
        [--nat-all-subnet-ip-ranges]
        --no-enable-dynamic-port-allocation \
        [--min-ports-per-vm=VALUE]
    

    VALUE は、VM ごとに割り当てるポートの最小数に置き換えます。指定しない場合、Google Cloud によってデフォルト値の 64 が割り当てられます。

  3. 構成する NAT のタイプに基づいてトラフィックを照合する NAT ルールを作成します。

    --match フラグを次のいずれかのオプションに設定して、gcloud compute routers nats rules create コマンドを使用します。

    • nexthop.is_hybrid: ソース VPC ネットワークから、Cloud Interconnect または Cloud VPN を介して Google Cloud に接続されているオンプレミスまたは他のクラウド プロバイダ ネットワークへのアウトバウンド トラフィックを変換します。
    • nexthop.hub: ソース VPC スポークから、ソース VPC スポークと同じ Network Connectivity Center ハブに接続されている VPC またはハイブリッド スポークのいずれかに下り(外向き)トラフィックを変換します。
    • nexthop.is_hybrid || nexthop.hub: 両方のタイプの Private NAT を構成します。

    ハイブリッド NAT の NAT ルールを作成するには、次のコマンドを実行します。

    gcloud compute routers nats rules create NAT_RULE_NUMBER \
        --router=ROUTER_NAME --region=REGION \
        --nat=NAT_CONFIG \
        --match='nexthop.is_hybrid' \
        --source-nat-active-ranges=NAT_SUBNET
    

    Network Connectivity Center スポークの Private NAT の NAT ルールを作成するには、次のコマンドを実行します。

    gcloud compute routers nats rules create NAT_RULE_NUMBER \
        --router=ROUTER_NAME --region=REGION \
        --nat=NAT_CONFIG \
        --match='nexthop.hub == "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/hubs/HUB"' \
        --source-nat-active-ranges=NAT_SUBNET
    

    Network Connectivity Center スポークのハイブリッド NAT と Private NAT の両方の NAT ルールを作成するには、次のコマンドを実行します。

    gcloud compute routers nats rules create NAT_RULE_NUMBER \
        --router=ROUTER_NAME --region=REGION \
        --nat=NAT_CONFIG \
        --match='nexthop.is_hybrid || nexthop.hub == "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/hubs/HUB"' \
        --source-nat-active-ranges=NAT_SUBNET
    

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

    • NAT_RULE_NUMBER: NAT ルールを一意に識別するルール番号(165000)。
    • ROUTER_NAME: 前に作成した Cloud Router の名前。
    • REGION: Cloud Router のリージョン。
    • NAT_CONFIG: 前に作成した Private NAT 構成の名前。
    • PROJECT_ID: Network Connectivity Center ハブの Google Cloud プロジェクト。
    • HUB: Network Connectivity Center ハブの名前。
    • NAT_SUBNET: 前に作成した Private NAT サブネットの名前。サブネットのリストをカンマ区切り形式で指定することもできます。

Private NAT 構成を表示する

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

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

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

gcloud

NAT 構成の詳細を表示するには、次のコマンドを実行します。

  • Private NAT ゲートウェイの構成を表示します。

    gcloud compute routers nats describe NAT_CONFIG \
        --router=ROUTER_NAME \
        --region=REGION
    

    以下を置き換えます。

    • NAT_CONFIG: NAT 構成の名前。
    • ROUTER_NAME: Cloud Router の名前。
    • REGION: 詳細を表示する NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。
  • 各 VM のインターフェースに割り当てられた IP とポート範囲のマッピングを表示します。

    gcloud compute routers get-nat-mapping-info ROUTER_NAME \
        --region=REGION
    
  • Private NAT ゲートウェイのステータスを表示します。

    gcloud compute routers get-status ROUTER_NAME \
        --region=REGION
    

Private NAT 構成を更新する

Private NAT ゲートウェイを設定したら、要件に基づいてゲートウェイ構成を更新できます。以降のセクションでは、Private NAT ゲートウェイを更新するために実行できるタスクを示します。

プライベート NAT に関連付けられたサブネットを変更する

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

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

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

  4. [Cloud NAT マッピング] の [ソース] リストで、[カスタム] を選択します。

  5. 使用可能なサブネットのリストから新しいサブネットを選択します。

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

  7. [保存] をクリックします。

gcloud

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --nat-custom-subnet-ip-ranges=SUBNETWORK:ALL|[SUBNETWORK_1:ALL,SUBNETWORK_2:ALL,..]

以下を置き換えます。

  • NAT_CONFIG: 更新する Private NAT 構成の名前。
  • ROUTER_NAME: このゲートウェイで使用するルーターの名前。
  • SUBNETWORK: 使用するサブネットの名前。

プライベート NAT に関連付けられているサブネットを削除する

NAT ゲートウェイから使用していない特定のサブネットを削除できます。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

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

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

  4. NAT マッピングから削除したいサブネットを削除します。

  5. [保存] をクリックします。

Private NAT 構成に NAT サブネットを追加する

トラフィックに NAT を実行するために、Private NAT 構成では、目的が PRIVATE_NAT のサブネットの NAT IP アドレスを使用します。Private NAT 構成で、使用可能な NAT IP アドレスの数を超える数が必要な場合は、目的が PRIVATE_NAT のサブネットをさらに構成に追加できます。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

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

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

  4. 既存のルールを展開します。

  5. [サブネットの範囲を追加] をクリックします。

  6. 新しい NAT サブネット範囲を選択または作成し、[完了] をクリックします。

  7. [保存] をクリックします。

gcloud

gcloud compute routers nats rules update NAT_RULE_NUMBER \
    --nat=NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --source-nat-active-ranges=NAT_SUBNET_1, NAT_SUBNET_2 ...

以下を置き換えます。

  • NAT_RULE_NUMBER: 更新するルールを一意に識別する番号。
  • NAT_CONFIG: 更新するルールの Private NAT 構成の名前。
  • ROUTER_NAME: このゲートウェイで使用するルーターの名前。
  • NAT_SUBNET: 既存の NAT 構成に追加する Private NAT サブネットの名前。

NAT 構成を削除する

ゲートウェイ構成を削除すると、Cloud Router から NAT 構成が削除されます。ルーター自体は削除されません。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. 削除するゲートウェイ構成の横にあるチェックボックスをオンにします。

  3. メニューで、[削除] をクリックします。

gcloud

gcloud compute routers nats delete NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION

以下を置き換えます。

  • NAT_CONFIG: NAT 構成の名前。
  • ROUTER_NAME: Cloud Router の名前。
  • REGION: 削除する NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。

次のステップ