Cloud NAT ルールの設定と管理

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

NAT ルールの作成

NAT ルールは Common Expression Language 構文を使用して記述されます。ルール式言語の詳細については、ルール式言語をご覧ください。

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

  • VM は、リソース名 IP_ADDRESS1 の NAT IP アドレスを使用して、宛先 198.51.100.10 にトラフィックを送信する必要があります。
  • VM が 198.51.100.20/30 にトラフィックを送信するには、リソース名 IP_ADDRESS2 または IP_ADDRESS3 の NAT IP アドレスを使用する必要があります。

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

コンソール

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

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

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

    [Cloud NAT] に移動

  2. NAT ゲートウェイを選択します。
  3. [編集] を選択します。
  4. [NAT ルール] で、[新しいルールを追加] を選択します。
  5. [一致] フィールドに「198.51.100.10」と入力します。
  6. [IP アドレス] メニューで、IP_ADDRESS1 に使用した IP アドレスを選択します。
  7. [ルール番号] フィールドに「100」と入力します。
  8. [完了] を選択します。

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

  1. [NAT ルール] で、[新しいルールを追加] を選択します。
  2. [一致] フィールドに「198.51.100.20/30」と入力します。
  3. [IP アドレス] メニューで、IP_ADDRESS2 に使用した IP アドレスを選択します。
  4. [IP アドレスを追加] を選択し、IP_ADDRESS3 に使用した IP アドレスを選択します。
  5. [ルール番号] フィールドに「200」と入力します。
  6. [完了] を選択します。
  7. [保存] を選択して、両方のルールを保存します。

gcloud

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

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

NAT ルールコマンドを使用して、新しい NAT ルールを追加できます。NAT_RULE_NUMBER は、必要な NAT ルール番号に置き換えます。他の変数は構成に一致する情報に置き換えます。

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

gcloud compute routers nats rules create NAT_RULE_NUMBER \
    --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_NUMBER \
    --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 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_NUMBER は目的の NAT ルール番号に置き換えます。他の変数は、構成に一致する情報に置き換えます。source-nat-drain-ips オプションに注意してください。IP_ADDRESS3IP_ADDRESS4 を使用した宛先への新しい接続は禁止されますが、既存の接続は保持されます。

gcloud compute routers nats rules update NAT_RULE_NUMBER \
    --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_NUMBER は目的の NAT ルール番号に置き換えます。他の変数は、構成に一致する情報に置き換えます。

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

NAT ルールの確認

コンソール

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

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

    [Cloud NAT] に移動

  2. NAT ゲートウェイを選択します。
  3. NAT ルールを表示します。

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

  1. [編集] を選択します。
  2. [カスタムルール] で NAT ルールを選択します。
  3. 詳細情報を表示します。
  4. 変更を保存しない場合は、[キャンセル] を選択します。

gcloud

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

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

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

コンソール

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 ...]