Hybrid NAT

Hybrid NAT 屬於 Private NAT,可讓您在虛擬私有雲 (VPC) 網路與地端部署網路或其他雲端服務供應商網路之間,執行網路位址轉譯 (NAT) 作業。非Google Cloud 網路必須使用 Google Cloud的網路連線產品 (例如 Cloud InterconnectCloud VPN) 連線至 VPC 網路。

規格

除了一般 Private NAT 規格外,混合式 NAT 還有下列規格:

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

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

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

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

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

  • 設定混合式 NAT 的 Cloud Router 必須與 VPC 網路位於相同區域。

  • 設定混合式 NAT 的 Cloud Router 不得包含任何其他 NAT 設定。

基本 Hybrid NAT 設定和工作流程

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

Hybrid NAT 翻譯範例。
Hybrid NAT 轉譯範例 (按一下即可放大)。

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

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

Hybrid NAT 工作流程範例

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

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

混合式 NAT 會按照通訊埠預留程序,為網路中的每個 VM 預留下列 NAT 來源 IP 位址和來源通訊埠元組。舉例來說,Private NAT 閘道會為 vm-a 保留 64 個來源通訊埠:10.1.2.2:3400010.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,維持不變

後續步驟