Hybrid NAT

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

規格

除了一般私人 NAT 規格外,混合型 NAT 還有以下規格:

  • 混合式 NAT 可讓 VPC 網路與內部部署網路或其他雲端服務供應商網路進行通訊,即使子網路的 IP 位址範圍重疊也不例外。使用 type=PRIVATE 的 NAT 設定後,虛擬私有雲網路中重疊和不重疊子網路的資源,都能連線至非Google Cloud網路中不重疊子網路的資源。
  • 如要啟用混合型 NAT,非Google Cloud 網路必須宣傳其動態路徑,以便虛擬私有雲網路學習並使用這些路徑。雲端路由器會從 Google Cloud的網路連線產品 (例如 Cloud Interconnect、高可用性 VPN 或經過設定可使用動態轉送功能的傳統 VPN) 學習這些動態路徑。這些動態路由的目的地是虛擬私人雲端網路以外的 IP 位址範圍。

    同樣地,對於回傳流量,您的 VPC 網路必須使用 Cloud Router 宣告私人 NAT 子網路路徑,且這個子網路路徑不得與已連線網路中的現有子網路重疊。

  • Hybrid NAT 會在從 VPC 網路傳送至地端部署網路或其他雲端服務供應商網路的流量上執行 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 轉譯示例 (按一下即可放大)。

在這個範例中,Hybrid NAT 的設定如下:

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

Hybrid NAT 工作流程範例

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

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

Hybrid NAT 會依循通訊埠保留程序,為網路中的每個 VM 保留下列 NAT 來源 IP 位址和來源通訊埠元組。舉例來說,私人 NAT 閘道會為 vm-a 保留 64 個來源通訊埠:10.1.2.2:3400010.1.2.2:34063

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

  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,未變更

後續步驟