設定及管理 Cloud NAT 規則
本頁面說明如何設定 Cloud NAT 規則。設定 Cloud NAT 規則前,請參閱 Cloud NAT 規則總覽。
建立網路位址轉譯 (NAT) 規則
NAT 規則是使用一般運算語言語法編寫。如要進一步瞭解規則運算式語言,請參閱「規則運算式語言」。
下列設定步驟範例可滿足下列條件:
- VM 必須使用 NAT IP 位址和資源名稱
IP_ADDRESS1
,才能將流量傳送至目的地198.51.100.10
。 - VM 必須使用 NAT IP 位址和資源名稱
IP_ADDRESS2
或IP_ADDRESS3
,才能將流量傳送至198.51.100.20/30
。
您可以建立一個 NAT 規則來滿足這些條件。
控制台
在現有的網路位址轉譯 (NAT) 閘道中新增 NAT 規則
新增 NAT 規則,將流量從 IP_ADDRESS1 傳送至 198.51.100.10
。
- 在 Google Cloud 控制台中,前往「Cloud NAT」頁面。
- 選取 NAT 閘道。
- 選取 [編輯]。
- 在「NAT 規則」下方,選取「新增規則」。
- 在「Match」欄位中輸入
198.51.100.10
。 - 在「IP address」選單中,選取您用於 IP_ADDRESS1 的 IP 位址。
- 在「Rule number」(規則編號) 欄位中輸入
100
。 - 選取「完成」。
新增 NAT 規則,將流量從 IP_ADDRESS2 或 IP_ADDRESS3 傳送至 198.51.100.20/30
。
- 在「NAT 規則」下方,選取「新增規則」。
- 在「Match」欄位中輸入
198.51.100.20/30
。 - 在「IP address」選單中,選取您用於 IP_ADDRESS2 的 IP 位址。
- 選取「Add IP address」(新增 IP 位址),然後選取您用於 IP_ADDRESS3 的 IP 位址。
- 在「Rule number」(規則編號) 欄位中輸入
200
。 - 選取「完成」。
- 選取「儲存」即可儲存兩個規則。
gcloud
您可以按照下列各節中的步驟建立規則檔案、建立使用規則檔案中的規則的 NAT 閘道,或將規則新增至現有的 NAT 閘道。
在現有的網路位址轉譯 (NAT) 閘道中新增 NAT 規則
您可以使用 NAT 規則指令新增 NAT 規則。將 NAT_RULE_NUMBER
替換為所需的 NAT 規則編號,並將其他變數替換為符合您設定的資訊。
首先,新增 NAT 規則,將流量從 IP_ADDRESS1 傳送至 198.51.100.10
。
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 ...]
接著,新增 NAT 規則,將流量從 IP_ADDRESS2 或 IP_ADDRESS3 傳送至 198.51.100.20/30
。
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
指令列工具的規則檔案。
控制台
- 在 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_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 規則
控制台
- 在 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 規則
控制台
您可以在 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 規則
控制台
您可以在 Cloud NAT 頁面上查看 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 ...]