Cloud NAT 產品互動

本頁面說明 Cloud NAT 與其他 Google Cloud 產品之間的重要互動。

路徑互動

Public NAT 閘道只能使用下一個躍點為預設網際網路閘道的路徑。每個虛擬私有雲 (VPC) 網路都會從預設路徑開始,該路徑的目的地為 0.0.0.0/0,下一個躍點為預設網際網路閘道。如需重要背景資訊,請參閱路徑總覽

以下範例說明可能導致公用 NAT閘道無法運作的情況:

  • 如果您建立的靜態路徑下一個躍點設為任何其他類型的靜態路徑下一個躍點,則封包的目標 IP 位址會與路徑的目標相符,並傳送至該下一個躍點,而非預設網際網路閘道。舉例來說,如果您使用執行 NAT 網關、防火牆或 Proxy 軟體的虛擬機器 (VM) 執行個體,請建立靜態路徑,將流量導向這些 VM 做為下一個躍點。下一個躍點 VM 需要外部 IP 位址。因此,依賴下一個躍點 VM 的 VM 或下一個躍點 VM 本身的流量,無法使用公開 NAT閘道。

  • 如果您建立的自訂靜態路徑下一個躍點是 Cloud VPN 通道, 公開 NAT 不會使用該路徑。舉例來說,如果靜態路徑的目的地為 0.0.0.0/0,且下一個躍點為 Cloud VPN 通道,則會將流量導向該通道,而非預設的網際網路閘道。因此, Public NAT閘道無法使用該路由。同樣地, Public NAT閘道無法使用具有更明確目的地的靜態路徑,包括 0.0.0.0/1128.0.0.0/1

  • 如果內部部署路由器向管理 Cloud VPN 通道或 VLAN 連結的 Cloud Router 宣告動態路徑,公開 NAT閘道就無法使用該路徑。舉例來說,如果內部部署路由器宣傳目的地為 0.0.0.0/0 的動態路徑,0.0.0.0/0 就會導向 Cloud VPN 通道或 VLAN 附件。即使是更明確的目的地 (包括 0.0.0.0/1128.0.0.0/1),這項行為也適用。

私人 NAT 會使用下列路徑:

  • 對於 Network Connectivity Center 輪輻,Private NAT 會使用子網路路徑和動態路徑:
    • 如果兩個 VPC 輪輻連結至僅包含 VPC 輪輻的 Network Connectivity Center 中樞,Private NAT 會使用由連結 VPC 輪輻交換的子網路路徑。如要瞭解 VPC 輻條,請參閱VPC 輻條總覽
    • 如果 Network Connectivity Center 中樞包含 VPC 輻條和混合式輻條 (例如 Cloud Interconnect 的 VLAN 連結、Cloud VPN 通道或路由器機器 VM),私人 NAT 會使用混合式輻條透過 BGP 學習的動態路徑,以及由連結 VPC 輻條交換的子網路路徑。如要瞭解混合式輪輻,請參閱「混合式輪輻」。
  • 對於混合式 NAT,私人 NAT 會使用 Cloud Router 透過 Cloud Interconnect 或 Cloud VPN 學習到的動態路徑。

私人 Google 存取權互動

公開 NAT 閘道不會針對傳送至所選 Google API 和服務 外部 IP 位址的流量執行 NAT。相反地,當您設定公開 NAT閘道,以套用至該子網路範圍 (主要或次要) 時,Google Cloud 會自動為子網路 IP 位址範圍啟用私人 Google 存取權。只要閘道為子網路範圍提供 NAT,私人 Google 存取權就會套用至該範圍,且無法手動停用。

公用 NAT 閘道「不會」變更私人 Google 存取權的運作方式。詳情請參閱「私人 Google 存取權」。

Private NAT 閘道不適用於私人 Google 存取權。

共用虛擬私有雲互動

共用虛擬私有雲可讓單一機構中的多個服務專案,使用主專案中的共用虛擬私有雲網路。如要為使用共用虛擬私有雲網路的服務專案中的 VM 提供 NAT,您必須在主專案中建立 Cloud NAT 閘道。

虛擬私有雲網路對等互連互動

Cloud NAT 閘道會與單一區域和單一 VPC 網路中的子網路 IP 位址範圍建立關聯。在一個 VPC 網路中建立的 Cloud NAT 閘道,無法為使用 VPC 網路對等互連連線的其他 VPC 網路中的 VM 提供 NAT,即使對等互連網路中的 VM 與閘道位於相同區域也一樣。

GKE 互動

公用 NAT 閘道可為私人叢集中的節點和 Pod 執行 NAT,這是一種虛擬私有雲原生叢集。 Public NAT 閘道必須設定為至少套用叢集使用的子網路的下列子網路 IP 位址範圍:

  • 子網路的主要 IP 位址範圍 (由節點使用)
  • 叢集中 Pod 使用的子網路次要 IP 位址範圍
  • 叢集內 Service 使用的子網路次要 IP 位址範圍

為整個私人叢集提供 NAT 最簡單的方式,就是設定公開 NAT閘道,套用至叢集子網路的所有子網路 IP 位址範圍。

如要瞭解 VPC 原生叢集如何使用子網路 IP 位址範圍,請參閱「虛擬私有雲原生叢集的 IP 範圍」。

當 公開 NAT 閘道設為為私人叢集提供 NAT 時,會為每個節點 VM 保留 NAT 來源 IP 位址和來源連接埠。這些 NAT 來源 IP 位址和來源通訊埠可供 Pod 使用,因為 Pod IP 位址是以別名 IP 範圍的形式實作,並指派給每個節點 VM。

Google Kubernetes Engine (GKE) 虛擬私有雲叢集一律會為每個節點指派別名 IP 範圍,其中包含多個 IP 位址 (網路遮罩小於 /32)。

  • 如果已設定靜態通訊埠分配,則公用 NAT 通訊埠保留程序會為每個節點保留至少 1,024 個來源通訊埠。如果每個 VM 的最低通訊埠數指定值大於 1,024,系統會使用該值。

  • 如果已設定動態通訊埠分配功能,系統會一開始為每個節點分配指定的每個 VM 執行個體通訊埠數量下限值。系統會根據需求,在每個 VM 的最低和最高通訊埠數量指定值之間,變更分配的通訊埠數量。

如要瞭解 Pod IP 位址範圍和原生 VPC 叢集,請參閱「Pod 的子網路次要 IP 位址範圍」。

無論是否使用 公開 NAT ,只要 Pod 傳送封包至網際網路,Google Kubernetes Engine 就會使用各個節點上執行的軟體執行來源網路位址轉譯 (來源 NAT 或 SNAT),除非您變更了叢集的 IP 假冒設定。如果您需要對 Pod 的輸出流量進行精細控管,可以使用網路政策

在某些情況下, 公開 NAT 也適用於非私人 VPC 原生叢集。由於非私人叢集中的節點具有外部 IP 位址,Cloud NAT 不會處理從節點主要內部 IP 位址傳送的封包。不過,如果符合下列兩個條件, 公開 NAT 閘道就能處理從非私人叢集中的 Pod 傳送的封包:

  • 對於虛擬私人雲端原生叢集,公開 NAT閘道會設為套用至叢集 Pod 的次要 IP 位址範圍。

  • 叢集的 IP 假冒設定未針對從 Pod 傳送至網際網路的封包,在叢集內執行 SNAT。

以下範例說明Public NAT與 GKE 的互動情形:

透過 GKE 使用 Public NAT。
Public NAT 搭配 GKE (按一下可放大)。

在本例中,您希望容器能進行 NAT 轉譯。如要為所有容器和 GKE 節點啟用 NAT,您必須選擇 Subnet 1 的所有 IP 位址範圍做為 NAT 候選項目:

  • 子網路主要 IP 位址範圍:10.240.0.0/24
  • Pod 使用的子網路次要 IP 位址範圍:10.0.0.0/16

您無法只為 Pod1Pod2 啟用 NAT。

Private NAT 閘道可為私人叢集和非私人叢集中的節點和 Pod 執行 NAT。私人 NAT 閘道會自動套用至叢集使用的私人子網路的所有子網路 IP 位址範圍。

直接虛擬私有雲輸出互動

Cloud NAT 閘道可為使用直接虛擬私有雲輸出功能設定的 Cloud Run 資源提供網路位址轉譯 (NAT)。如要讓 Cloud Run 使用 Cloud NAT 閘道來進行公用 NAT 或私人 NAT,請設定下列項目:

  • 部署 Cloud Run 資源時,請設定 --vpc-egress 旗標。如果您想使用公開 NAT,則必須將值設為 all-traffic

  • 使用下列設定設定 Cloud NAT 閘道:

    • 設定 --nat-custom-subnet-ip-ranges 旗標,指定哪些來源子網路範圍可以使用閘道。將值設為部署 Cloud Run 資源的子網路名稱。
    • --endpoint-types 標記的值設為 ENDPOINT_TYPE_VM
    • 針對公開 NAT,請確認 --min-ports-per-vm 旗標的值設為單一 Cloud Run 執行個體所需的通訊埠數量的兩倍。針對私人 NAT,此標記必須設為每個 Cloud Run 執行個體所需的連接埠數量的四倍。

    • 如果您想設定手動 NAT IP 位址分配作業 (僅限公開 NAT),請為閘道指派足以涵蓋 VM 執行個體和閘道提供的 Cloud Run 執行個體總數的 IP 位址。

直接虛擬私有雲輸出流量的 Cloud NAT 記錄不會顯示 Cloud Run 資源名稱。

連線能力測試互動

您可以使用連線能力測試,檢查使用 Cloud NAT 設定的網路端點之間的連線。 您可以在使用 Public NAT 閘道Private NAT 閘道 (或兩者皆是) 的網路上執行連線測試。

在「連線測試詳細資料」頁面的「設定分析追蹤記錄」窗格中查看 NAT 設定詳細資料。

Cloud Load Balancing 互動

Google Cloud 區域性內部應用程式負載平衡器區域性外部應用程式負載平衡器會與多個區域性網際網路網路端點群組 (NEG) 後端通訊。為區域網際網路 NEG 設定 Cloud NAT 閘道,即可分配自己的外部 IP 位址範圍, Google Cloud 流量應從哪裡發出。健康狀態檢查和資料層流量來自您指派的 NAT IP 位址。

其他 Google Cloud 外部負載平衡器和健康狀態檢查系統會使用特殊路由路徑與 VM 通訊。後端 VM 不需要外部 IP 位址,Cloud NAT 閘道也不會管理負載平衡器和健康狀態檢查的通訊。詳情請參閱「Cloud Load Balancing 總覽」和「健康狀態檢查總覽」。

Private Service Connect 已傳播的連線互動

在同一個虛擬私有雲輪輻中,如果同時使用 Network Connectivity Center 的 Private NATPrivate Service Connect 傳播連線,則適用下列規定:

  • 如果子網路已設定 Private NAT,從子網路傳送至 Private Service Connect 的傳播連線流量就會遭到捨棄。

  • 為避免捨棄來自不重疊子網路的流量,請在設定私人 NAT 時考量下列事項:

    • 使用 --nat-custom-subnet-ip-ranges 旗標指定重疊的子網路。
    • 請勿指定需要存取已傳播連線的非重疊子網路。
    • 請勿使用 --nat-all-subnet-ip-ranges 旗標。

後續步驟