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 ルールを追加するをご覧ください。
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 ルールを追加するをご覧ください。変数を、構成と一致する情報に置き換えます。
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 ルールの記述
Console
[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 ルールの一覧表示
Console
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 ...]