設定及管理 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 規則。條件 3 由來源位址比對的預設網路位址轉譯 (NAT) 規則達成。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 位址。按一下 [完成]。
新增與
10.10.2.0/24流量相符的 NAT 規則,並將流量轉換為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 compute routers nats rules create 指令新增 NAT 規則。
新增使用
IP_ADDRESS_1的 NAT 規則,適用於來自10.10.1.0/24的流量:gcloud 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 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 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 ...]