調整 NAT 設定
設定 Cloud NAT 閘道設定 (公用 NAT 或私用 NAT) 後,您可以根據需求編輯設定。本頁列出可執行的工作,方便您調整 Cloud NAT 設定。
編輯設定可能會造成中斷,並導致現有的網路位址轉譯 (NAT) 連線中斷。如要進一步瞭解調整 Cloud NAT 設定的影響,請參閱「調整 NAT 設定對現有 NAT 連線的影響」。
查看通訊埠用量
修改每個 VM 的最低通訊埠用量前,請先查看每個 VM 的通訊埠用量。您可以使用compute.googleapis.com/nat/port_usage
指標取得這項資訊。
前往 Google Cloud 控制台的「Monitoring」頁面。
在導覽窗格中,選取「指標探索器」
。
展開「選取指標」選單,然後使用子選單選擇
compute.googleapis.com/nat/port_usage
指標:- 在「資源」部分選取「VM 執行個體」。
- 在「指標類別」部分,選取「Nat」。
- 在「指標」部分,選取「通訊埠用量」。
按一下 [套用]。
如要選取 Cloud NAT 閘道,請使用「篩選器」欄位。
在「Group by」(分組依據) 區段中,針對「labels」(標籤) 選取「instance_id」。
在「Grouping function」(分組函式) 清單中,選取「Max」(最大值)。
展開「更多選項」,然後將「校正函式」欄位設為「max」。
如要查看過去 30 天的用量,請指定
30d
。
如要進一步瞭解如何使用 Metrics Explorer,請參閱「在使用 Metrics Explorer 時選取指標」。
選擇每個 VM 的通訊埠數量下限
選擇適當的通訊埠數量下限,有助於盡量使用 NAT IP 位址。
增加每個 VM 的通訊埠數量前,請先考慮其他減少通訊埠用量的策略。
如要增加每個 VM 的通訊埠數量,請先考量閘道中每個 VM 的通訊埠用量。如要瞭解如何找出這項資料,請參閱「查看通訊埠用量」。
查看過去 30 天或您認為可代表 Cloud NAT 閘道的其他時間範圍內,使用的最大連接埠數。
執行下列其中一個步驟:
如果您使用靜態通訊埠分配功能,請設定每個 VM 的通訊埠數量,確保最小值等於目前的通訊埠用量尖峰。
如果使用動態通訊埠分配功能,請設定每個 VM 的通訊埠數量,確保最小值低於通訊埠用量尖峰,最大值高於通訊埠用量尖峰。
變更每個 VM 分配的預設通訊埠數量下限
如需設定每個 VM 的通訊埠數量下限相關說明,請參閱「選擇每個 VM 的通訊埠數量下限」。
如要瞭解變更最低連接埠分配量會造成哪些影響,請參閱下列章節:
如果 Cloud NAT 閘道已設定動態通訊埠分配功能,請參閱變更已設定動態通訊埠分配功能的通訊埠數量下限或上限。
主控台
前往 Google Cloud 控制台的「Cloud NAT」頁面。
按一下 Cloud NAT 閘道。
按一下「編輯」
。按一下 [Advanced configurations] (進階設定)。
修改「每個 VM 執行個體的最低通訊埠數量」欄位。
按一下 [儲存]。
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 閘道設定與該通訊埠分配類型相容。如果設定不相容,變更就會失敗。
確認每個 VM 的最低通訊埠設定是 2 的乘冪,且介於 32 到 32,768 之間。
主控台
前往 Google Cloud 控制台的「Cloud NAT」頁面。
按一下 Cloud NAT 閘道。
按一下「編輯」
。按一下 [Advanced configurations] (進階設定)。
選取或取消選取「啟用動態通訊埠分配功能」。
視需要調整「每個 VM 執行個體的最低通訊埠數量」和「每個 VM 執行個體的通訊埠數量上限」值。
按一下 [儲存]。
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
的次方,且介於32
和32768
之間。MAX_PORTS
:每個 VM 可分配的通訊埠數量上限。MAX_PORTS
必須是2
的次方,且介於64
和65536
之間。MAX_PORTS
必須大於MIN_PORTS
。預設值為65536
。
設定動態通訊埠分配功能時,變更通訊埠下限或上限
設定動態通訊埠分配功能後,您可以變更每個 VM 分配到的通訊埠數量下限或上限。
如需設定每個 VM 的通訊埠數量下限相關說明,請參閱「選擇每個 VM 的通訊埠數量下限」。
如要瞭解變更最低連接埠分配量會造成哪些影響,請參閱下列章節:
主控台
前往 Google Cloud 控制台的「Cloud NAT」頁面。
按一下 Cloud NAT 閘道。
按一下「編輯」
。按一下 [Advanced configurations] (進階設定)。
調整「每個 VM 執行個體的通訊埠數量下限」和「每個 VM 執行個體的通訊埠數量上限」欄位。
按一下 [儲存]。
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
的次方,且介於32
和32768
之間。MAX_PORTS
:每個 VM 可分配的通訊埠數量上限。MAX_PORTS
必須是2
的次方,且介於64
和65536
之間。MAX_PORTS
必須大於MIN_PORTS
。
修改網路位址轉譯逾時
以下各節說明 NAT 超時,以及如何修改:
網路位址轉譯 (NAT) 逾時
Cloud NAT 會對通訊協定連線使用下列逾時。除非另有註明,否則這些逾時設定同時適用於公開 NAT 和私人 NAT。您可以修改預設逾時值,藉此降低或提高連接埠的重複使用率。每個逾時值都是在有效運用 Cloud NAT 資源,以及可能中斷的有效連線、流程或工作階段之間取得平衡。
逾時 | 說明 | Cloud NAT 預設值 | 可自行設定 |
---|---|---|---|
UDP 對應閒置逾時 RFC 4787 REQ-5 |
指定 UDP 流量必須停止傳送至端點的時間 (以秒為單位),以便移除 Cloud NAT 對應。 如果兩個端點停止互相傳送流量,UDP 對應閒置逾時就會受到影響。如果端點需要較長的回應時間,或網路延遲時間增加,也會受到影響。 您可以增加指定的逾時值,降低可重複使用的連接埠速率。逾時值越大,表示通訊埠保留連線的時間越長,也能防止特定 UDP Socket 的流量暫停。 |
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 |
指定連線過期後,完全關閉的 TCP 連線在 Cloud NAT 對應中保留的時間 (以秒為單位)。 TCP TIME_WAIT 超時可避免內部端點收到屬於已關閉 TCP 連線的無效封包 (這些封包會重新傳輸)。 您可以縮短逾時值,以提高 Cloud NAT 通訊埠的重複使用率,但可能會收到來自不相關的先前已關閉連線的重新傳輸封包。 |
120 秒 注意:無論您為這個逾時設定的值為何,Cloud NAT 最多可能需要額外 30 秒,才能使用 Cloud NAT 來源 IP 位址和來源埠元組處理新連線。如果使用動態通訊埠配置,請將這個逾時時間設為 15 秒以上,以免封包遭到捨棄。 |
是 |
ICMP 對應閒置逾時 RFC 5508 REQ-2 |
指定時間 (以秒為單位),超過這個時間後,系統會關閉沒有任何流量的網際網路控制訊息通訊協定 (ICMP) Cloud NAT 對應。 如果端點的回應時間超過指定時間,或網路延遲時間增加,ICMP 對應閒置逾時就會影響端點。 |
30 秒 | 是 |
變更網路位址轉譯逾時
主控台
前往 Google Cloud 控制台的「Cloud NAT」頁面。
按一下 Cloud NAT 閘道。
按一下「編輯」
。按一下 [Advanced configurations] (進階設定)。
修改要變更的逾時值。
按一下 [儲存]。
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 超時重設為預設值
主控台
前往 Google Cloud 控制台的「Cloud NAT」頁面。
按一下 Cloud NAT 閘道。
按一下「編輯」
。按一下 [Advanced configurations] (進階設定)。
移除要重設的任何使用者設定值。
按一下 [儲存]。
系統會將移除的值重設為預設值。
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 超時 | 否 |
停用動態通訊埠分配 | 是 |
後續步驟
- 設定 Cloud NAT 的記錄和監控功能。
- 排解 NAT 設定的常見問題。