設定及管理 Cloud NAT 規則
本頁說明如何設定 Public NAT 的 Cloud NAT 規則。設定 Cloud NAT 規則前,請參閱 Cloud NAT 規則總覽。
建立 NAT 規則
如要建立 NAT 規則,Cloud NAT 會使用一般運算語言 (CEL),如「規則運算式語言」一文所述。如需可在 NAT 規則中使用的運算式範例,請參閱運算式範例。
如要建立 NAT 規則,請務必停用 NAT 閘道的與端點無關的對應。
建立以來源為準的規則
本節的步驟說明如何為下列情況建立以來源為準的 NAT 規則:
- 來自來源 IP 範圍
10.10.1.0/24的封包必須使用IP_ADDRESS_1。 - 來自來源 IP 範圍
10.10.2.0/24的封包必須使用IP_ADDRESS_2。 - 所有其他封包都必須使用
IP_ADDRESS_3。
針對條件 1 和 2,您需要建立兩項 NAT 規則。來源地址相符的預設 NAT 規則會滿足條件 3。IP_ADDRESS_1、IP_ADDRESS_2 和 IP_ADDRESS_3 是您要用於 NAT 的外部 IP 位址。
控制台
在現有 NAT 閘道中新增 NAT 規則
新增 NAT 規則,比對來自
10.10.1.0/24的流量,並將來源 IP 轉換為IP_ADDRESS_1。前往 Cloud de Confiance 控制台的「Cloud NAT」頁面。
按一下 NAT 閘道。
按一下 [編輯]。
在「Cloud NAT IP addresses」(Cloud NAT IP 位址) 中,選取「Manual」(手動)。
在「Cloud NAT Rules」(Cloud NAT 規則) 區段中,按一下「Add a rule」(新增規則)。
在「規則優先順序」欄位中,輸入
0(最高優先順序) 到65000(最低優先順序) 之間的數字。例如:100。在「比對 IP 範圍」部分,選取「來源」。
在「Source IP ranges」(來源 IP 範圍) 欄位中輸入
10.10.1.0/24。在「IP addresses」(IP 位址) 區段中,選取要用於
IP_ADDRESS_1的 IP 位址。按一下 [完成]。
新增 NAT 規則,比對來自
10.10.2.0/24的流量,並將其轉換為IP_ADDRESS_2。- 在「Cloud NAT Rules」(Cloud NAT 規則) 區段中,按一下「Add a rule」(新增規則)。
- 在「規則優先順序」欄位中,輸入
0(最高優先順序) 到65000(最低優先順序) 之間的數字。例如:200。 - 在「比對 IP 範圍」部分,選取「來源」。
- 在「Source IP ranges」(來源 IP 範圍) 欄位中輸入
10.10.2.0/24。 - 在「IP addresses」(IP 位址) 區段中,選取要用於
IP_ADDRESS_2的 IP 位址。 - 按一下 [完成]。
- 按一下「儲存」即可儲存這兩項規則。
gcloud
您可以按照下列各節的步驟建立規則檔案、建立使用規則檔案中規則的 Cloud NAT 閘道,或將規則新增至現有 NAT 閘道。
在現有 NAT 閘道中新增 NAT 規則
您可以使用 gcloud beta compute routers nats rules create 指令新增 NAT 規則。
新增使用
IP_ADDRESS_1的 NAT 規則,適用於來自10.10.1.0/24的流量:gcloud beta compute routers nats rules create NAT_RULE_PRIORITY \ --router=NAT_ROUTER \ --region=REGION \ --nat=NAT_CONFIG \ --match="inIpRange(source.ip, '10.10.1.0/24')" \ --source-nat-active-ips=IP_ADDRESS_1更改下列內容:
NAT_RULE_PRIORITY:唯一識別 NAT 規則的規則編號,從0(最高優先順序) 到65000(最低優先順序),例如100NAT_ROUTER:您用於 NAT 閘道的 Cloud Router 名稱REGION:NAT 閘道的區域NAT_CONFIG:NAT 設定的名稱IP_ADDRESS_1:您要用於符合規則封包的手動分配外部 IP 位址
新增使用
IP_ADDRESS_2的 NAT 規則,適用於來自10.10.2.0/24的流量:gcloud beta compute routers nats rules create NAT_RULE_PRIORITY \ --router=NAT_ROUTER \ --region=REGION \ --nat=NAT_CONFIG \ --match="inIpRange(source.ip, '10.10.2.0/24')" \ --source-nat-active-ips=IP_ADDRESS_2更改下列內容:
NAT_RULE_PRIORITY:唯一識別 NAT 規則的規則編號,從0(最高優先順序) 到65000(最低優先順序),例如200NAT_ROUTER:您用於 NAT 閘道的 Cloud Router 名稱REGION:NAT 閘道的區域NAT_CONFIG:NAT 設定的名稱IP_ADDRESS_2:要用於符合規則封包的手動分配外部 IP 位址
使用 NAT 規則檔案建立 NAT 閘道
以下程式碼範例為規則檔案。您可以修改這項規則檔案,以符合您的用途,或略過這個步驟 (如果您已有規則檔案)。
建立規則檔案
rules:
- ruleNumber: 100
match: inIpRange(source.ip, '10.10.1.0/24')
action:
sourceNatActiveIps:
- /projects/PROJECT_ID/regions/REGION/addresses/IP_ADDRESS_1
- ruleNumber: 200
match: inIpRange(source.ip, '10.10.2.0/24')
action:
sourceNatActiveIps:
- /projects/PROJECT_ID/regions/REGION/addresses/IP_ADDRESS_2
在上述範例中,IP_ADDRESS_1 和 IP_ADDRESS_2 是您要用於符合規則封包的手動分配外部 IP 位址。請針對每個 IP 位址替換下列項目:
PROJECT_ID:IP 位址的專案REGION:保留 IP 位址的區域
使用 NAT 規則檔案建立 NAT 閘道
下列指令會建立 NAT 閘道,並使用 NAT 規則檔案中的規則進行設定。如果已設定 NAT 閘道,請參閱「將 NAT 規則新增至現有 NAT 閘道」。
gcloud beta compute routers nats create NAT_CONFIG \
--router=NAT_ROUTER \
--region=REGION \
--nat-all-subnet-ip-ranges \
--nat-external-ip-pool=IP_ADDRESS_3,[IP_ADDRESS_4] \
--rules=PATH_TO_NAT_RULE_FILE
更改下列內容:
NAT_CONFIG:NAT 設定的名稱NAT_ROUTER:您要用於 NAT 閘道的 Cloud Router 名稱REGION:要建立 Cloud NAT 閘道的區域IP_ADDRESS_3和IP_ADDRESS_4:您要用於預設 NAT 規則的外部 IP 位址PATH_TO_NAT_RULE_FILE:NAT 規則檔案的路徑
建立以目的地為準的規則
下列設定步驟範例符合下列條件:
- 目的地地址為
198.51.100.10的封包必須使用網路位址轉譯 (NAT) IP 位址IP_ADDRESS_1。 - 目標位址為
198.51.100.20/30的封包必須使用 NAT IP 位址IP_ADDRESS_2或IP_ADDRESS_3。
您可以建立一項 NAT 規則,滿足上述各項條件。
控制台
在現有 NAT 閘道中新增 NAT 規則
新增使用
IP_ADDRESS_1將流量傳送至198.51.100.10的 NAT 規則。前往 Cloud de Confiance 控制台的「Cloud NAT」頁面。
按一下 [編輯]。
在「Cloud NAT IP addresses」(Cloud NAT IP 位址) 中,選取「Manual」(手動)。
在「Cloud NAT Rules」(Cloud NAT 規則) 區段中,按一下「Add a rule」(新增規則)。
在「規則優先順序」欄位中,輸入
0(最高優先順序) 到65000(最低優先順序) 之間的數字。例如:100。在「比對 IP 範圍」部分,選取「目的地」。
在「Destination IP ranges」(目的地 IP 範圍) 欄位中,輸入
198.51.100.10。在「IP addresses」(IP 位址) 區段中,選取要用於
IP_ADDRESS_1的 IP 位址。按一下 [完成]。
新增使用
IP_ADDRESS_2或IP_ADDRESS_3將流量傳送至198.51.100.20/30的 NAT 規則。- 在「Cloud NAT Rules」(Cloud NAT 規則) 區段中,按一下「Add a rule」(新增規則)。
- 在「規則優先順序」欄位中,輸入
0(最高優先順序) 到65000(最低優先順序) 之間的數字。例如:200。 - 在「比對 IP 範圍」部分,選取「目的地」。
- 在「Destination IP ranges」(目的地 IP 範圍) 欄位中,輸入
198.51.100.20/30。 - 在「IP addresses」(IP 位址) 區段中,選取要用於
IP_ADDRESS_2的 IP 位址。 - 按一下「新增 IP 位址」,然後選取要用於
IP_ADDRESS_3的 IP 位址。 - 按一下 [完成]。
- 按一下「儲存」即可儲存這兩項規則。
gcloud
您可以按照下列各節的步驟建立規則檔案、建立使用規則檔案中規則的 NAT 閘道,或將規則新增至現有 NAT 閘道。
在現有 NAT 閘道中新增 NAT 規則
您可以使用 NAT 規則指令新增 NAT 規則。將 NAT_RULE_PRIORITY 替換為要指派給規則的 NAT 規則優先順序 (從 0 (最高) 到 65000 (最低)),並將其他變數替換為符合您設定的資訊。
首先,請新增 NAT 規則,將流量從 IP_ADDRESS1 傳送至 198.51.100.10。
gcloud compute routers nats rules create NAT_RULE_PRIORITY \
--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_PRIORITY \
--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 指令列工具使用規則檔案。
控制台
- 前往 Cloud de Confiance 控制台的 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_PRIORITY 替換為 NAT 規則優先順序編號,並將其他變數替換為符合您設定的資訊。請注意 source-nat-drain-ips 選項,這個選項會禁止使用 IP_ADDRESS3 和 IP_ADDRESS4 建立與目的地的連線,但會保留現有連線。
gcloud compute routers nats rules update NAT_RULE_PRIORITY \
--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 規則
控制台
- 前往 Cloud de Confiance 控制台的 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_PRIORITY 替換為 NAT 規則優先順序編號,並將其他變數替換為符合您設定的資訊。
gcloud compute routers nats rules delete NAT_RULE_PRIORITY \
--router=ROUTER_NAME \
--nat=NAT_NAME \
[--region=REGION] [GLOBAL-FLAG ...]
描述 NAT 規則
控制台
您可以在 Cloud NAT 頁面查看 NAT 規則的相關資訊。
- 前往 Cloud de Confiance 控制台的 Cloud NAT 頁面。
- 按一下 NAT 閘道。
- 查看 NAT 規則。
如要進一步瞭解個別 NAT 規則,請執行下列操作:
- 按一下 [編輯]。
- 在「自訂規則」標題下方,選取 NAT 規則。
- 查看其他資訊。
- 按一下「取消」。
gcloud
如要說明 NAT 規則,請使用下列指令。將 NAT_RULE_PRIORITY 替換為 NAT 規則優先順序值,並將其他變數替換為符合您設定的資訊。
gcloud compute routers nats rules describe NAT_RULE_PRIORITY \
--router=ROUTER_NAME \
--nat=NAT_NAME \
[--region=REGION] [GLOBAL-FLAG ...]
列出 NAT 閘道中的所有 NAT 規則
控制台
您可以在 Cloud NAT 頁面查看 NAT 規則。
- 前往 Cloud de Confiance 控制台的 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 ...]