Cloud NAT ルールを設定、管理する
このページでは、Public NAT の Cloud NAT ルールを構成する方法について説明します。Cloud NAT ルールを構成する前に、Cloud NAT ルールの概要をご覧ください。
NAT ルールを作成する
NAT ルールを作成するため、Cloud NAT は、ルール式の言語で説明されているように、Common Expression Language(CEL)を使用します。NAT ルールで使用できる式の例については、式の例をご覧ください。
NAT ルールを作成する場合は、NAT ゲートウェイでエンドポイントに依存しないマッピングが無効になっていることを確認してください。
送信元ベースのルールを作成する
このセクションでは、次の条件で送信元ベースの NAT ルールを作成する方法について説明します。
- 送信元 IP 範囲が
10.10.1.0/24であるパケットは、IP_ADDRESS_1を使用する必要があります。 - 送信元 IP 範囲が
10.10.2.0/24であるパケットは、IP_ADDRESS_2を使用する必要があります。 - その他すべてのパケットは
IP_ADDRESS_3を使用する必要があります。
条件 1 と 2 に対して、2 つの NAT ルールを作成します。条件 3 は、送信元アドレス照合用のデフォルトの NAT ルールによって満たされます。IP_ADDRESS_1、IP_ADDRESS_2、IP_ADDRESS_3 は、NAT に使用する外部 IP アドレスです。
コンソール
既存の NAT ゲートウェイに NAT ルールを追加する
10.10.1.0/24からのトラフィックに一致して送信元 IP をIP_ADDRESS_1に変換する NAT ルールを追加します。Google Cloud コンソールで、[Cloud NAT] ページに移動します。
NAT ゲートウェイをクリックします。
[編集] をクリックします。
[Cloud NAT IP アドレス] で、[手動] を選択します。
[Cloud NAT ルール] セクションで、[ルールを追加] をクリックします。
[ルールの優先度] フィールドに、
0(最も高い優先度)から65000(最も低い優先度)までの数値を入力します。例:100[IP 範囲のマッチング] で、[送信元] を選択します。
[送信元 IP 範囲] フィールドに「
10.10.1.0/24」と入力します。[IP アドレス] セクションで、
IP_ADDRESS_1に使用する IP アドレスを選択します。[完了] をクリックします。
10.10.2.0/24からのトラフィックに一致して送信元アドレスをIP_ADDRESS_2に変換する NAT ルールを追加します。- [Cloud NAT ルール] セクションで、[ルールを追加] をクリックします。
- [ルールの優先度] フィールドに、
0(最も高い優先度)から65000(最も低い優先度)までの数値を入力します。例:200 - [IP 範囲のマッチング] で、[送信元] を選択します。
- [送信元 IP 範囲] フィールドに「
10.10.2.0/24」と入力します。 - [IP アドレス] セクションで、
IP_ADDRESS_2に使用する IP アドレスを選択します。 - [完了] をクリックします。
- [保存] をクリックして、両方のルールを保存します。
gcloud
次のセクションの手順に沿ってルールファイルを作成し、そのルールファイル内のルールを使用する Cloud NAT ゲートウェイを作成できます。また、既存の NAT ゲートウェイにルールを追加することもできます。
既存の NAT ゲートウェイに NAT ルールを追加する
新しい NAT ルールを追加するには、gcloud beta compute routers nats rules create コマンドを使用します。
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 アドレス
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_1 と IP_ADDRESS_2 は、ルールに一致するパケットに使用する手動で割り振った外部 IP アドレスです。各 IP アドレスについて、次のように置き換えます。
PROJECT_ID: IP アドレスのプロジェクトREGION: IP アドレスが予約されているリージョン
NAT ルールファイルを使用して 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_3とIP_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 ルールを追加する
IP_ADDRESS_1を使用してトラフィックを198.51.100.10に送信する NAT ルールを追加します。Google Cloud コンソールで、[Cloud NAT] ページに移動します。
[編集] をクリックします。
[Cloud NAT IP アドレス] で、[手動] を選択します。
[Cloud NAT ルール] セクションで、[ルールを追加] をクリックします。
[ルールの優先度] フィールドに、
0(最も高い優先度)から65000(最も低い優先度)までの数値を入力します。例:100[IP 範囲のマッチング] で、[宛先] を選択します。
[宛先 IP 範囲] フィールドに「
198.51.100.10」と入力します。[IP アドレス] セクションで、
IP_ADDRESS_1に使用する IP アドレスを選択します。[完了] をクリックします。
IP_ADDRESS_2またはIP_ADDRESS_3を使用してトラフィックを198.51.100.20/30に送信する NAT ルールを追加します。- [Cloud NAT ルール] セクションで、[ルールを追加] をクリックします。
- [ルールの優先度] フィールドに、
0(最も高い優先度)から65000(最も低い優先度)までの数値を入力します。例:200 - [IP 範囲のマッチング] で、[宛先] を選択します。
- [宛先 IP 範囲] フィールドに「
198.51.100.20/30」と入力します。 - [IP アドレス] セクションで、
IP_ADDRESS_2に使用する IP アドレスを選択します。 - [IP アドレスを追加] をクリックし、
IP_ADDRESS_3に使用する IP アドレスを選択します。 - [完了] をクリックします。
- [保存] をクリックして、両方のルールを保存します。
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 ゲートウェイに 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 コマンドライン ツールでのみ使用できます。
コンソール
- Google Cloud コンソールで、[Cloud NAT] ページに移動します。
- NAT ゲートウェイをクリックします。
- [編集] をクリックします。
- [カスタムルール] で、更新するルールをクリックします。
- 表示されたフィールドで、変更する情報を修正できます。
- [完了] をクリックします。
- [保存] をクリックします。
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_ADDRESS3 と IP_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 ルールの削除
コンソール
- Google Cloud コンソールで、[Cloud NAT] ページに移動します。
- NAT ゲートウェイをクリックします。
- [編集] をクリックします。
- [カスタムルール] で、削除するルールにカーソルを合わせます。[] をクリックします。
- [保存] をクリックします。
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 ルールの記述
コンソール
[Cloud NAT] ページで NAT ルールに関する情報を表示できます。
- Google Cloud コンソールで、[Cloud NAT] ページに移動します。
- NAT ゲートウェイをクリックします。
- NAT ルールを表示します。
個別の NAT ルールの詳細情報について、以下の操作を行うことができます。
- [編集] をクリックします。
- [カスタムルール] で NAT ルールを選択します。
- 詳細情報を表示します。
- [キャンセル] をクリックします。
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 ルールの一覧表示
コンソール
NAT ルールは [Cloud NAT] ページで確認できます。
- Google Cloud コンソールで、[Cloud NAT] ページに移動します。
- NAT ゲートウェイをクリックします。
- NAT ルールを表示します。
gcloud
NAT ゲートウェイ内のすべての NAT ルールを一覧表示するには、次のコマンドを使用します。また、NAT ルール内のすべての NAT IP アドレス(デフォルト ルールを含む)も表示されます。変数は、構成と一致する情報に置き換えます。
gcloud compute routers nats rules list \
--router=ROUTER_NAME \
--nat=NAT_NAME \
[--region=REGION] [GLOBAL-FLAG ...]