調整 NAT 設定

設定 Cloud NAT 閘道設定 (公用 NAT 或私人 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. 展開「Select a metric」選單,然後使用子選單選擇 compute.googleapis.com/nat/port_usage 指標:

      • 在「資源」部分,選取「VM 執行個體」
      • 在「指標類別」部分,選取「Nat」
      • 在「指標」部分,選取「通訊埠用量」
    3. 按一下 [套用]

    4. 如要選取 Cloud NAT 閘道,請使用「篩選器」欄位。

    5. 在「Group by」(分組依據) 部分,針對「labels」,選取「instance_id」

    6. 在「Grouping function」清單中,選取「Max」

    7. 展開「More options」,然後將「Aligner」欄位設為「max」

    8. 如要查看過去 30 天的用量,請指定 30d

    如要進一步瞭解如何使用 Metrics Explorer,請參閱「在使用 Metrics Explorer 時選取指標」。

選擇每個 VM 的最低通訊埠數量

選擇適當的通訊埠數量下限非常重要,有助於您盡可能充分利用 NAT IP 位址。

在增加每個 VM 的通訊埠數量之前,請考慮其他減少通訊埠使用量的策略。

如果需要增加每個 VM 的通訊埠數量,請先考量閘道中每個 VM 的通訊埠用量。如要瞭解如何找出這項資料,請參閱「查看通訊埠用量」。

查看過去 30 天或您認為代表 Cloud NAT 閘道的其他期間的最大連接埠用量。

執行下列其中一個步驟:

變更每個 VM 的預設通訊埠數量下限

如要瞭解如何設定每個 VM 的通訊埠數量下限,請參閱「選擇每個 VM 的通訊埠數量下限」。

如要瞭解變更最低連接埠分配的後果,請參閱以下各節:

如果 Cloud NAT 閘道已設定動態通訊埠分配功能,請參閱「在設定動態通訊埠分配功能時,變更通訊埠數量下限或上限」。

主控台

  1. 前往 Google Cloud 控制台的「Cloud NAT」頁面。

    前往 Cloud NAT

  2. 按一下 Cloud NAT 閘道。

  3. 按一下「編輯」圖示

  4. 按一下 [Advanced configurations] (進階設定)

  5. 修改「每個 VM 執行個體的最低通訊埠數量」欄位。

  6. 按一下 [儲存]

gcloud

使用 gcloud compute routers nats update 指令

這個指令會保留 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. 按一下 [Advanced configurations] (進階設定)

  5. 選取或取消選取「啟用動態通訊埠分配功能」

  6. 視需要調整「每個 VM 執行個體的最低通訊埠數量」和「每個 VM 執行個體的通訊埠數量上限」的值。

  7. 按一下 [儲存]

gcloud

使用 gcloud compute routers nats update 指令

這個指令會保留 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_PORTS 必須是 2 的冪,且介於 3232768 之間。
  • MAX_PORTS:為每個 VM 分配的通訊埠數量上限。MAX_PORTS 必須是 2 的冪次,且可介於 6465536 之間。MAX_PORTS 必須大於 MIN_PORTS。預設為 65536

在設定動態通訊埠分配功能時,變更最小或最大通訊埠

設定動態通訊埠分配功能後,您可以變更每個 VM 指派的通訊埠數量下限或上限。

如要瞭解如何設定每個 VM 的通訊埠數量下限,請參閱「選擇每個 VM 的通訊埠數量下限」。

如要瞭解變更最低連接埠分配的後果,請參閱以下各節:

主控台

  1. 前往 Google Cloud 控制台的「Cloud NAT」頁面。

    前往 Cloud NAT

  2. 按一下 Cloud NAT 閘道。

  3. 按一下「編輯」圖示

  4. 按一下 [Advanced configurations] (進階設定)

  5. 調整「每個 VM 執行個體的最低通訊埠數量」和「每個 VM 執行個體的通訊埠數量上限」欄位。

  6. 按一下 [儲存]

gcloud

使用 gcloud compute routers nats update 指令

這個指令會讓 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_PORTS 必須是 2 的冪,且介於 3232768 之間。
  • MAX_PORTS:為每個 VM 分配的通訊埠數量上限。MAX_PORTS 必須是 2 的冪次,且可介於 6465536 之間。MAX_PORTS 必須大於 MIN_PORTS

修改 NAT 逾時時間

以下各節將說明 NAT 逾時和修改方式:

NAT 逾時

Cloud NAT 會使用下列通訊協定連線逾時時間。除非另有註明,否則這些逾時值都適用於公開 NAT 和私人 NAT。您可以修改預設的逾時值,以降低或提高重複使用的連接埠率。每個逾時值都是在有效利用 Cloud NAT 資源,以及可能對有效連線、流程或工作階段造成中斷之間取得平衡。

逾時 說明 Cloud NAT 預設 可自行設定

UDP 對應閒置逾時

RFC 4787 REQ-5

指定 UDP 流量必須停止傳送流量至端點的時間 (以秒為單位),以便移除 Cloud NAT 對應項目。

UDP 對應閒置逾時時間會影響兩個端點停止彼此傳送流量。也會影響需要較長時間回應的端點,或是網路延遲時間增加的情況。

您可以增加指定的逾時值,以降低重複使用埠的頻率。逾時值越大,代表通訊埠會保留較長的連線時間,並防止特定 UDP 通訊端點的流量暫停。

30 秒

TCP 已建立連線的閒置逾時時間

RFC 5382 REQ-5

指定連線閒置多久 (以秒為單位) 後,系統才會移除 Cloud NAT 對應項目。

TCP 已建立連線逾時時間會影響需要較長時間回應的端點,或網路延遲時間增加的情況。

如要開啟 TCP 連線,並在沒有保活機制下讓連線保持開啟狀態一段長時間,您可以增加逾時值。

1200 秒 (20 分鐘)

TCP 臨時連線閒置逾時時間

RFC 5382 REQ-5

指定 TCP 連線可處於半開啟狀態的時間長度 (以秒為單位),超過後才能刪除 Cloud NAT 對應項目。

當外部端點的連線時間超過指定時間,或是網路延遲時間增加時,TCP 暫時連線逾時時間會影響端點。與 TCP 已建立連線閒置逾時設定不同,TCP 暫時連線閒置逾時設定只會影響半開連線。

30 秒

注意:無論您為此逾時值設定的值為何,Cloud NAT 可能需要額外 30 秒,才能使用 Cloud NAT 來源 IP 位址和來源連接埠元組處理新連線。

TCP TIME_WAIT 逾時

RFC 5382 REQ-5

指定在 Cloud NAT 對應中,已關閉的 TCP 連線到期後,該連線保留的時間長度 (以秒為單位)。

TCP TIME_WAIT 逾時可保護內部端點,避免接收屬於重新傳送的已關閉 TCP 連線的無效封包。

您可以降低逾時值,以便改善 Cloud NAT 通訊埠的重複使用情形,但可能會導致從先前關閉的無關連線接收重傳封包。

120 秒

注意:無論您為此逾時值設定的值為何,Cloud NAT 可能需要額外 30 秒,才能使用 Cloud NAT 來源 IP 位址和來源連接埠元組處理新連線。如果您使用動態通訊埠分配功能,請將此逾時時間設為 30 秒以上,以免封包遭到捨棄。

ICMP Mapping Idle Timeout
(僅適用於 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. 按一下 [Advanced configurations] (進階設定)

  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. 按一下 [Advanced configurations] (進階設定)

  5. 移除要重設的任何使用者設定值。

  6. 按一下 [儲存]

移除的值會重設為預設值。

gcloud

使用 gcloud compute routers nats update 指令

這個指令會保留 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 逾時時間
停用動態通訊埠分配功能

後續步驟