Hybrid NAT

Hybrid NAT 可在虛擬私有雲 (VPC) 網路與地端部署或另一個雲端服務供應商網路中的目的地之間,執行網路位址轉譯 (NAT)。網路必須使用 Google Cloud網路連線產品 (例如 Cloud Interconnect 或 Cloud VPN) 連線。

本頁面的資訊僅適用於 IPv4 流量。如要瞭解 IPv6 流量,請參閱「Private NAT 中的 NAT64」。

規格

除了一般 Private NAT 規格外,Hybrid NAT 還有下列規格:

  • 即使虛擬私有雲網路的子網路 IP 位址範圍與地端部署網路或其他雲端服務供應商網路重疊,Hybrid NAT 仍可讓虛擬私有雲網路與這些網路通訊。使用 type=PRIVATE 的 NAT 設定,虛擬私有雲網路中重疊和非重疊的子網路資源,都能連線至非Google Cloud網路中非重疊的子網路資源。
  • 如要啟用 Hybrid NAT,非Google Cloud 網路必須宣傳動態路徑,虛擬私有雲網路才能學習及使用這些路徑。Cloud Router 會從 Google Cloud的網路連線產品 (例如 Cloud Interconnect、高可用性 VPN 或已設定動態轉送的傳統版 VPN) 學習這些動態路由。這些動態路由的目的地是 VPC 網路外部的 IP 位址範圍。

    同樣地,對於回程流量,您的虛擬私有雲網路必須使用 Cloud Router 通告 Private NAT 子網路路徑,且這個子網路路徑不得與連線網路中的現有子網路重疊。

  • Hybrid NAT 會對從虛擬私有雲網路傳輸至地端部署網路或其他雲端服務供應商網路的流量執行 NAT。網路必須透過 Cloud Interconnect 或 Cloud VPN 連線。

  • 只有在啟用動態轉送時,Hybrid NAT 才會支援現有的傳統版 VPN 通道。

  • 您需要使用相符運算式建立自訂 NAT 規則 nexthop.is_hybrid。NAT 規則會指定用途為 PRIVATE_NAT 的子網路中的 NAT IP 位址範圍,虛擬私有雲網路中的資源可使用這些位址與其他網路通訊。

  • 設定 Hybrid NAT 的 Cloud Router 必須與虛擬私有雲網路位於相同區域。

  • Hybrid NAT 不會轉換Hybrid Subnets的流量。詳情請參閱「Hybrid Subnets interactions」。

基本 Hybrid NAT 設定和工作流程

下圖顯示基本混合式 NAT 設定:

Hybrid NAT 轉譯範例。
混合式 NAT 轉譯範例 (按一下可放大)。

在本範例中,混合型 NAT 設定如下:

  • pvt-nat-gw 閘道是在 vpc-a 中設定,適用於 us-east1 區域中 subnet-a 的所有 IP 位址範圍。
  • Cloud Router 和地端部署或其他雲端服務供應商的路由器會交換下列子網路路徑:
    • Cloud Router 會向外部路由器 advertise 10.1.2.0/29。
    • 外部路由器會向 Cloud Router advertise 192.168.2.0/24。
  • 使用 pvt-nat-gw 的 NAT IP 位址範圍,vpc-a 中 subnet-a 的虛擬機器 (VM) 執行個體可以將流量傳送至地端部署網路或其他雲端服務供應商網路的 subnet-b 中的 VM,即使 vpc-a 的 subnet-a 與非Google Cloud 網路中的另一個子網路重疊也沒問題。

Hybrid NAT 工作流程範例

在上圖中,vm-a (內部 IP 位址為 192.168.1.2) 位於subnet-a vpc-a 中,需要從 vm-b (內部 IP 位址為 192.168.2.2) 位於地端部署網路或其他雲端供應商網路的 subnet-b 中下載更新。Cloud Interconnect 可將 VPC 網路連線至地端部署網路或其他雲端服務供應商網路。假設非Google Cloud 網路包含另一個與 vpc-a 中的子網路重疊的子網路 192.168.1.0/24。如要讓 subnet-a 與非Google Cloud 網路的 subnet-b 通訊,您需要在 vpc-a 中設定 Private NAT 閘道 pvt-nat-gw,如下所示:vpc-a

  • 指定用途為 PRIVATE_NAT 的 Private NAT 子網路,例如 10.1.2.0/29。設定 Private NAT 閘道前,請先建立這個子網路。請確保這個子網路不會與任何已連線網路中的現有子網路重疊。
  • 使用 match='nexthop.is_hybrid' 建立 NAT 規則。
  • 設定 Private NAT 閘道,將其套用至 subnet-a 的所有 IP 位址範圍。

混合式 NAT 會按照通訊埠保留程序,為網路中的每個 VM 保留下列 NAT 來源 IP 位址和來源通訊埠元組。舉例來說,Private NAT 閘道會為 vm-a 保留 64 個來源通訊埠:10.1.2.2:34000 到 10.1.2.2:34063。

當 VM 使用 TCP 通訊協定將封包傳送至更新伺服器 192.168.2.2 的目標通訊埠 80 時,會發生下列情況:

  1. VM 會傳送具有下列屬性的要求封包:

    • 來源 IP 位址:192.168.1.2,VM 的內部 IP 位址
    • 來源通訊埠:24000,VM 作業系統選擇的臨時來源通訊埠
    • 目的地地址:192.168.2.2,更新伺服器的 IP 位址
    • 目的地通訊埠:80,HTTP 流量傳送至更新伺服器的目的地通訊埠
    • 通訊協定:TCP
  2. pvt-nat-gw 閘道會對輸出流量執行來源網路位址轉譯 (SNAT 或來源 NAT),重新編寫要求封包的 NAT 來源 IP 位址和來源通訊埠:

    • NAT 來源 IP 位址:10.1.2.2,來自 VM 保留的 NAT 來源 IP 位址和來源通訊埠元組
    • 來源通訊埠:34022,這是 VM 其中一個預留來源通訊埠元組中未使用的來源通訊埠
    • 目的地地址:192.168.2.2,未變更
    • 目的地通訊埠:80,未變更
    • 通訊協定:TCP,維持不變
  3. 更新伺服器會傳送回應封包,並透過下列屬性抵達 pvt-nat-gw 閘道:

    • 來源 IP 位址:192.168.2.2,更新伺服器的內部 IP 位址
    • 來源通訊埠:80,更新伺服器的 HTTP 回應
    • 目的地地址:10.1.2.2,與要求封包的原始 NAT 來源 IP 位址相符
    • 目的地通訊埠:34022,與要求封包的來源通訊埠相符
    • 通訊協定:TCP,維持不變
  4. pvt-nat-gw 閘道會對回應封包執行目的地網路位址轉譯 (DNAT),並改寫回應封包的目的地地址和目的地連接埠,以便將封包傳送至要求更新的 VM,並具備下列屬性:

    • 來源 IP 位址:192.168.2.2,未變更
    • 來源通訊埠:80,未變更
    • 目的地地址:192.168.1.2,VM 的內部 IP 位址
    • 目的地通訊埠:24000,與要求封包的原始暫時性來源通訊埠相符
    • 通訊協定:TCP,維持不變

後續步驟