以內部直通式網路負載平衡器做為下一個躍點

內部直通式網路負載平衡器是區域負載平衡器,可讓您透過內部 IP 位址執行服務及調度資源。內部直通式網路負載平衡器有另外一個應用實例,那就是依據路徑將封包轉送至最終目的地時使用的下一個躍點。如要這麼做,請將負載平衡器設為靜態路徑中的「下一個躍點」

查看本頁資訊之前,您應已熟悉下列概念:

在下列情況中,內部直通式網路負載平衡器下一個躍點非常實用:

  • 在多個 VM 之間平衡負載,這些 VM 會做為閘道或路由器 VM 運作。

  • 將閘道虛擬設備做為預設路徑的下一個躍點。完成這項設定後,虛擬私有雲 (VPC) 網路中的虛擬機器 (VM) 執行個體,就會透過一組已平衡負載的虛擬閘道 VM,將流量傳送至網際網路。

  • 使用同一組多重 NIC 閘道或路由器 VM 做為後端,透過多個負載平衡器以兩個或多個方向傳送流量。如要這麼做,請建立負載平衡器,並在每個虛擬私有雲網路中,將其做為靜態路徑的下一個躍點。每個內部直通式網路負載平衡器都在單一 VPC 網路中運作,並將流量分配到該網路中後端 VM 的網路介面。

架構

在下圖中,路由器 VM 的 VM 執行個體群組會做為兩個不同負載平衡器的後端。第一個內部直通式網路負載平衡器會將封包傳送至後端 VM 的 nic0,第二個內部直通式網路負載平衡器則會將封包傳送至相同後端的 nic1

負載平衡至多個 NIC。
負載平衡至多個 NIC (按一下可放大)。

使用內部直通式網路負載平衡器當做下一個躍點的優勢

如果負載平衡器是靜態路徑的下一個躍點,您不需要在定義路徑的虛擬私人雲端網路中,對用戶端 VM 的客體作業系統進行特殊設定。用戶端 VM 會透過虛擬私有雲網路路由,以bump-in-the-wire的方式將封包傳送至負載平衡器的後端。

只要使用內部直通式網路負載平衡器當做靜態路徑的下一個躍點,您就能享有獨立內部直通式網路負載平衡器可帶來的同等優勢。有了負載平衡器的健康狀態檢查功能,您就能確保新的連線會轉送至健康狀態良好的後端 VM。將代管執行個體群組做為後端,即可設定自動調度資源,依據服務需求擴充或縮減 VM 組合。

規格

以下是使用內部直通式網路負載平衡器做為下一個躍點的規格。

路徑

您可以建立靜態路徑,將 TCP、UDP 和其他通訊協定流量傳送至內部直通式網路負載平衡器,讓這個負載平衡器成為靜態路徑的下一個躍點。這個路徑可以是外部 (可公開轉送) CIDR 前置字串或內部 CIDR 前置字串,只要前置字串與子網路路徑不衝突即可。舉例來說,您可以將預設路徑 (0.0.0.0/0) 替換為可將流量導向至第三方後端 VM 的路徑,以便進行封包處理。

指定下一個躍點的選項

您可以透過下列兩種方式之一,指定內部直通式網路負載平衡器下一個躍點:

  • 使用轉送規則的名稱和區域
  • 使用轉送規則的 IP 位址

如要進一步瞭解內部直通式網路負載平衡器下一個躍點所在的專案和虛擬私有雲網路,請參閱「下一個躍點和功能」。

您可以使用 VPC 網路對等互連,與內部直通式網路負載平衡器下一個躍點交換靜態路徑。詳情請參閱「交換靜態路徑的選項」。

用戶端 IP 工作階段相依性

內部直通式網路負載平衡器提供兩種類似的「用戶端 IP 位址」工作階段相依性選項

  • 用戶端 IP (CLIENT_IP):封包來源 IP 位址和目的地 IP 位址的雙元組雜湊。如果內部直通式網路負載平衡器「不是」路徑的下一個躍點,傳送至負載平衡器轉送規則 IP 位址的封包會共用一個目的地 IP 位址,也就是轉送規則 IP 位址。在這種情況下,雙元組雜湊使用的其中一個位址會保持不變。因此,如果設定及運作正常的後端數量沒有變更,且封包的來源 IP 位址相同,這個雙元組工作階段親和性選項會選取相同的後端。
  • 用戶端 IP,無目的地 (CLIENT_IP_NO_DESTINATION):封包來源 IP 位址的一元組雜湊。使用內部直通式網路負載平衡器做為下一個躍點時,目的地 IP 位址通常會有所不同,因為目的地 IP 位址是路徑目的地屬性指定的位址。在這種情況下,即使設定及運作正常的後端數量不變,且封包的來源 IP 位址相同,兩元組雜湊「用戶端 IP」(CLIENT_IP) 工作階段相依性也無法選取相同後端。(如果只設定一個後端,則不在此限)。如要將來源 IP 位址相同的封包路由至同一個後端,請務必使用「用戶端 IP,無目的地」 (CLIENT_IP_NO_DESTINATION) 工作階段相依性選項。

目的地範圍

靜態路徑的目的地不能與子網路路徑相同或更加明確。請注意,「更具體」是指子網路遮罩較長。這項規則適用於所有靜態路徑,包括下一個躍點為內部直通式網路負載平衡器的路徑。舉例來說,假設您的子網路路徑為 10.140.0.0/20。靜態路徑的目的地不能相同 (10.140.0.0/20),也不能更明確,如 10.140.0.0/22 所示。

相同的虛擬私人雲端網路和地區

使用內部直通式網路負載平衡器做為下一個躍點的靜態路徑,僅限於下列項目:

  • 單一虛擬私有雲網路。負載平衡器和靜態路徑必須位於相同的虛擬私有雲網路。

  • 單一區域或所有區域。除非您設定全域存取權,否則靜態路徑只能供與負載平衡器位於相同地區的資源使用。即使路徑本身是整個 VPC 網路路徑表的一部分,這項區域限制仍會強制執行。如果啟用全域存取權,任何地區的資源都能使用靜態路徑。

通告靜態路徑

如要公告靜態路徑的前置字串 (目的地),可以使用 Cloud Router 的自訂通告模式。路徑播送的範圍取決於負載平衡器的全域存取設定,如下所示:

  • 停用全域存取權後,只有與負載平衡器位於相同區域的 VM、Cloud VPN 通道和 Cloud Interconnect 連結 (VLAN) 才能使用內部直通式網路負載平衡器。因此,只有在 Cloud Router 和負載平衡器位於相同地區時,自訂通告靜態路徑的前置字元才有意義。

  • 啟用全域存取權後,任何區域的 VM、Cloud VPN 通道和 Cloud Interconnect 連結 (VLAN) 都能使用內部直通式網路負載平衡器。啟用全域動態轉送後,地端系統就能使用任何已連線區域的靜態路徑。

下表摘要列出負載平衡器的存取權。

全域存取權 VPC 網路動態轉送模式 負載平衡器存取權
已停用 區域 可由相同區域中的路由器存取
已停用 全球 可由相同區域中的路由器存取
已啟用 區域 任何區域中的所有路由器都能存取
已啟用 全球 任何區域中的所有路由器都能存取

詳情請參閱內部直通網路負載平衡器和已連結的網路

作業順序

您必須先建立內部直通式網路負載平衡器,才能建立將其當做下一個躍點的靜態路徑。您必須先建立負載平衡器,才能建立路徑。如果您嘗試建立的路徑參照不存在的負載平衡器, Google Cloud 會傳回錯誤。

如要指定內部直通式網路負載平衡器下一個躍點,請使用轉送規則名稱和負載平衡器區域,或使用與轉送規則相關聯的內部 IP 位址。

建立下一個躍點參照內部直通式網路負載平衡器的路徑之後,您必須先刪除路徑才能刪除該負載平衡器。具體來說,除非沒有任何靜態路徑使用該負載平衡器做為下一個躍點,否則您不得刪除內部轉送規則。

後端需求

  • 您必須將所有內部直通式網路負載平衡器的後端 VM 設為允許 IP 轉送 (--can-ip-forward = True)。詳情請參閱執行個體和內部直通式網路負載平衡器下一個躍點的常見注意事項

  • 您無法使用後端為 Google Kubernetes Engine (GKE) 節點的內部直通式網路負載平衡器,做為靜態路徑的下一個躍點。只有在目的地符合叢集管理的 IP 位址時,節點上的軟體才能將流量傳送至 Pod,而非任意目的地。

處理 TCP、UDP 和其他通訊協定流量

當內部直通式網路負載平衡器部署為下一個躍點時, Google Cloud會將所有通訊埠的所有流量轉送至後端 VM,無論下列情況為何:

  • 轉送規則的通訊協定和通訊埠設定
  • 後端服務的通訊協定設定

內部直通式網路負載平衡器是路徑的下一個躍點,可順暢地轉送虛擬私有雲網路支援的所有通訊協定流量 (例如 TCP、UDP 和 ICMP)。 Google Cloud

其他事項

  • 支援的轉送規則。 Google Cloud 僅支援下一個躍點內部直通式網路負載平衡器轉送規則。 Google Cloud 支援其他負載平衡器、通訊協定轉送或 Private Service Connect 端點使用的下一個躍點轉送規則。

  • 規格方法和轉送規則網路與專案。您可以使用下列三種方法之一,指定下一個躍點轉送規則。您使用的規格方法會決定轉送規則的網路是否必須與路徑的網路相符,以及轉送規則可位於哪個專案。

    請選擇下列其中一種方法,並確保轉送規則的 IP 版本與您建立的靜態路徑 IP 版本相符:

    • 依據轉送規則名稱 (--next-hop-ilb) 和區域 (--next-hop-ilb-region):依據名稱和區域指定下一個躍點轉送規則時,轉送規則的網路必須與路徑的 VPC 網路相符。轉送規則必須位於與轉送規則網路相同的專案中 (獨立專案或共用虛擬私有雲主專案)。

    • 透過轉送規則資源連結:轉送規則的資源連結格式為 /projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE_NAME,其中 PROJECT_ID 是包含轉送規則的專案 ID,REGION 是轉送規則的區域,FORWARDING_RULE_NAME 則是轉送規則的名稱。透過資源連結指定下一個躍點轉送規則時,轉送規則的網路必須與路徑的 VPC 網路相符。轉送規則可位於任一專案,包括含有轉送規則網路的專案 (獨立專案或共用虛擬私有雲主專案),共用虛擬私有雲服務專案。

    • 透過轉送規則 IP 位址:以 IPv4 或 IPv6 位址指定下一個中繼站轉送規則時,轉送規則的網路可以是路由的 VPC 網路 VPC 網路,該網路透過 VPC 網路對等互連或 Network Connectivity Center 連線至路由的 VPC 網路。Network Connectivity Center 支援虛擬私有雲輻射網路中的下一個躍點內部直通式網路負載平衡器,但須符合連線的 Network Connectivity Center 需求。轉送規則可位於任一專案,包括含有轉送規則網路的專案 (獨立專案或共用虛擬私有雲主專案),共用虛擬私有雲服務專案。

  • 全域存取權的影響。使用內部直通式網路負載平衡器下一個躍點的自訂靜態路徑,會在所有區域中進行程式設計。下一個躍點是否可用,取決於負載平衡器的全域存取權設定。啟用全域存取權後,虛擬私有雲網路的所有區域都能存取負載平衡器下一個躍點。如果停用全域存取權,只有與負載平衡器位於相同區域的負載平衡器下一個躍點可供存取。如果停用全域存取權,從其他區域傳送至使用內部直通式網路負載平衡器下一個躍點的路徑的封包,就會遭到捨棄。

  • 所有後端健康狀態不良時。當內部直通式網路負載平衡器的所有後端都無法通過健康狀態檢查時,使用該負載平衡器下一個躍點的路徑仍會生效。系統會根據流量分配,將路徑處理的封包傳送至下一個躍點負載平衡器的其中一個後端。

  • 不支援使用共用內部 IP 位址的轉送規則 (--purpose=SHARED_LOADBALANCER_VIP)。下一個躍點內部直通式網路負載平衡器和具有通用 IP 位址的內部直通式網路負載平衡器轉送規則 是互斥功能。下一個躍點內部直通式網路負載平衡器必須使用負載平衡器轉送規則專屬的 IP 位址,這樣才能明確參照單一後端服務 (一個負載平衡器)。使用通用內部 IP 位址的轉送規則可以參照不同的後端服務 (不同的內部直通式網路負載平衡器)。

  • 多個路徑具有相同的目的地和優先順序,但下一個躍點是不同的內部直通網路負載平衡器。 Google Cloud 絕不會使用 ECMP 在兩個以上的下一個躍點內部直通網路負載平衡器之間分配流量。而是使用確定性內部演算法,Google Cloud 選取一個下一個躍點內部直通式網路負載平衡器。為避免這種模稜兩可的情況,您可以為每條路徑使用專屬的網路標記。

    如果靜態路徑具有不同的內部直通式網路負載平衡器下一個躍點,但優先順序和目的地相同,則Google Cloud 會選取單一下一個躍點。
  • 多個路徑具有相同的目的地、優先順序和下一個躍點內部直通式網路負載平衡器。如果沒有網路標記, Google Cloud 就不允許您建立多個靜態路徑,這些路徑具有相同的目的地、優先順序和內部直通式網路負載平衡器下一個躍點組合。使用網路標記時,您可以建立多個靜態路徑,這些路徑具有相同的目的地、優先順序和內部直通式網路負載平衡器下一個躍點組合。

用途

您可以在多項部署作業和拓撲中,將內部直通式網路負載平衡器當做下一個躍點。

請注意下列規範:

  • 每個 VM 介面必須位於獨立的 VPC 網路。

  • 在同一個虛擬私有雲網路的不同子網路之間,您無法使用後端 VM 或負載平衡器來轉送流量,這是因為系統無法覆寫子網路路徑。

  • 內部直通式網路負載平衡器屬於軟體定義型直接傳輸負載平衡器。封包會傳送至後端 VM,來源或目的地資訊 (位址或位址和連接埠) 不會變更。

    路由、封包篩選、Proxy 和位址轉譯等作業,是由做為內部直通式網路負載平衡器後端的虛擬設備 VM 負責。

使用內部直通式網路負載平衡器做為 NAT 閘道的下一個躍點

這個應用實例會平衡內部 VM 產生的負載,並將流量分配至多個 NAT 閘道執行個體,由這類執行個體負責將流量轉送至網際網路。

NAT 應用實例。
NAT 應用實例 (按一下即可放大)。

軸輻式架構:使用虛擬私有雲網路對等互連交換下一個躍點路徑

除了交換子網路路徑,您也可以設定 VPC 網路對等互連,匯出及匯入自訂靜態和動態路徑。下一個躍點為預設網際網路閘道的靜態路徑會遭到排除。包括使用下一個躍點內部直通式網路負載平衡器的自訂靜態路徑。

您可以使用下一個躍點防火牆虛擬設備來設定軸輻式拓撲,不過該項設備必須位於 hub 虛擬私有雲網路,方法如下:

  • hub 虛擬私有雲網路中,建立內部直通式網路負載平衡器,並以防火牆虛擬設備做為後端。
  • hub 虛擬私有雲網路中建立靜態路徑,並將下一個躍點設為內部直通式網路負載平衡器。
  • 使用虛擬私有雲網路對等互連,將 hub 虛擬私有雲網路連線至每個 spoke 虛擬私有雲網路。
  • 針對每個對等互連,將 hub 網路設定為匯出自訂路徑,並將對應的 spoke 網路設定為匯入自訂路徑。具有負載平衡器下一個躍點的路徑,是 hub 網路匯出的路徑之一。

根據轉送順序,輻式網路中會提供 hub VPC 網路中的下一個躍點防火牆設備負載平衡器:

  • 如果停用全域存取權,則只能連線至與負載平衡器位於相同地區的用戶端
  • 如果啟用全域存取權,則會根據路由順序,將流量傳送至所有區域的用戶端。
中樞和輪輻。
軸輻式 (按一下即可放大)。

負載平衡至多個 NIC

在下列應用實例中,後端 VM 是具備多個虛擬私有雲網路 NIC 的虛擬設備執行個體 (例如封包檢查、路由或閘道 VM)。這些虛擬設備執行個體可以是第三方提供的商業解決方案,也可以是您自行建構的解決方案。虛擬設備是具備多個 NIC 的 Compute Engine VM。

這個範例顯示代管 VM 執行個體群組中的單一後端虛擬設備。

在名為 testing 的 VPC 網路中,內部直通式網路負載平衡器具有名為 fr-ilb1 的轉送規則。在本範例中,這個負載平衡器會將流量分配到 nic0 介面。

在名為 production 的 VPC 網路中,另一個內部直通式網路負載平衡器具有名為 fr-ilb2 的轉送規則。這個負載平衡器會將流量分配到另一個介面,也就是本例中的 nic1

使用多重 NIC 負載平衡的流量。
透過多 NIC 負載平衡傳輸的流量 (按一下可放大)。

如需詳細設定,請參閱「負載平衡至多個後端 NIC」。

對稱雜湊

上述範例未使用來源網路位址轉譯 (SNAT)。 Google Cloud 使用對稱雜湊,因此不需要 SNAT。也就是說,如果封包屬於同一個流程,Google Cloud 會計算出相同的雜湊值。換句話說,如果來源 IP 位址:通訊埠與目的地 IP 位址:通訊埠互換,雜湊碼不會變更。

注意:

  • 自 2021 年 6 月 22 日起,建立內部直通式網路負載平衡器轉送規則時,系統會自動啟用對稱雜湊。

  • 如要在現有的內部直通式網路負載平衡器上啟用對稱雜湊,請按照「啟用對稱雜湊」一文所述,重新建立轉送規則和下一個躍點路徑。

  • 對稱雜湊僅支援內部直通式網路負載平衡器。

  • 針對 TCP 和 UDP 通訊協定,下列工作階段相依性類型支援對稱雜湊:

    • 用戶端 IP (CLIENT_IP)
    • 用戶端 IP 和通訊協定 (CLIENT_IP_PROTO)
    • 用戶端 IP、通訊協定和通訊埠 (CLIENT_IP_PORT_PROTO)

    如要進一步瞭解這些設定,請參閱「工作階段相依性選項」。

  • 如果使用案例因故需要 SNAT,您也可以選擇使用。

後續步驟