NAT 構成を調整する

Cloud NAT ゲートウェイの構成(Public NAT または Private NAT)を設定したら、要件に基づいて構成を編集できます。このページでは、Cloud NAT 構成を調整するために実行できるタスクについて説明します。

構成の編集は、本質的に中断を伴う可能性がある操作であり、既存のネットワーク アドレス変換(NAT)接続が切断される可能性があります。Cloud NAT 構成の調整による影響の詳細については、NAT 構成の調整が既存の NAT 接続に与える影響をご覧ください。

ポートの使用量を表示する

VM あたりの最小ポート使用量を変更する前に、VM あたりのポート使用量を確認します。この情報を得るには、compute.googleapis.com/nat/port_usage 指標を使用します。

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

    [Monitoring] に移動

    1. ナビゲーション パネルで、Metrics Explorer を選択します。

    2. [指標を選択] メニューを開き、サブメニューを使用して compute.googleapis.com/nat/port_usage 指標を選択します。

      • リソースに [VM instance] を選択します。
      • 指標カテゴリに [Nat] を選択します。
      • 指標で [ポートの使用状況] を選択します。
    3. [適用] をクリックします。

    4. Cloud NAT ゲートウェイを選択するには、[フィルタ] フィールドを使用します。

    5. [グループ条件] セクションの [ラベル] で、[instance_id] を選択します。

    6. [グループ化関数] リストで、[最大] を選択します。

    7. [その他のオプション] を開き、[整列指定子] フィールドを [最大] に設定します。

    8. 過去 30 日間の使用量を表示するには、30d を指定します。

    Metrics Explorer の使用方法の詳細については、Metrics Explorer 使用時に指標を選択するをご覧ください。

VM あたりの最小ポート数を選択する

NAT IP アドレスを最大限利用するには、適切な最小ポート数を選択することが重要です。

VM あたりのポート数を増やす前に、ポートの使用量を減らすために他の戦略を検討してください。

VM あたりのポート数を増やす必要がある場合は、まず、ゲートウェイでの VM あたりのポートの使用量を検討します。このデータを確認する方法については、ポートの使用量を表示するをご覧ください。

過去 30 日間の最大ポート使用量を確認するか、Cloud NAT ゲートウェイを表していると思われる別の期間の最大ポート使用量を確認します。

次のいずれかを行います。

  • 静的ポートの割り当てを使用している場合は、現在の最大ポート使用量と最小値が同じになるように VM あたりのポート数を構成します。

  • 動的ポートの割り当てを使用している場合は、最小値が最大ポート使用量よりも小さく、最大値が最大ポート使用量よりも高くなるように VM あたりのポート数を構成します。

VM ごとに割り当てられるデフォルトの最小ポート数を変更する

VM あたりの最小ポート数の構成方法の決定については、VM あたりの最小ポート数を選択するをご覧ください。

最小ポートの割り当ての変更による影響については、以下のセクションをご覧ください。

Cloud NAT ゲートウェイに動的ポート割り当てが構成されている場合は、動的ポート割り当てが構成されている場合に最小ポート数または最大ポート数を変更するをご覧ください。

コンソール

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

    [Cloud NAT] に移動

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

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

  4. [詳細構成] をクリックします。

  5. [VM インスタンスあたりの最小ポート数] フィールドを変更します。

  6. [保存] をクリックします。

gcloud

このコマンドでは、Cloud NAT 構成の他のフィールドは変更されません。

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --min-ports-per-vm=128

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

  • NAT_CONFIG: Cloud NAT 構成の名前。
  • ROUTER_NAME: Cloud Router の名前。
  • REGION: 更新する Cloud NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。

ポートの割り当て方法を変更する

静的ポート割り当て動的ポート割り当てでは、構成要件が異なります。

既存の Cloud NAT ゲートウェイのポート割り当てタイプを更新する前に、Cloud NAT ゲートウェイの構成がポート割り当てタイプと互換性があることを確認してください。構成が対応していないと、変更が失敗します。

コンソール

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

    [Cloud NAT] に移動

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

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

  4. [詳細構成] をクリックします。

  5. [動的ポートの割り当ての有効化] をオンまたはオフにします。

  6. 必要に応じて、[VM インスタンスあたりの最小ポート数] と [VM インスタンスあたりの最大ポート数] の値を調整します。

  7. [保存] をクリックします。

gcloud

このコマンドでは、Cloud NAT 構成の他のフィールドは変更されません。

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-dynamic-port-allocation | --no-enable-dynamic-port-allocation \
    [ --min-ports-per-vm=MIN_PORTS ] \
    [ --max-ports-per-vm=MAX_PORTS ]

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

  • NAT_CONFIG: Cloud NAT 構成の名前。
  • ROUTER_NAME: Cloud Router の名前。
  • REGION: 更新する Cloud NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。
  • MIN_PORTS: 各 VM に割り当てるポートの最小数。動的ポート割り当てが有効な場合、MIN_PORTS2 の累乗数で、3232768 の範囲で指定する必要があります。
  • MAX_PORTS: 各 VM に割り当てるポートの最大数。MAX_PORTS2 の累乗数にする必要があります。6465536 の範囲で指定できます。MAX_PORTS は、MIN_PORTS より大きくしてくださいデフォルト値は 65536 です。

動的ポート割り当てが構成されている場合に最小ポート数または最大ポート数を変更する

動的ポート割り当てを構成した後は、VM ごとに割り当てられる最小ポート数または最大ポート数を変更できます。

VM あたりの最小ポート数の構成方法の決定については、VM あたりの最小ポート数を選択するをご覧ください。

最小ポートの割り当ての変更による影響については、以下のセクションをご覧ください。

コンソール

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

    [Cloud NAT] に移動

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

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

  4. [詳細構成] をクリックします。

  5. [VM インスタンスあたりの最小ポート数] フィールドと [VM インスタンスあたりの最大ポート数] フィールドの値を調整します。

  6. [保存] をクリックします。

gcloud

このコマンドでは、Cloud NAT 構成の他のフィールドは変更されません。

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --min-ports-per-vm=MIN_PORTS \
    --max-ports-per-vm=MAX_PORTS

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

  • NAT_CONFIG: Cloud NAT 構成の名前。
  • ROUTER_NAME: Cloud Router の名前。
  • REGION: 更新する Cloud NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。
  • MIN_PORTS: 各 VM に割り当てるポートの最小数。動的ポート割り当てが有効な場合、MIN_PORTS2 の累乗数で、3232768 の範囲で指定する必要があります。
  • MAX_PORTS: 各 VM に割り当てるポートの最大数。MAX_PORTS2 の累乗数にする必要があります。6465536 の範囲で指定できます。MAX_PORTS は、MIN_PORTS より大きくしてください

NAT タイムアウトを変更する

以下のセクションでは、NAT タイムアウトとその変更方法について説明します。

NAT タイムアウト

Cloud NAT はプロトコル接続に次のタイムアウトを使用します。注記のある場合を除き、これらのタイムアウトは Public NAT と Private NAT の両方に適用されます。デフォルトのタイムアウト値を変更して、ポートの再利用率を増減できます。タイムアウト値は、Cloud NAT リソースの効率的な使用と、アクティブな接続、フロー、セッションの中断とのバランスを取るものです。

タイムアウト 説明 Cloud NAT のデフォルト 構成可能

UDP マッピングのアイドル タイムアウト

RFC 4787 REQ-5

UDP フローによってエンドポイントへのトラフィック送信が停止するまでの時間を秒単位で指定します。これにより、Cloud NAT マッピングが削除されます。

UDP マッピングのアイドル タイムアウトは、トラフィックの送受信を停止する 2 つのエンドポイントに影響します。また、レスポンスに時間がかかるエンドポイントや、ネットワーク レイテンシが増加した場合にも影響します。

指定したタイムアウト値を増やすと、ポートの再利用率を下げることができます。タイムアウト値を大きくすると、ポートで長時間接続が維持され、特定の UDP ソケット経由のトラフィックの一時停止を防ぐことができます。

30 秒

TCP 確立済み接続のアイドル タイムアウト

RFC 5382 REQ-5

接続がアイドル状態になるまでの秒数を指定します。この期間が経過すると Cloud NAT マッピングが削除されます。

TCP 確立済み接続のアイドル タイムアウトは、応答に時間がかかるエンドポイントや、ネットワークのレイテンシが増加した場合に影響します。

TCP 接続を開き、キープアライブ メカニズムを使用せずに接続を長時間開いたままにする場合は、タイムアウト値を増やすことができます。

1,200 秒(20 分)

TCP 一時接続のアイドル タイムアウト

RFC 5382 REQ-5

TCP 接続を半開状態で維持できる時間を指定します。この期間が経過すると Cloud NAT マッピングを削除できます。

外部エンドポイントが指定された時間よりも時間がかかる場合、またはネットワーク レイテンシが増加した場合、TCP 一時接続のアイドル タイムアウトはエンドポイントに影響します。TCP 接続確立時のアイドル タイムアウトとは異なり、TCP 一時接続のアイドル タイムアウトは半開接続にのみ影響します。

30 秒

注: このタイムアウトに設定した値に関係なく、Cloud NAT では、Cloud NAT 送信元 IP アドレスと送信元ポートのタプルで新しい接続が処理されるようになるまでに最大で 30 秒ほどかかります。

TCP TIME_WAIT タイムアウト

RFC 5382 REQ-5

接続の有効期限が切れた後に、完全に閉じた TCP 接続を Cloud NAT マッピングに維持する時間を秒単位で指定します。

TCP TIME_WAIT タイムアウトにより、閉じた TCP 接続に属し、再送信された無効なパケットを内部エンドポイントが受信しないようにすることができます。

タイムアウト値を減らすと、無関係な閉じた接続から再送信されるパケットを受信する可能性がありますが、Cloud NAT ポートの再利用率を改善できます。

120 秒

注: このタイムアウトに設定した値に関係なく、Cloud NAT では、Cloud NAT 送信元 IP アドレスと送信元ポートのタプルで新しい接続が処理されるようになるまでに最大で 30 秒ほどかかります。 動的ポートの割り当てを使用している場合は、パケットがドロップされないように、このタイムアウトを 30 秒以上に設定します。

ICMP マッピングのアイドル タイムアウト
(Public NAT にのみ適用)

RFC 5508 REQ-2

トラフィック フローがない Internet Control Message Protocol(ICMP)の Cloud NAT マッピングが終了するまでの時間を秒単位で指定します。

ICMP のマッピングのアイドル タイムアウトは、指定した時間よりもエンドポイントが応答するのに時間がかかる場合か、ネットワーク レイテンシが増加した場合に、エンドポイントに影響します。

30 秒

NAT タイムアウトを変更する

コンソール

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

    [Cloud NAT] に移動

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

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

  4. [詳細構成] をクリックします。

  5. タイムアウトを必要な値に修正します。

  6. [保存] をクリックします。

gcloud

次に示すタイムアウト値を変更するには、次のフラグを指定して gcloud compute routers nats update コマンドを使用します。

  • UDP マッピングのアイドル タイムアウト: --udp-idle-timeout
  • TCP 確立済み接続のアイドル タイムアウト: --tcp-established-idle-timeout
  • TCP 一時接続のアイドル タイムアウト: --tcp-transitory-idle-timeout
  • TCP TIME_WAIT タイムアウト: --tcp-time-wait-timeout
  • ICMP のマッピングのアイドル タイムアウト: --icmp-idle-timeout

このコマンドでは、NAT 構成の他のフィールドは変更されません。

たとえば、次のコマンドは UDP マッピングのアイドル タイムアウトの値を変更します。

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --udp-idle-timeout=VALUE

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

  • NAT_CONFIG: Cloud NAT 構成の名前。
  • ROUTER_NAME: Cloud Router の名前。
  • REGION: 更新する Cloud NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。
  • VALUE: タイムアウト値(秒)。

NAT タイムアウトをデフォルト値にリセットする

コンソール

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

    [Cloud NAT] に移動

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

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

  4. [詳細構成] をクリックします。

  5. リセットするユーザー定義の値をすべて削除します。

  6. [保存] をクリックします。

削除された値はデフォルト値にリセットされます。

gcloud

このコマンドでは、Cloud NAT 構成の他のフィールドは変更されません。

gcloud compute routers nats update NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION \
    --clear-udp-idle-timeout \
    --clear-icmp-idle-timeout \
    --clear-tcp-established-idle-timeout \
    --clear-tcp-time-wait-timeout \
    --clear-tcp-transitory-idle-timeout

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

  • NAT_CONFIG: Cloud NAT ゲートウェイの名前
  • ROUTER_NAME: Cloud Router の名前。
  • REGION: 更新する Cloud NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。

既存の NAT 接続に対する NAT 構成の調整の影響

次の表は、Cloud NAT 構成の調整が既存の接続に与える影響をまとめたものです。

調整アクション 接続の切断
エンドポイントに依存しないマッピングを無効にする ×
動的ポート割り当てを有効にしながら、VM あたりの最小ポート数を減らす:
VM あたりの最大ポート数 >= VM あたりの最小ポート数、かつ
VM あたりの最大ポート数 >= 1024
×
動的ポート割り当てがすでに有効になっている場合に VM あたりの最小ポート数を増やす ×
動的ポート割り当てがすでに有効になっている場合に VM あたりの最小ポート数を減らす ×
動的ポート割り当てがすでに無効になっている場合に VM あたりの最小ポート数を増やす ×
動的ポート割り当てがすでに無効になっている場合に VM あたりの最小ポート数を減らす
VM あたりの最大ポート数を増やす ×
動的ポート割り当てがすでに有効になっている場合に VM あたりの最大ポート数を減らす
動的ポート割り当てが有効または無効になっている場合に Cloud NAT タイムアウトを変更する ×
動的ポート割り当てを無効にする

次のステップ