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 つ作成します。
Console
既存の NAT ゲートウェイに NAT ルールを追加する
IP_ADDRESS1 から 198.51.100.10
にトラフィックを送信する NAT ルールを追加します。
- Google Cloud コンソールで、[Cloud NAT] ページに移動します。
- NAT ゲートウェイを選択します。
- [編集] を選択します。
- [NAT ルール] で、[新しいルールを追加] を選択します。
- [一致] フィールドに「
198.51.100.10
」と入力します。 - [IP アドレス] メニューで、IP_ADDRESS1 に使用した IP アドレスを選択します。
- [ルール番号] フィールドに「
100
」と入力します。 - [完了] を選択します。
IP_ADDRESS2 または IP_ADDRESS3 から 198.51.100.20/30
にトラフィックを送信する NAT ルールを追加します。
- [NAT ルール] で、[新しいルールを追加] を選択します。
- [一致] フィールドに「
198.51.100.20/30
」と入力します。 - [IP アドレス] メニューで、IP_ADDRESS2 に使用した IP アドレスを選択します。
- [IP アドレスを追加] を選択し、IP_ADDRESS3 に使用した IP アドレスを選択します。
- [ルール番号] フィールドに「
200
」と入力します。 - [完了] を選択します。
- [保存] を選択して、両方のルールを保存します。
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
コマンドライン ツールでのみ使用できます。
Console
- Google Cloud コンソールで、[Cloud NAT] ページに移動します。
- NAT ゲートウェイを選択します。
- [編集] を選択します。
- [カスタマイズされたルール] で、更新するルールをクリックします。
- 展開されたフィールドで、変更する情報を修正できます。
- 変更が完了したら、[完了] を選択します。
- [保存] を選択します。
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_ADDRESS3
と IP_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 ルールの削除
Console
- 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_NUMBER
は目的の NAT ルール番号に置き換えます。他の変数は、構成に一致する情報に置き換えます。
gcloud compute routers nats rules delete NAT_RULE_NUMBER \ --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_NUMBER
は NAT ルール番号に置き換え、他の変数は構成に一致する情報に置き換えます。
gcloud compute routers nats rules describe NAT_RULE_NUMBER \ --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 ...]