什麼是 SDN 的軟體負載平衡器 (SLB)?

適用於:Azure Stack HCI 版本 22H2 和 21H2;Windows Server 2022、Windows Server 2019、Windows Server 2016

部署軟體定義網路 (SDN) 的雲端服務提供者 (CSP) 和企業可以使用軟體負載平衡器 (SLB),將租用戶和租用戶客戶網路流量平均分散到虛擬網路資源之中。 SLB 可讓多部伺服器裝載相同的工作負載,並提供高度可用性及延展性。

軟體負載平衡器整合 SDN 技術 (例如 RAS 閘道資料中心防火牆路由反射程式),以提供多組織用戶共享、統一的邊緣。

注意

網路控制站不支援 VLAN 的多組織用戶管理。 不過,您可以使用具有 SLB 的 VLAN 來處理服務提供者管理的工作負載,例如資料中心基礎結構和高密度 Web 伺服器。

在同樣用來處理其他 VM 工作負載的 Hyper-V 計算伺服器上,軟體負載平衡器可讓您使用 SLB 虛擬機器 (VM) 來擴增負載平衡功能。 因此,軟體負載平衡器支援因應 CSP 作業所需,快速建立及刪除負載平衡端點。 此外,軟體負載平衡器支援每個叢集高達數十 GB,提供簡單的佈建模型,可輕鬆擴增和縮減。

若要了解如何使用 Windows Admin Center 來管理軟體負載平衡器原則,請參閱管理 SDN 的軟體負載平衡器

軟體負載平衡器有何功能?

軟體負載平衡器包含下列功能:

  • 適用於南北向和東西向 TCP/UDP 流量的第 4 層 (L4) 負載平衡服務。

  • 公用網路和內部網路流量負載平衡。

  • 在虛擬區域網路 (VLAN) 及您使用 Hyper-V 網路虛擬化建立的虛擬網路上,支援動態 IP 位址 (DIP)。

  • 健全狀態探查支援。

  • 雲端縮放就緒,包括多工器和主機代理程式的擴增功能及擴大功能。

如需詳細資訊,請參閱本文的軟體負載平衡器功能

軟體負載平衡器的運作方式

軟體負載平衡器會將虛擬 IP 位址 (VIP) 對應至資料中心內屬於一組雲端服務資源的 DIP。

VIP 是單一 IP 位址,對外開放一群負載平衡的 VM。 例如,VIP 是網際網路上公開的 IP 位址,可讓租用戶和租用戶客戶連線至雲端資料中心內的租用戶資源。

DIP 是 VIP 後方的負載平衡集區成員 VM 的 IP 位址。 DIP 在雲端基礎結構內指派給租用戶資源。

VIP 位於 SLB 多工器 (MUX)。 MUX 由一或多個 VM 組成。 網路控制站為每個 MUX 各提供一個 VIP,而每個 MUX 又使用邊界閘道協定 (BGP),將每個 VIP 公告為 /32 路由給實體網路上的路由器。 BGP 可讓實體網路路由器:

  • 了解即使 MUX 在第 3 層網路的不同子網路上,每個 MUX 也都有 VIP。

  • 使用等價多重路徑 (Equal Cost Multi-Path,ECMP) 路由,將每個 VIP 的負載分散到所有可用的 MUX。

  • 自動偵測 MUX 失敗或移除,並停止將流量傳送至故障 MUX。

  • 從故障或移除的 MUX 上將負載分散到良好的 MUX。

當來自網際網路的公用流量抵達時,SLB MUX 會檢查流量 (包含目的地 VIP),並對應和重寫流量,使之抵達個別 DIP。 若為輸入網路流量,此交易以兩步驟程序執行,分別在 MUX VM 上和目的地 DIP 所在的 Hyper-V 主機上進行:

  1. 負載平衡 - MUX 使用 VIP 來選取 DIP、封裝封包,然後將流量轉送到 DIP 所在的 Hyper-V 主機。

  2. 網路位址轉譯 (NAT) - Hyper-V 主機移除封包的封裝、將 VIP 轉譯為 DIP、重新對應連接埠,然後將封包轉送到 DIP VM。

根據您使用網路控制站來定義的負載平衡原則,MUX 知道如何將 VIP 對應至正確的 DIP。 這些規則包括通訊協定、前端連接埠、後端連接埠,以及分散演算法 (5、3 或 2 元組)。

當租用戶 VM 作出反應,並將輸出網路流量傳回至網際網路或遠端租用戶位置時,因為由 Hyper-V 主機執行 NAT,流量會略過 MUX,直接從 Hyper-V 主機流向邊緣路由器。 此 MUX 略過程序稱為「伺服器直接回傳」(Direct Server Return,DSR)。

建立初始網路流量流程之後,輸入網路流量會完全略過 SLB MUX。

在下圖中,用戶端電腦執行 DNS 查詢來查明公司 SharePoint 網站的 IP 位址 (此案例中名為 Contoso 的虛構公司)。 流程如下:

  1. DNS 伺服器將 VIP 107.105.47.60 傳回給用戶端。

  2. 用戶端將 HTTP 要求傳送至 VIP。

  3. 實體網路有多個路徑可到達任何 MUX 上的 VIP。 沿途每個路由器都使用 ECMP 來挑選下一段路徑,直到要求抵達 MUX 為止。

  4. 接收要求的 MUX 檢查已設定的原則,並看到虛擬網路上有兩個 DIP (10.10.10.5 和 10.10.20.5) 可處理流向 VIP 107.105.47.60 的要求

  5. MUX 選取 DIP 10.10.10.5 並使用 VXLAN 來封裝封包,以利用主機的實體網路位址,將封包傳送至包含 DIP 的主機。

  6. 主機接收並檢查封裝的封包。 主機移除封裝並重寫封包,現在目的地變成 DIP 10.10.10.5 而不是 VIP,然後將流量傳送至 DIP VM。

  7. 要求到達伺服器陣列 2 中的 Contoso SharePoint 網站。 伺服器產生回應,並以自己的 IP 位址為來源,將回應傳送至用戶端。

  8. 主機攔截虛擬交換器傳出的封包,而交換器記得用戶端 (現在是目的地) 對 VIP 提出原始要求。 主機將封包的來源重寫為 VIP,讓用戶端看不到 DIP 位址。

  9. 主機將封包直接轉送到實體網路的預設閘道,預設閘道使用其標準路由表,將封包轉送至用戶端,用戶端最後接收回應。

軟體負載平衡程式。

內部資料中心流量的負載平衡

當平衡資料中心內部的網路流量負載時,例如,在不同伺服器上執行且屬於相同虛擬網路的租用戶資源之間,VM 連線的 Hyper-V 虛擬交換器會執行 NAT。

進行內部流量負載平衡時,第一個要求會傳送至 MUX 來處理,MUX 會選取適當的 DIP,然後將流量路由傳送至 DIP。 從此以後,已建立的流量流程會略過 MUX,直接從 VM 前往 VM。

健康狀態探查

軟體負載平衡器包含健全狀態探查,可驗證網路基礎結構的健康情況,包括下列各項:

  • TCP 探查連接埠

  • HTTP 探查連接埠和 URL

不同於傳統負載平衡器設備 (探查從設備開始,經過網路到達 DIP),SLB 探查從 DIP 所在的主機開始,然後直接從 SLB 主機代理程式前往 DIP,進一步將工作分散到各主機。

軟體負載平衡器基礎結構

您必須先部署網路控制站和一或多個 SLB MUX VM,才可以設定軟體負載平衡器。

此外,您必須使用已啟用 SDN 的 Hyper-V 虛擬交換器來設定 Azure Stack HCI 主機,並確定 SLB 主機代理程式正在執行。 為主機服務的路由器必須支援 ECMP 路由及邊界閘道協定 (BGP),且必須設定為接受來自 SLB MUX 的 BGP 對等互連要求。

下圖提供 SLB 基礎結構的概觀。

軟體 Load Balancer 基礎結構。

下列各節提供軟體負載平衡器基礎結構中這些元素的詳細資訊。

網路控制站

網路控制站裝載 SLB 管理員,並針對軟體負載平衡器執行下列動作:

  • 處理從 Windows Admin Center、System Center、Windows PowerShell 或其他網路管理應用程式透過北向 API 傳入的 SLB 命令。

  • 計算原則以散發至 Azure Stack HCI 主機和 SLB MUX。

  • 提供軟體負載平衡器基礎結構的健全狀態。

您可以使用 Windows Admin Center 或 Windows PowerShell 來安裝和設定網路控制站及其他 SLB 基礎結構。

SLB MUX

SLB MUX 處理輸入網路流量,並將 VIP 對應到 DIP,然後將流量轉送到正確的 DIP。 每個 MUX 也使用 BGP 將 VIP 路由發佈至邊緣路由器。 當某個 MUX 故障時,BGP 保持運作會通知其他 MUX,因此,萬一 MUX 故障,作用中 MUX 能夠重新分配負載。 這基本上就提供負載平衡器的負載平衡。

SLB 主機代理程式

當您部署軟體負載平衡器時,您必須使用 Windows Admin Center、System Center、Windows PowerShell 或其他管理應用程式,在每部主機伺服器上部署 SLB 主機代理程式。

SLB 主機代理程式接聽來自網路控制站的 SLB 原則更新。 此外,主機代理程式會將 SLB 的規則編入已啟用 SDN 的 Hyper-V 虛擬交換器 (本機電腦上設定)。

已啟用 SDN 的 Hyper-V 虛擬交換器

為了讓虛擬交換器與 SLB 相容,虛擬交換器上必須啟用虛擬篩選平台 (VFP) 延伸模組。 這是由 SDN 部署 PowerShell 指令碼、Windows Admin Center 部署精靈,以及 System Center Virtual Machine Manager (SCVMM) 部署自動完成。

如需有關在虛擬交換器上啟用 VFP 的詳細資訊,請參閱 Windows PowerShell 命令 Get-VMSystemSwitchExtensionEnable-VMSwitchExtension

已啟用 SDN 的 Hyper-V 虛擬交換器會針對 SLB 執行下列動作:

  • 處理 SLB 的資料路徑。

  • 接收來自 MUX 的輸入網路流量。

  • 略過 MUX,直接使用 DSR 將輸出網路流量傳送至路由器。

BGP 路由器

BGP 路由器會針對軟體負載平衡器執行下列動作:

  • 使用 ECMP 將輸入流量路由傳送至 MUX。

  • 對於輸出網路流量,則使用主機提供的路由。

  • 從 SLB MUX 接聽 VIP 的路由更新。

  • 如果保持運作失敗,則從 SLB 輪替中移除 SLB MUX。

軟體負載平衡器功能

下列各節說明軟體負載平衡器的一些特性和功能。

核心功能

  • SLB 提供第 4 層 (L4) 負載平衡服務來處理南北向和東西向 TCP/UDP 流量。

  • 您可以在 Hyper-V 網路虛擬化架構的網路上使用 SLB。

  • 如果 DIP VM 連線至已啟用 SDN 的 Hyper-V 虛擬交換器,對此,您可以使用 SLB 搭配 VLAN 網路。

  • 一個 SLB 執行個體可以處理多個租用戶。

  • SLB 和 DIP 支援可調整和低延遲的返回路徑 (以 DSR 實作)。

  • 當您也使用交換器內嵌小組 (Switch Embedded Teaming,SET) 或單一根目錄輸入/輸出虛擬化 (SR-IOV) 時,SLB 會發揮作用。

  • SLB 支援網際網路通訊協定第 6 版 (IPv6) 和第 4 版 (IPv4)。

  • 在站對站閘道情節下,SLB 提供 NAT 功能,讓所有站對站連線都能利用單一公用 IP。

規模和效能

  • 雲端縮放就緒,包括 MUX 和主機代理程式的擴增及擴大功能。

  • 一個作用中 SLB 管理員網路控制站模組可支援八個 MUX 執行個體。

高可用性

  • 在主動/主動設定中,您可以將 SLB 部署至兩個以上的節點。

  • 在 MUX 集區中可以新增和移除 MUX,不影響 SLB 服務。 這樣在修補個別 MUX 時可維持 SLB 可用性。

  • 個別 MUX 執行個體的運作時間可達 99%。

  • 管理實體有狀況監控資料可用。

後續步驟

如需相關資訊,另請參閱: