外部直通式網路負載平衡器屬於區域性第 4 層負載平衡器,可將外部流量分配給與負載平衡器位於相同區域的後端 (執行個體群組或網路端點群組 (NEG))。這些後端必須位於相同區域和專案,但可以位於不同的 VPC 網路。這些負載平衡器是以 Maglev 和 Andromeda 網路虛擬化堆疊為基礎建構而成。
外部直通式網路負載平衡器可接收來自下列來源的流量:
- 網際網路上的任何用戶端
- Trusted Cloud 具備外部 IP 的 VM
- Trusted Cloud 可透過 Cloud NAT 或執行個體型 NAT 存取網際網路的 VM
外部直通式網路負載平衡器不是 Proxy。負載平衡器本身不會終止使用者連線,負載平衡封包會傳送至後端 VM,來源和目的地 IP 位址、通訊協定和通訊埠 (如適用) 都不會變更。後端 VM 隨即會終止使用者連線。來自後端 VM 的回應會直接傳送至用戶端,而不會透過負載平衡器傳回。這個程序稱為伺服器直接回傳 (DSR)。
後端服務型外部直通式網路負載平衡器支援下列功能:
- 代管和非代管執行個體群組後端。後端服務型外部直通式網路負載平衡器支援將代管和非代管執行個體群組當成後端。代管執行個體群組可自動執行後端管理作業,與非代管執行個體群組相比,可提供更出色的擴充性和可靠性。
- 區域性 NEG 後端。後端服務型外部直通式網路負載平衡器支援搭配
GCE_VM_IP
端點使用可用區 NEG。可用區性 NEGGCE_VM_IP
端點可讓您執行下列操作:- 將封包轉送至任何網路介面,而不只是
nic0
。 - 將同一個
GCE_VM_IP
端點放在兩個以上的可用區 NEG 中,並連線至不同的後端服務。
- 將封包轉送至任何網路介面,而不只是
- 支援多種通訊協定。後端服務型外部直通式網路負載平衡器可對 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量進行負載平衡。
- 支援 IPv6 連線。後端服務型外部直通式網路負載平衡器可處理 IPv4 和 IPv6 流量。
- 精細的流量分配控制。後端服務可根據設定的工作階段相依性、連線追蹤政策和加權負載平衡設定,分配流量。您也可以設定後端服務,啟用連線排除功能,並為負載平衡器指定容錯移轉後端。這些設定大多有預設值,可讓您快速上手。詳情請參閱「外部直通網路負載平衡器的流量分配」。
- 支援非舊版健康狀態檢查。以後端服務為基礎的外部直通網路負載平衡器可讓您使用符合流量類型 (TCP、SSL、HTTP、HTTPS 或 HTTP/2) 的健康狀態檢查,並分散流量。
- Google Cloud Armor 整合。Google Cloud Armor 支援外部直通式網路負載平衡器的進階網路 DDoS 防護功能。詳情請參閱「設定進階網路 DDoS 防護功能」。
GKE 整合。如果您在 GKE 中建構應用程式,建議使用內建的 GKE Service 控制器,代表 GKE 使用者部署Trusted Cloud 負載平衡器。這與本頁所述的獨立負載平衡架構相同,但生命週期完全由 GKE 自動化控管。
相關 GKE 說明文件:
架構
下圖說明外部直通式網路負載平衡器的元件:
負載平衡器由數個設定元件組成。單一負載平衡器可包含下列項目:
- 一或多個區域外部 IP 位址
- 一或多項區域外部轉送規則
- 一個區域外部後端服務
- 一或多個後端:全為執行個體群組,或全為區域 NEG 後端 (
GCE_VM_IP
端點) - 與後端服務相關聯的健康狀態檢查
此外,您必須建立防火牆規則,允許負載平衡流量和健康狀態檢查探測器連線至後端 VM。
IP 位址
外部直通式網路負載平衡器至少需要一項轉送規則。轉送規則會參照可從網際網路任何位置存取的區域外部 IP 位址。
- 如果是 IPv4 流量,轉送規則會參照單一區域外部 IPv4 位址。地區性外部 IPv4 位址來自各 Trusted Cloud 地區專屬的集區。IP 位址可以是保留的靜態位址或臨時位址。
如果是 IPv6 流量,轉送規則會參照雙重堆疊或僅限 IPv6 (搶先版) 子網路的 IPv6 位址
/96
範圍。子網路必須在虛擬私有雲網路中指派外部 IPv6 子網路範圍。外部 IPv6 位址僅適用於進階級。如要進一步瞭解 IPv6 支援,請參閱 VPC 說明文件中的「IPv6 子網路範圍」和「IPv6 位址」。
如果刪除轉送規則後,您需要保留與專案相關聯的位址以供重複使用,或需要多個轉送規則參照相同的 IP 位址,請為轉送規則使用保留的 IP 位址。
外部直通式網路負載平衡器支援標準級和進階級,適用於地區性外部 IPv4 位址。IP 位址和轉送規則必須使用相同的網路層級。地區性外部 IPv6 位址僅適用於進階級。
轉送規則
區域性外部轉送規則會指定負載平衡器接收流量的通訊協定和通訊埠。由於外部直通式網路負載平衡器不是 Proxy,因此會將流量傳送至後端,且通訊協定和通訊埠與封包相同 (如果封包攜帶通訊埠資訊)。轉送規則與 IP 位址一同組成負載平衡器的前端。
負載平衡器會保留連入封包的來源 IP 位址。連入封包的目的地 IP 位址是與負載平衡器轉送規則相關聯的 IP 位址。
傳入流量會與轉送規則相符,轉送規則是特定 IP 位址 (IPv4 位址或 IPv6 位址範圍)、通訊協定,以及通訊埠(如果通訊協定是以通訊埠為準) 的組合。通訊埠可以是單一通訊埠、通訊埠範圍或所有通訊埠。轉送規則隨後會將流量導向負載平衡器的後端服務。
如果轉送規則參照 IPv4 位址,則轉送規則不會與任何子網路建立關聯。也就是說,其 IP 位址來自任何Trusted Cloud 子網路範圍以外。
如果轉送規則參照
/96
IPv6 位址範圍,轉送規則就必須與子網路建立關聯,且該子網路必須是 (a) 雙堆疊,且 (b) 具有外部 IPv6 子網路範圍 (--ipv6-access-type
設為EXTERNAL
)。轉送規則參照的子網路可以與後端執行個體使用的子網路相同,但如果選擇,後端執行個體也可以使用個別的子網路。如果後端執行個體使用不同的子網路,則必須符合下列條件:
外部直通式網路負載平衡器至少需要一項轉送規則。 您可以設定轉送規則,將來自特定來源 IP 位址範圍的流量導向特定後端服務 (或目標執行個體)。詳情請參閱流量導向。您可以為同一個負載平衡器定義多個轉送規則,詳情請參閱「多個轉送規則」。
如要讓負載平衡器同時處理 IPv4 和 IPv6 流量,請建立兩個轉送規則:一個規則用於 IPv4 流量,指向 IPv4 (或雙重堆疊) 後端;另一個規則用於 IPv6 流量,僅指向雙重堆疊後端。IPv4 和 IPv6 轉送規則可以參照相同的後端服務,但後端服務必須參照雙重堆疊後端。
轉送規則通訊協定
外部直通式網路負載平衡器支援下列轉送規則的通訊協定選項:TCP
、UDP
和 L3_DEFAULT
。
使用 TCP
和 UDP
選項設定 TCP 或 UDP 負載平衡。L3_DEFAULT
通訊協定選項可讓外部直通網路負載平衡器,平衡 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量的負載。
除了支援 TCP 和 UDP 以外的通訊協定,L3_DEFAULT
也讓單一轉送規則能夠服務多個通訊協定。舉例來說,IPsec 服務通常會處理 ESP 和以 UDP 為基礎的 IKE 與 NAT-T 流量組合。L3_DEFAULT
選項可設定單一轉送規則,處理所有這些通訊協定。
使用 TCP
或 UDP
通訊協定的轉送規則,可以參照使用與轉送規則相同通訊協定的後端服務,也可以參照通訊協定為 UNSPECIFIED
的後端服務。L3_DEFAULT
轉送規則只能參照通訊協定為 UNSPECIFIED
的後端服務。
如果您使用 L3_DEFAULT
通訊協定,必須設定轉送規則,接受所有通訊埠的流量。如要設定所有連接埠,請使用 Google Cloud CLI 設定 --ports=ALL
,或使用 API 將 allPorts
設為 True
。
下表概略說明如何針對不同通訊協定使用這些設定。
要進行負載平衡的流量 | 轉送規則通訊協定 | 後端服務通訊協定 |
---|---|---|
TCP | TCP |
TCP 或UNSPECIFIED |
L3_DEFAULT |
UNSPECIFIED |
|
UDP | UDP |
UDP 或UNSPECIFIED |
L3_DEFAULT |
UNSPECIFIED |
|
ESP、GRE、ICMP/ICMPv6 (僅限回應要求) | L3_DEFAULT |
UNSPECIFIED |
多個轉送規則
您可以為同一個外部直通式網路負載平衡器設定多個地區外部轉送規則。每個轉送規則可以有不同的地區外部 IP 位址,或者多個轉送規則可以有相同的地區外部 IP 位址。
對於這些使用案例,不妨試著設定多個地區外部轉送規則:
- 您必須為同一個後端服務設定多個外部 IP 位址。
- 您必須為相同的外部 IP 位址設定不同的通訊協定,或不重疊的通訊埠或通訊埠範圍。
- 您需要將來自特定來源 IP 位址的流量導向特定負載平衡器後端。
Trusted Cloud 要求傳入封包最多只能符合一項轉送規則。除了下一節討論的導向轉送規則外,使用相同地區外部 IP 位址的兩個以上轉送規則,必須根據下列限制條件,具有不重複的通訊協定和通訊埠組合:
- 如果為通訊協定的所有通訊埠設定轉送規則,就無法使用相同通訊協定和 IP 位址建立其他轉送規則。
使用
TCP
或UDP
通訊協定的轉送規則可以設定為使用所有通訊埠,也可以設定為使用特定通訊埠。舉例來說,如果您使用 IP 位址198.51.100.1
、TCP
通訊協定和所有通訊埠建立轉送規則,就無法再使用 IP 位址198.51.100.1
和TCP
通訊協定建立任何其他轉送規則。您可以建立兩個轉送規則,兩者都使用 IP 位址198.51.100.1
和TCP
通訊協定,但每個規則必須有專屬通訊埠或不重疊的通訊埠範圍。舉例來說,您可以使用 IP 位址198.51.100.1
和 TCP 通訊協定建立兩個轉送規則,其中一個轉送規則的通訊埠為80,443
,另一個則使用通訊埠範圍81-442
。 - 每個 IP 位址只能建立一個
L3_DEFAULT
轉送規則。這是因為L3_DEFAULT
通訊協定定義上會使用所有通訊埠。在此情況下,「所有通訊埠」一詞包含不含通訊埠資訊的通訊協定。 單一
L3_DEFAULT
轉送規則可與使用特定通訊協定 (TCP
或UDP
) 的其他轉送規則共存。如果使用相同 IP 位址但通訊協定更具體的轉送規則存在,則L3_DEFAULT
轉送規則可做為最後手段。只有在封包的目的地 IP 位址、通訊協定和目的地通訊埠與通訊協定專屬轉送規則不符時,L3_DEFAULT
轉送規則才會處理傳送至目的地 IP 位址的封包。為說明這點,請參考以下兩種情境。在這兩種情況下,轉送規則都使用相同的 IP 位址
198.51.100.1
。- 情境 1:第一個轉送規則使用
L3_DEFAULT
通訊協定。第二個轉送規則會使用TCP
通訊協定和所有通訊埠。 傳送至198.51.100.1
任何目的地通訊埠的 TCP 封包,都會由第二條轉送規則處理。使用不同通訊協定的封包會由第一個轉送規則處理。 - 情境 2. 第一個轉送規則使用
L3_DEFAULT
通訊協定。第二個轉送規則使用TCP
通訊協定和通訊埠 8080。傳送至198.51.100.1:8080
的 TCP 封包會由第二個轉送規則處理。所有其他封包 (包括傳送至不同目的地通訊埠的 TCP 封包) 都會由第一個轉送規則處理。
- 情境 1:第一個轉送規則使用
選取轉送規則
Trusted Cloud 使用這項淘汰程序,從與封包目的地 IP 位址相符的轉送規則候選項目集開始,選取一或零個轉送規則來處理傳入封包:
刪除通訊協定與封包通訊協定不符的轉送規則,
L3_DEFAULT
轉送規則除外。使用L3_DEFAULT
通訊協定的轉送規則永遠不會在這個步驟中遭到淘汰,因為L3_DEFAULT
會比對所有通訊協定。舉例來說,如果封包的通訊協定是 TCP,系統只會排除使用UDP
通訊協定的轉送規則。請移除通訊埠與封包通訊埠不符的轉送規則。 為所有通訊埠設定的轉送規則永遠不會在此步驟中遭到淘汰,因為所有通訊埠的轉送規則會比對任何通訊埠。
如果剩餘的轉送規則候選項目同時包含
L3_DEFAULT
和通訊協定專屬轉送規則,請排除L3_DEFAULT
轉送規則。如果其餘候選轉送規則都是L3_DEFAULT
轉送規則,則不會在此步驟中淘汰任何規則。此時,其餘候選轉送規則會屬於下列其中一類:
- 系統會保留與封包的目的地 IP 位址、通訊協定和通訊埠相符的單一轉送規則,並用來轉送封包。
- 仍有兩個以上的候選轉送規則符合封包的目標 IP 位址、通訊協定和通訊埠。也就是說,剩餘的轉送規則候選項目包括導引轉送規則 (下一節會說明)。選取轉送轉向規則,其來源範圍包含最明確 (最長前置碼比對) 的 CIDR,其中包含封包的來源 IP 位址。如果沒有任何轉送規則的來源範圍包含封包的來源 IP 位址,請選取上層轉送規則。
- 沒有任何轉送規則候選人,因此封包遭到捨棄。
使用多個轉送規則時,請務必設定在後端 VM 上執行的軟體,將軟體繫結至負載平衡器轉送規則的所有外部 IP 位址。
流量導向
您可以設定外部直通式網路負載平衡器的轉送規則,將來自特定來源 IP 位址或 IP 位址範圍的流量,導向特定後端服務 (或目標執行個體)。
流量導向功能有助於排解問題和進行進階設定。透過流量導引,您可以將特定用戶端導向不同的後端組合、不同的後端服務設定,或兩者皆是。例如:
- 流量導向功能可讓您建立兩項轉送規則,透過兩個後端服務將流量導向同一個後端 (執行個體群組或 NEG)。這兩項後端服務可以設定不同的健康狀態檢查、工作階段相依性,或不同的流量分配控制政策 (連線追蹤、連線排除和容錯移轉)。
- 流量導向功能可讓您建立轉送規則,將流量從低頻寬後端服務重新導向至高頻寬後端服務。兩個後端服務都包含同一組後端 VM 或端點,但使用加權負載平衡以不同權重進行負載平衡。
- 流量導引功能可讓您建立兩項轉送規則,將流量導向不同的後端服務,並使用不同的後端 (執行個體群組或 NEG)。舉例來說,您可以設定一個後端,使用不同的機器類型,以便更妥善地處理來自特定來源 IP 位址的流量。
流量導向是透過名為 sourceIPRanges
的轉送規則 API 參數設定。如果轉送規則已設定至少一個來源 IP 範圍,則稱為導引轉送規則。
轉向轉送規則可以使用 sourceIPRanges
參數,指定最多 64 個來源 IP 位址或 IP 位址範圍 (以半形逗號分隔)。您可以隨時更新這份來源 IP 位址範圍清單。
每個轉向轉送規則都必須先建立父項轉送規則。父項和導向轉送規則共用相同的區域外部 IP 位址、IP 通訊協定和通訊埠資訊;不過,父項轉送規則沒有任何來源 IP 位址資訊。例如:
- 父項轉送規則:IP 位址:
198.51.100.1
、IP 通訊協定:TCP
、通訊埠:80 - 轉送轉向規則:IP 位址:
198.51.100.1
、IP 通訊協定:TCP
、 通訊埠:80、sourceIPRanges:203.0.113.0/24
指向後端服務的父項轉送規則,可以與指向後端服務或目標執行個體的轉送規則建立關聯。
針對特定父項轉送規則,兩個以上的導引轉送規則可以有重疊但不同的來源 IP 位址範圍和 IP 位址。舉例來說,一個轉送規則的來源 IP 範圍可以是 203.0.113.0/24
,另一個轉送規則的來源 IP 位址可以是 203.0.113.0
,但兩者必須屬於同一個父項。
您必須先刪除所有轉向轉送規則,才能刪除這些規則所依附的父項轉送規則。
如要瞭解使用轉送規則時,系統如何處理傳入封包,請參閱轉送規則選取。
轉向變更時的工作階段相依性行為
本節說明更新轉送規則設定的來源 IP 位址範圍時,工作階段相依性可能中斷的情況:
- 如果您變更導向轉送規則的來源 IP 範圍,現有連線在變更後仍符合相同的轉送規則,工作階段親和性就不會中斷。如果變更後,現有連線符合其他轉送規則,則:
- 在下列情況下,工作階段相依性一律會中斷:
- 新比對到的轉送規則會將已建立的連線導向後端服務 (或目標執行個體),但該服務並未參照先前選取的後端 VM。
- 新比對到的轉送規則會將已建立的連線導向後端服務,該服務會參照先前選取的後端 VM,但後端服務未設定為在後端健康狀態不佳時保留連線,且後端 VM 未通過後端服務的健康狀態檢查。
- 如果新比對到的轉送規則將已建立的連線導向後端服務,且後端服務參照先前選取的 VM,但後端服務的工作階段相依性和連線追蹤模式組合產生不同的連線追蹤雜湊,工作階段相依性可能會中斷。
在轉向變更期間保留工作階段相依性
本節說明更新轉送規則的來源 IP 範圍時,如何避免中斷工作階段親和性:
- 將轉送規則導向後端服務。如果父項和轉向轉送規則都指向後端服務,您必須手動確認工作階段相依性和連線追蹤政策設定完全相同。如果設定不相同,Trusted Cloud 不會自動拒絕設定。
- 轉送規則會導向目標執行個體。指向後端服務的父項轉送規則,可以與指向目標執行個體的轉向轉送規則建立關聯。在這種情況下,轉送轉向規則會從父項轉送規則繼承工作階段親和性和連線追蹤政策設定。
如需設定流量導向的操作說明,請參閱「設定流量導向」。
區域性後端服務
每個外部直通式網路負載平衡器都有一個區域性後端服務,可定義負載平衡器的行為,以及流量分配給後端的方式。後端服務的名稱即為 Trusted Cloud 控制台中顯示的外部直通式網路負載平衡器名稱。
每個後端服務都會定義下列後端參數:
通訊協定。後端服務會接受一或多個區域外部轉送規則指定的 IP 位址和通訊埠 (如有設定) 上的流量。後端服務會將封包傳遞至後端 VM,同時保留封包的來源和目的地 IP 位址、通訊協定,以及來源和目的地通訊埠 (如果通訊協定是以通訊埠為準)。
搭配外部直通式網路負載平衡器使用的後端服務支援下列通訊協定選項:
TCP
、UDP
或UNSPECIFIED
。無論轉送規則通訊協定為何,使用
UNSPECIFIED
通訊協定的後端服務都可以搭配任何轉送規則使用。具有特定通訊協定 (TCP
或UDP
) 的後端服務,只能由具有相同通訊協定 (TCP
或UDP
) 的轉送規則參照。具有L3_DEFAULT
通訊協定的轉送規則,只能參照具有UNSPECIFIED
通訊協定的後端服務。如需轉送規則和後端服務通訊協定的可能組合,請參閱轉送規則通訊協定規格。
流量分配。後端服務可根據設定的工作階段相依性、連線追蹤政策和加權負載平衡設定,分配流量。您也可以設定後端服務,啟用連線排除功能,並為負載平衡器指定容錯移轉後端。這些設定大多有預設值,可讓您快速上手。詳情請參閱「外部直通網路負載平衡器的流量分配」。
健康檢查。後端服務必須有相關的地區健康狀態檢查。
後端。每個後端服務都在單一區域運作,並將流量分配給同一個區域中的執行個體群組或區域 NEG。您可以選擇使用執行個體群組或區域 NEG,但不能同時使用兩者,做為外部直通式網路負載平衡器的後端:
- 如果您選擇「執行個體群組」,可以使用非代管執行個體群組、區域代管執行個體群組、地區代管執行個體群組,或混合使用不同類型的執行個體群組。
- 如果選擇可用區 NEG,則必須使用
GCE_VM_IP
可用區 NEG。
即使執行個體群組或 NEG 尚未連線至後端服務,每個執行個體群組或 NEG 後端都有相關聯的虛擬私有雲網路。如要進一步瞭解網路如何與各類後端建立關聯,請參閱「執行個體群組後端和網路介面」 和「區域性 NEG 後端和網路介面」。
執行個體群組
外部直通式網路負載平衡器會將連線分配到代管或非代管執行個體群組中的後端 VM。執行個體群組的範圍可以是地區性或區域性。
即使執行個體群組尚未連線至後端服務,每個執行個體群組仍會與虛擬私有雲網路建立關聯。如要進一步瞭解網路與執行個體群組的關聯,請參閱執行個體群組後端和網路介面。
外部直通式網路負載平衡器在設計上具備高可用性。負載平衡器機制不會依賴單一裝置或 VM 執行個體,因此不需要特殊步驟,就能確保負載平衡器高度可用。您只需要確保後端 VM 執行個體部署至多個區域,負載平衡器就能避開任何特定區域的潛在問題。
地區代管執行個體群組。如果您可以使用執行個體範本部署軟體,請使用地區代管執行個體群組。地區代管執行個體群組會自動在多個區域之間分配流量,提供最佳方案,避免任何特定區域出現潛在問題。
以下是使用區域代管執行個體群組的部署範例。執行個體群組具有執行個體範本,可定義執行個體的佈建方式,且每個群組都會在
us-central1
地區的三個區域內部署執行個體。具備區域代管執行個體群組的外部直通式網路負載平衡器 區域代管或非代管執行個體群組。在不同區域 (位於同一區域) 中使用區域執行個體群組,防範任何特定區域發生潛在問題。
以下是使用區域執行個體群組的部署範例。這種負載平衡器可在兩個可用區之間提供可用性。
具備可用區執行個體群組的外部直通式網路負載平衡器
區域性 NEG
外部直通式網路負載平衡器會在可用區網路端點群組中包含的 GCE_VM_IP
端點之間分配連線。這些端點必須與負載平衡器位於相同地區。如需一些建議的區域 NEG 用途,請參閱區域網路端點群組總覽。
NEG 中的端點必須是 VM 網路介面的主要內部 IPv4 位址,且與區域 NEG 位於相同子網路和區域。只要多重 NIC VM 執行個體任何網路介面的主要內部 IPv4 位址位於 NEG 的子網路中,即可新增至 NEG。
區域 NEG 支援 IPv4 和雙重堆疊 (IPv4 和 IPv6) VM。對於 IPv4 和雙重堆疊 VM,將端點附加至 NEG 時,只要指定 VM 執行個體即可。您不需要指定端點的 IP 位址。VM 執行個體一律必須與 NEG 位於相同區域。
即使區域 NEG 尚未連線至後端服務,每個區域 NEG 仍會與虛擬私有雲網路和子網路建立關聯。如要進一步瞭解網路與區域 NEG 的關聯,請參閱區域 NEG 後端和網路介面。
執行個體群組後端和網路介面
在指定的 (代管或非代管) 執行個體群組中,所有 VM 執行個體的nic0
網路介面都必須位於同一個虛擬私有雲網路。
- 如果是代管執行個體群組 (MIG),執行個體群組的虛擬私有雲網路是在執行個體範本中定義。
- 對於非代管執行個體群組,執行個體群組的虛擬私有雲網路定義為您新增至非代管執行個體群組的第一個 VM 執行個體所使用的
nic0
網路介面虛擬私有雲網路。
nic0
介面上的執行個體群組成員 VM。如要在非 nic0
網路介面 (vNIC 或動態網路介面) 上接收流量,必須使用具有 GCE_VM_IP
端點的區域 NEG。
可用區性 NEG 後端和網路介面
使用 GCE_VM_IP
端點建立新的區域 NEG 時,必須先將 NEG 與虛擬私有雲網路的子網路建立關聯,才能將任何端點新增至 NEG。建立 NEG 後,子網路和 VPC 網路都無法變更。
在指定的 NEG 中,每個 GCE_VM_IP
端點實際上代表一個網路介面。網路介面必須位於與 NEG 相關聯的子網路中。從 Compute Engine 執行個體的角度來看,網路介面可以使用任何ID。從 NEG 端點的角度來看,網路介面是透過主要內部 IPv4 位址識別。
將 GCE_VM_IP
端點新增至 NEG 的方式有兩種:
- 如果您在新增端點時只指定 VM 名稱 (不含任何 IP 位址), Trusted Cloud 會要求 VM 在與 NEG 相關聯的子網路中具有網路介面。端點選擇的 IP 位址,是與 NEG 相關聯子網路中,VM 網路介面的主要內部 IPv4 位址。 Trusted Cloud
- 如果您在新增端點時同時指定 VM 名稱和 IP 位址,提供的 IP 位址必須是 VM 其中一個網路介面的主要內部 IPv4 位址。該網路介面必須位於與 NEG 相關聯的子網路中。請注意,指定 IP 位址是多餘的,因為與 NEG 相關聯的子網路中只能有一個網路介面。
如果動態 NIC 是負載平衡網路端點群組的端點,則無法刪除。
後端服務和虛擬私有雲網路
後端服務不會與任何 VPC 網路建立關聯,但如先前所述,每個後端執行個體群組或區域 NEG 都會與 VPC 網路建立關聯。只要所有後端都位於相同區域和專案,且所有後端都是相同類型 (執行個體群組或區域 NEG),您就可以新增使用相同或不同 VPC 網路的後端。
如要將封包分配至非 nic0
介面,必須使用區域 NEG 後端 (含 GCE_VM_IP
端點)。
雙重堆疊後端 (IPv4 和 IPv6)
如要讓負載平衡器使用雙重堆疊後端,同時處理 IPv4 和 IPv6 流量,請注意下列規定:
- 後端必須在雙堆疊子網路中設定,且這些子網路與負載平衡器的 IPv6 轉送規則位於相同區域。後端可以使用
ipv6-access-type
設為EXTERNAL
或INTERNAL
的子網路。如果後端子網路的ipv6-access-type
設為INTERNAL
,您必須使用ipv6-access-type
設為EXTERNAL
的其他僅限 IPv6 子網路,做為負載平衡器的外部轉送規則。 - 後端必須設定為雙堆疊,且
stack-type
設為IPv4_IPv6
。如果後端子網路的ipv6-access-type
設為EXTERNAL
,則必須將--ipv6-network-tier
設為PREMIUM
。如需操作說明,請參閱建立含 IPv6 位址的執行個體範本。
僅限 IPv6 的後端
如要讓負載平衡器使用僅限 IPv6 的後端,請注意下列規定:
- 系統僅支援非代管執行個體群組中的僅限 IPv6 執行個體。系統不支援其他後端類型。
- 後端必須在雙重堆疊或僅限 IPv6 的子網路中設定,且這些子網路與負載平衡器的 IPv6 轉送規則位於相同地區。對於後端,您可以使用
ipv6-access-type
設為INTERNAL
或EXTERNAL
的子網路。如果後端子網路的ipv6-access-type
設為INTERNAL
,您必須使用不同的僅限 IPv6 子網路,並將ipv6-access-type
設為EXTERNAL
,做為負載平衡器的外部轉送規則。 - 後端必須設為僅支援 IPv6,且 VM
stack-type
設為IPv6_ONLY
。如果後端子網路的ipv6-access-type
設為EXTERNAL
,則必須將--ipv6-network-tier
設為PREMIUM
。如需操作說明,請參閱建立含 IPv6 位址的執行個體範本。
請注意,您可以在雙重堆疊和僅限 IPv6 的子網路中建立僅限 IPv6 的 VM,但無法在僅限 IPv6 的子網路中建立雙重堆疊 VM。
健康狀態檢查
外部直通式網路負載平衡器會使用區域健康狀態檢查,判斷哪些執行個體能接收新的連線。每個外部直通式網路負載平衡器的後端服務都必須與區域健康狀態檢查建立關聯。負載平衡器會根據健康狀態檢查結果,判斷如何將新連線轉送至後端執行個體。
如要進一步瞭解健康狀態檢查的運作方式,請參閱健康狀態檢查的運作方式。 Trusted Cloud
外部直通式網路負載平衡器支援下列健康狀態檢查類型:
- HTTP、HTTPS 或 HTTP/2。如果後端 VM 使用 HTTP、HTTPS 或 HTTP/2 提供流量,則最好使用符合該通訊協定的健康狀態檢查。詳情請參閱「HTTP、HTTPS 和 HTTP/2 健康狀態檢查的成功標準」。
- SSL 或 TCP。如果後端 VM 不提供 HTTP 型流量,則應使用 SSL 或 TCP 健康狀態檢查。詳情請參閱「安全資料傳輸層 (SSL) 和傳輸控制通訊協定 (TCP) 健康狀態檢查的成功標準」。
其他通訊協定流量的健康狀態檢查
Trusted Cloud 不提供任何通訊協定專屬的健康狀態檢查,僅提供本頁面稍早健康狀態檢查一節列出的檢查。如果您使用外部直通式網路負載平衡器,對 TCP 以外的通訊協定進行負載平衡,則仍須在後端 VM 上執行 TCP 型服務,以提供必要的健康狀態檢查資訊。
舉例來說,如果您要對 UDP 流量進行負載平衡,系統會使用 UDP 通訊協定對用戶端要求進行負載平衡,且您必須執行 TCP 服務,向 Trusted Cloud 健康狀態檢查探測器提供資訊。如要達成這個目標,您可以在每個後端 VM 上執行 HTTP 伺服器,向健康狀態檢查探測器傳回 HTTP 200 回應。建議您在後端 VM 上執行自己的邏輯,以確保 HTTP 伺服器只會在正確設定並執行 UDP 服務的情況下才傳回 200。
防火牆規則
由於外部直通式網路負載平衡器是直通式負載平衡器,因此您可以使用 Trusted Cloud 防火牆規則控管負載平衡器後端的存取權。您必須建立允許輸入的防火牆規則或允許輸入的階層式防火牆政策,才能允許健康狀態檢查和負載平衡流量。
轉送規則和允許輸入防火牆規則或階層式防火牆政策會以以下方式搭配運作:轉送規則會指定封包必須符合的通訊協定和通訊埠需求 (如有定義),才能轉送至後端 VM。輸入允許防火牆規則可控管轉送的封包是否要遞送至 VM 或捨棄。所有虛擬私有雲網路都有默示拒絕輸入防火牆規則,會封鎖來自任何來源的輸入封包。 Trusted Cloud 預設虛擬私有雲網路包含一組預先填入的允許連入防火牆規則。
如要接受來自網際網路上任何 IP 位址的流量,您必須建立允許輸入的防火牆規則,並使用
0.0.0.0/0
來源範圍。如要只允許來自特定 IP 位址範圍的流量,請使用限制較嚴格的來源範圍。根據安全性最佳做法,輸入允許防火牆規則應只允許您需要的 IP 通訊協定和通訊埠。使用通訊協定設為
L3_DEFAULT
的轉送規則時,限制通訊協定 (以及通訊埠,如有可能) 設定格外重要。L3_DEFAULT
轉送規則會轉送所有支援 IP 通訊協定的封包 (如果通訊協定和封包有通訊埠資訊,則會轉送所有通訊埠的封包)。外部直通式網路負載平衡器會使用 Trusted Cloud 健康狀態檢查。因此,您一律必須允許來自健康狀態檢查 IP 位址範圍的流量。這些 Ingress 允許防火牆規則可專用於負載平衡器健康狀態檢查的通訊協定和通訊埠。
要求和回傳封包的 IP 位址
後端 VM 從用戶端收到達到負載平衡的封包時,封包的來源和目的地如下:
- 來源:與 Trusted Cloud VM 相關聯的外部 IP 位址,或是連線至負載平衡器的系統可透過網際網路路由傳輸的 IP 位址。
- 目的地:負載平衡器轉送規則的 IP 位址。
由於負載平衡器是直通式負載平衡器 (而非 Proxy),封包抵達時會帶有負載平衡器轉送規則的目的地 IP 位址。設定在後端 VM 上執行的軟體,以執行下列操作:
- 偵聽 (繫結) 負載平衡器的轉送規則 IP 位址或任何 IP 位址 (
0.0.0.0
或::
) - 如果負載平衡器轉送規則的通訊協定支援通訊埠:監聽 (繫結至) 負載平衡器轉送規則中包含的通訊埠
回傳封包會從負載平衡器的後端 VM 直接傳送至用戶端。回傳封包的來源和目的地 IP 位址取決於通訊協定:
- TCP 是以連線為導向,因此後端 VM 必須使用來源 IP 位址與轉送規則 IP 位址相符的封包回覆,用戶端才能將回應封包與適當的 TCP 連線建立關聯。
- UDP、ESP、GRE 和 ICMP 則不需連線。後端 VM 可以傳送回應封包,來源 IP 位址與轉送規則的 IP 位址相符,或與 VM 的任何指派外部 IP 位址相符。實際上,大多數用戶端都希望回應來自傳送封包的相同 IP 位址。
下表摘要列出回應封包的來源和目的地:
流量類型 | 來源 | 目的地 |
---|---|---|
TCP | 負載平衡器轉送規則的 IP 位址 | 要求封包的來源 |
UDP、ESP、GRE、ICMP | 在大多數情況下,負載平衡器轉送規則的 IP 位址 1 | 要求封包的來源。 |
1 如果 VM 具有外部 IP 位址,或您使用 Cloud NAT,也可以將回應封包的來源 IP 位址設為 VM NIC 的主要內部 IPv4 位址。 Trusted Cloud 或 Cloud NAT 會將回應封包的來源 IP 位址變更為 NIC 的外部 IPv4 位址或 Cloud NAT 外部 IPv4 位址,以便將回應封包傳送至用戶端的外部 IP 位址。不使用轉送規則的 IP 位址做為來源是進階情境,因為用戶端會從外部 IP 位址收到回應封包,而該 IP 位址與傳送要求封包的 IP 位址不符。
傳回路徑
外部直通式網路負載平衡器會使用虛擬私有雲網路外的特殊路徑,將傳入要求和健康狀態檢查探測訊號導向至每個後端 VM。
負載平衡器會保留封包的來源 IP 位址。來自後端 VM 的回應會直接傳送至用戶端,而不會透過負載平衡器傳回。業界稱這種機制為「伺服器直接回傳」。
後端的網際網路連線
設定為外部直通式網路負載平衡器後端端點的 VM 執行個體,可以使用負載平衡器的轉送規則 IP 位址,做為輸出連線的來源 IP 位址,發起與網際網路的連線。
一般來說,VM 執行個體一律會使用自己的外部 IP 位址或 Cloud NAT 來發起連線。只有在特殊情況下,您才會使用轉送規則 IP 位址從後端端點啟動連線,例如需要 VM 執行個體在同一個外部 IP 位址發起及接收連線,且需要外部直通網路負載平衡器提供的後端備援功能,以處理連入連線。
後端 VM 直接傳送至網際網路的出站封包,在流量通訊協定和通訊埠方面沒有任何限制。即使輸出封包使用轉送規則的 IP 位址做為來源,封包的通訊協定和來源通訊埠也不必與轉送規則的通訊協定和通訊埠規格相符。不過,傳入的回應封包必須符合轉送規則的 IP 位址、通訊協定和目的地通訊埠。詳情請參閱「外部直通式網路負載平衡器和外部通訊協定轉送的路徑」。
此外,VM 傳出連線的任何回應都會受到負載平衡,就像所有傳入負載平衡器的封包一樣。也就是說,回應可能不會傳送到啟動網際網路連線的後端 VM。如果輸出連線和負載平衡的輸入連線共用通訊協定和通訊埠,請嘗試下列任一建議:
在後端 VM 之間同步處理輸出連線狀態,即使回應抵達的後端 VM 並非發起連線的 VM,連線也能正常運作。
使用容錯移轉設定,其中包含一個主要 VM 和一個備份 VM。接著,啟動輸出連線的有效後端 VM 一律會收到回應封包。
根據 Trusted Cloud的默示防火牆規則,這是外部直通式網路負載平衡器後端連線至網際網路的預設行為。不過,如果您擔心開放這條路徑會造成安全問題,可以使用目標輸出防火牆規則,封鎖傳送到網際網路的未經要求輸出流量。
共用 VPC 架構
除了 IP 位址之外,外部直通式網路負載平衡器的所有元件都必須位於同一個專案中。下表彙整了外部直通式網路負載平衡器的共用虛擬私有雲元件:
IP 位址 | 轉送規則 | 後端元件 |
---|---|---|
必須在負載平衡器所屬的專案或共用虛擬私有雲主專案中,定義 地區外部 IP 位址。 | 必須在後端服務中的執行個體所屬專案中定義 地區外部轉送規則。 | 定義地區後端服務時,所在的專案和區域必須與後端 (執行個體群組或區域網路端點群組) 相同。 定義與後端服務相關的健康狀態檢查時,所在的專案和區域必須與後端服務所在專案和區域相同。 |
流量分配
外部直通式網路負載平衡器支援各種流量分配自訂選項,包括工作階段相依性、連線追蹤、加權負載平衡和容錯移轉。如要進一步瞭解外部直通式網路負載平衡器如何分配流量,以及這些選項如何相互影響,請參閱「外部直通式網路負載平衡器的流量分配」一文。
限制
您無法使用 Trusted Cloud 控制台執行下列工作:
- 建立或修改外部直通式網路負載平衡器,其轉送規則使用
L3_DEFAULT
通訊協定。 - 建立或修改外部直通式網路負載平衡器,並將後端服務通訊協定設為
UNSPECIFIED
。 - 建立或修改外部直通式網路負載平衡器,設定連線追蹤政策。
- 為轉送規則建立或修改以來源 IP 為準的流量導向。
請改用 Google Cloud CLI 或 REST API。
- 建立或修改外部直通式網路負載平衡器,其轉送規則使用
外部直通式網路負載平衡器不支援 VPC 網路對等互連。
定價
如需價格資訊,請參閱「定價」。
後續步驟
- 如要設定具有後端服務的外部直通式網路負載平衡器,僅適用於 TCP 或 UDP 流量 (支援 IPv4 和 IPv6 流量),請參閱「設定具有後端服務的外部直通式網路負載平衡器」。
- 如要設定支援多個 IP 通訊協定 (包括 IPv4 和 IPv6 流量) 的外部直通式網路負載平衡器,請參閱「設定支援多個 IP 通訊協定的外部直通式網路負載平衡器」。
- 如要設定具有可用區 NEG 後端的外部直通式網路負載平衡器,請參閱使用可用區 NEG 設定外部直通式網路負載平衡器
- 如要使用目標集區設定外部直通式網路負載平衡器,請參閱「使用目標集區設定外部直通式網路負載平衡器」。
- 如要瞭解如何將外部直通式網路負載平衡器從目標集區後端轉換為區域性後端服務,請參閱「將外部直通式網路負載平衡器從目標集區轉換為後端服務」。
- 如要使用預建的 Terraform 範本,簡化 Trusted Cloud網路基礎架構的設定和管理作業,請瀏覽 Simplified Cloud Networking Configuration Solutions GitHub 存放區。