Cloud NAT ルールを設定、管理する

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

NAT ルールを作成する

NAT ルールを作成するために、Cloud NAT は ルール式言語で説明されているように、Common Expression Language(CEL)を使用します。NAT ルールで使用できる式については、式の例をご覧ください。

NAT ルールを作成する場合は、NAT ゲートウェイでエンドポイントに依存しないマッピングが無効になっていることを確認してください。

ソースベースのルールを作成する

このセクションでは、次の条件で送信元ベースの NAT ルールを作成する方法について説明します。

  1. 送信元 IP 範囲 10.10.1.0/24 のパケットは IP_ADDRESS_1 を使用する必要があります。
  2. 送信元 IP 範囲 10.10.2.0/24 のパケットは IP_ADDRESS_2 を使用する必要があります。
  3. 他のすべてのパケットは IP_ADDRESS_3 を使用する必要があります。

条件 1 と 2 については、2 つの NAT ルールを作成します。条件 3 は、送信元アドレスの照合のデフォルトの NAT ルールによって満たされます。IP_ADDRESS_1IP_ADDRESS_2IP_ADDRESS_3 は、NAT に使用する外部 IP アドレスです。

コンソール

既存の NAT ゲートウェイに NAT ルールを追加する

  1. 10.10.1.0/24 からのトラフィックを照合し、送信元 IP を IP_ADDRESS_1 に変換する NAT ルールを追加します。

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

      [Cloud NAT] に移動

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

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

    4. [Cloud NAT IP アドレス] で、[手動] を選択します。

    5. [Cloud NAT ルール] セクションで、[ルールを追加] をクリックします。

    6. [ルールの優先度] フィールドに、0(最優先)から 65000(最低優先度)までの数値を入力します。例: 100

    7. [IP 範囲を照合] で [ソース] を選択します。

    8. [送信元 IP 範囲] フィールドに「10.10.1.0/24」と入力します。

    9. [IP アドレス] セクションで、IP_ADDRESS_1 に使用する IP アドレスを選択します。

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

  2. 10.10.2.0/24 からのトラフィックに一致し、IP_ADDRESS_2 に変換する NAT ルールを追加します。

    1. [Cloud NAT ルール] セクションで、[ルールを追加] をクリックします。
    2. [ルールの優先度] フィールドに、0(最優先)から 65000(最低優先度)までの数値を入力します。例: 200
    3. [IP 範囲を照合] で [ソース] を選択します。
    4. [送信元 IP 範囲] フィールドに「10.10.2.0/24」と入力します。
    5. [IP アドレス] セクションで、IP_ADDRESS_2 に使用する IP アドレスを選択します。
    6. [完了] をクリックします。
    7. [保存] をクリックして、両方のルールを保存します。

gcloud

次のシナリオの手順でルールファイルを作成し、ルールファイルのルールを使用する Cloud NAT ゲートウェイを作成できます。また、既存の NAT ゲートウェイにルールを追加することもできます。

既存の NAT ゲートウェイに NAT ルールを追加する

新しい NAT ルールを追加するには、gcloud beta compute routers nats rules create コマンドを使用します。

  1. 10.10.1.0/24 からのトラフィックに IP_ADDRESS_1 を使用する NAT ルールを追加します。

    gcloud beta compute routers nats rules create NAT_RULE_PRIORITY \
        --router=NAT_ROUTER \
        --region=REGION \
        --nat=NAT_CONFIG \
        --match="inIpRange(source.ip, '10.10.1.0/24')" \
        --source-nat-active-ips=IP_ADDRESS_1
    

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

    • NAT_RULE_PRIORITY: NAT ルールを一意に識別するルール番号。0(最も高い優先度)から 65000(最も低い優先度)まで指定できます(例: 100)。
    • NAT_ROUTER: NAT ゲートウェイに使用する Cloud Router の名前
    • REGION: NAT ゲートウェイのリージョン
    • NAT_CONFIG: NAT 構成の名前
    • IP_ADDRESS_1: ルールに一致するパケットに使用する手動で割り当てられた外部 IP アドレス
  2. 10.10.2.0/24 からのトラフィックに IP_ADDRESS_2 を使用する NAT ルールを追加します。

    gcloud beta compute routers nats rules create NAT_RULE_PRIORITY \
        --router=NAT_ROUTER \
        --region=REGION \
        --nat=NAT_CONFIG \
        --match="inIpRange(source.ip, '10.10.2.0/24')" \
        --source-nat-active-ips=IP_ADDRESS_2
    

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

    • NAT_RULE_PRIORITY: NAT ルールを一意に識別するルール番号。0(最も高い優先度)から 65000(最も低い優先度)まで指定できます(例: 200)。
    • NAT_ROUTER: NAT ゲートウェイに使用する Cloud Router の名前
    • REGION: NAT ゲートウェイのリージョン。
    • NAT_CONFIG: NAT 構成の名前
    • IP_ADDRESS_2: ルールに一致するパケットに使用する手動で割り当てられた外部 IP アドレス

NAT ルールファイルを使用して NAT ゲートウェイを作成する

次のコードサンプルは、ルールファイルの例です。ユースケースに合わせてルールファイルを変更できます。ルールファイルがすでに存在する場合は、このステップをスキップできます。

ルールファイルを作成する
rules:
 - ruleNumber: 100
   match: inIpRange(source.ip, '10.10.1.0/24')
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT_ID/regions/REGION/addresses/IP_ADDRESS_1
 - ruleNumber: 200
   match: inIpRange(source.ip, '10.10.2.0/24')
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT_ID/regions/REGION/addresses/IP_ADDRESS_2

上記の例では、IP_ADDRESS_1IP_ADDRESS_2 は、ルールに一致するパケットに使用する手動で割り振られた外部 IP アドレスです。各 IP アドレスで、次のように置き換えます。

  • PROJECT_ID: IP アドレスのプロジェクト
  • REGION: IP アドレスが予約されているリージョン
NAT ルールファイルを使用して NAT ゲートウェイを作成する

次のコマンドは、NAT ゲートウェイを作成し、NAT ルールファイルのルールを使用して構成します。NAT ゲートウェイをすでに構成している場合は、既存の NAT ゲートウェイに NAT ルールを追加するをご覧ください。

gcloud beta compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --nat-all-subnet-ip-ranges \
    --nat-external-ip-pool=IP_ADDRESS_3,[IP_ADDRESS_4] \
    --rules=PATH_TO_NAT_RULE_FILE

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

  • NAT_CONFIG: NAT 構成の名前
  • NAT_ROUTER: NAT ゲートウェイに使用する Cloud Router の名前
  • REGION: Cloud NAT ゲートウェイを作成するリージョン
  • IP_ADDRESS_3IP_ADDRESS_4: デフォルトの NAT ルールに使用する外部 IP アドレス
  • PATH_TO_NAT_RULE_FILE: NAT ルールファイルのパス

宛先ベースのルールを作成する

次の構成ステップの例では、以下の条件を満たしています。

  • 宛先アドレスが 198.51.100.10 のパケットは、NAT IP アドレス IP_ADDRESS_1 を使用する必要があります。
  • 宛先アドレスが 198.51.100.20/30 のパケットは、NAT IP アドレス IP_ADDRESS_2 または IP_ADDRESS_3 を使用する必要があります。

それぞれの条件を満たすには、NAT ルールを 1 つ作成します。

コンソール

既存の NAT ゲートウェイに NAT ルールを追加する

  1. IP_ADDRESS_1 を使用して 198.51.100.10 にトラフィックを送信する NAT ルールを追加します。

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

      [Cloud NAT] に移動

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

    3. [Cloud NAT IP アドレス] で、[手動] を選択します。

    4. [Cloud NAT ルール] セクションで、[ルールを追加] をクリックします。

    5. [ルールの優先度] フィールドに、0(最優先)から 65000(最低優先度)までの数値を入力します。例: 100

    6. [一致する IP 範囲] で [宛先] を選択します。

    7. [宛先 IP 範囲] フィールドに「198.51.100.10」と入力します。

    8. [IP アドレス] セクションで、IP_ADDRESS_1 に使用する IP アドレスを選択します。

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

  2. IP_ADDRESS_2 または IP_ADDRESS_3 を使用して 198.51.100.20/30 にトラフィックを送信する NAT ルールを追加します。

    1. [Cloud NAT ルール] セクションで、[ルールを追加] をクリックします。
    2. [ルールの優先度] フィールドに、0(最優先)から 65000(最低優先度)までの数値を入力します。例: 200
    3. [一致する IP 範囲] で [宛先] を選択します。
    4. [宛先 IP 範囲] フィールドに「198.51.100.20/30」と入力します。
    5. [IP アドレス] セクションで、IP_ADDRESS_2 に使用する IP アドレスを選択します。
    6. [IP アドレスを追加] をクリックし、IP_ADDRESS_3 に使用する IP アドレスを選択します。
    7. [完了] をクリックします。
    8. [保存] をクリックして、両方のルールを保存します。

gcloud

次のシナリオの手順でルールファイルを作成し、ルールファイルのルールを使用する NAT ゲートウェイを作成できます。また、既存の NAT ゲートウェイにルールを追加することもできます。

既存の NAT ゲートウェイに NAT ルールを追加する

NAT ルールコマンドを使用して、新しい NAT ルールを追加できます。NAT_RULE_PRIORITY は、ルールに割り当てる NAT ルールの優先度(0(最高)から 65000(最低))に置き換えます。他の変数は、構成に一致する情報に置き換えます。

まず、IP_ADDRESS1 から 198.51.100.10 にトラフィックを送信する NAT ルールを追加します。

gcloud compute routers nats rules create NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    --match='destination.ip == "198.51.100.10"' \
    --source-nat-active-ips=IP_ADDRESS1 \
    [--region=REGION] [GLOBAL-FLAG ...]

次に、IP_ADDRESS2 または IP_ADDRESS3 から 198.51.100.20/30 にトラフィックを送信する NAT ルールを追加します。

gcloud compute routers nats rules create NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    --match='inIpRange(destination.ip, "198.51.100.20/30")' \
    --source-nat-active-ips=IP_ADDRESS2,IP_ADDRESS3 \
    [--region=REGION] [GLOBAL-FLAG ...]

ルールファイルを作成する

次のコードサンプルは、ルールファイルの例です。ユースケースに合わせてルールファイルを変更できます。ルールファイルがすでに存在する場合は、このステップをスキップできます。

rules:
 - ruleNumber: 100
   match: destination.ip == '198.51.100.10'
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS1
 - ruleNumber: 200
   match: inIpRange(destination.ip, '198.51.100.20/30')
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS2
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS3

NAT ルールファイルを使用して NAT ゲートウェイを作成する

次のコマンドは、NAT ゲートウェイを作成し、NAT ルールファイルのルールを使用して構成します。NAT ゲートウェイをすでに構成している場合は、既存の NAT ゲートウェイに NAT ルールを追加するをご覧ください。変数を、構成と一致する情報に置き換えます。

gcloud compute routers nats create NAT_NAME \
    --router=ROUTER_NAME \
    --nat-external-ip-pool=IP_ADDRESS4,[IP_ADDRESS5] \
    --nat-all-subnet-ip-ranges \
    --rules=PATH_TO_NAT_RULE_FILE \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT ルールの更新

NAT ルールを更新するには、次のセクションの手順を行います。ルールファイルは gcloud コマンドライン ツールでのみ使用できます。

コンソール

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

    [Cloud NAT] に移動

  2. NAT ゲートウェイをクリックします。
  3. [編集] をクリックします。
  4. [カスタムルール] で、更新するルールをクリックします。
  5. 表示されたフィールドで、変更する情報を修正できます。
  6. [完了] をクリックします。
  7. [保存] をクリックします。

gcloud

NAT ルールファイルを使用して更新する

NAT ルールファイルを使用して NAT ゲートウェイを更新するには、gcloud compute routers nats update コマンドを使用します。

変数は、構成と一致する情報に置き換えます。

gcloud compute routers nats update NAT_NAME \
    --router=ROUTER_NAME \
    --rules=PATH_TO_NAT_RULE_FILE \
    [--region=REGION] [GLOBAL-FLAG ...]

次のコードサンプルは、ルールファイルの例です。sourceNatDrainIps アクションに注意してください。これは、IP_ADDRESS1 を使用した宛先への新しい接続を禁止しますが、既存の接続は保持します。

rules:
 - ruleNumber: 100
   match: destination.ip == '198.51.100.10'
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS2
     sourceNatDrainIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS1

NAT ルールコマンドを使用して更新する

単一の NAT ルールを更新するには、次のコマンドを使用します。NAT_RULE_PRIORITY は NAT ルール優先度番号に置き換え、他の変数は構成に一致する情報に置き換えます。source-nat-drain-ips オプションに注意してください。IP_ADDRESS3IP_ADDRESS4 を使用した宛先への新しい接続は禁止されますが、既存の接続は保持されます。

gcloud compute routers nats rules update NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    --match=Match conditions (expressed in CEL) \
    --source-nat-active-ips=[IP_ADDRESS1],[IP_ADDRESS2] \
    --source-nat-drain-ips=[IP_ADDRESS3],[IP_ADDRESS4] \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT ルールの削除

コンソール

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

    [Cloud NAT] に移動

  2. NAT ゲートウェイをクリックします。
  3. [編集] をクリックします。
  4. [カスタムルール] で、削除するルールにカーソルを合わせます。 をクリックします。
  5. [保存] をクリックします。

gcloud

NAT ルールをゲートウェイから削除するには、ゲートウェイから直接削除するか、ルールファイルから削除してゲートウェイを更新します。

NAT ルールファイルを使用して削除する

ルールファイルから NAT ルールを直接削除し、NAT ゲートウェイを更新できます。便宜上、ここで NAT ゲートウェイを更新するコマンドを繰り返します。

変数は、構成と一致する情報に置き換えます。

gcloud compute routers nats update NAT_NAME \
    --router=ROUTER_NAME \
    --rules=PATH_TO_NAT_RULE_FILE \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT ルールコマンドを使用して削除する

NAT ルールの delete コマンドを使用して、ゲートウェイから NAT ルールを削除することもできます。NAT_RULE_PRIORITY は NAT ルールの優先順位番号に置き換え、他の変数は構成に一致する情報に置き換えます。

gcloud compute routers nats rules delete NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT ルールの記述

Console

[Cloud NAT] ページで NAT ルールに関する情報を表示できます。

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

    [Cloud NAT] に移動

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

個別の NAT ルールの詳細情報について、以下の操作を行うことができます。

  1. [編集] をクリックします。
  2. [カスタムルール] で NAT ルールを選択します。
  3. 詳細情報を表示します。
  4. [キャンセル] をクリックします。

gcloud

NAT ルールを記述するには、次のコマンドを使用します。NAT_RULE_PRIORITY は NAT ルール優先度番号に置き換え、他の変数は構成に一致する情報に置き換えます。

gcloud compute routers nats rules describe NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT ゲートウェイ内のすべての NAT ルールの一覧表示

Console

NAT ルールは [Cloud NAT] ページで確認できます。

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

    [Cloud NAT] に移動

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

gcloud

NAT ゲートウェイ内のすべての NAT ルールを一覧表示するには、次のコマンドを使用します。また、NAT ルール内のすべての NAT IP アドレス(デフォルト ルールを含む)も表示されます。変数は、構成と一致する情報に置き換えます。

gcloud compute routers nats rules list \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    [--region=REGION] [GLOBAL-FLAG ...]