您現在訪問的是微軟AZURE全球版技術文檔網站,若需要訪問由世紀互聯運營的MICROSOFT AZURE中國區技術文檔網站,請訪問 https://docs.azure.cn.
Azure 負載均衡器的多個 VIP
重要
Azure 負載均衡器支持兩種不同的類型:“基本”和“標准”。 本文介紹基本負載均衡器。 雖然基本負載均衡器已推出正式版,但標准負載均衡器目前仍以公共預覽版提供。 有關標准負載均衡器的詳細信息,請參閱標准負載均衡器概述。
使用 Azure 負載均衡器可對多個端口和/或多個 IP 地址上的服務進行負載均衡。 可以使用公共和內部負載均衡器定義來對一組 VM 之間的流量進行負載均衡。
本文介紹此功能的基礎知識、重要概念和約束。 如果只想要公開一個 IP 地址上的服務,可以查看公共或內部負載均衡器配置的簡要說明。 添加多個 VIP 是對單個 VIP 配置的遞增。 使用本文中的概念,隨時可以擴展簡化的配置。
定義 Azure 負載均衡器時,前端和后端配置與規則相連接。 規則引用的運行狀況探測用於確定如何將新流量發送到后端池中的節點。 前端由虛擬 IP (VIP) 定義,VIP 是由 IP 地址(公共或內部)、傳輸協議(UDP 或 TCP)和端口號組成的 3 元組。 DIP 是附加到后端池中 VM 的 Azure 虛擬 NIC 上的 IP 地址。
下表包含一些示例前端配置:
VIP | IP 地址 | 協議 | 端口 |
---|---|---|---|
1 | 65.52.0.1 | TCP | 80 |
#N/A | 65.52.0.1 | TCP | 8080 |
3 | 65.52.0.1 | UDP | 80 |
4 | 65.52.0.2 | TCP | 80 |
該表顯示了四個不同的前端。 前端 #1、#2 和 #3 是具有多個規則的單一 VIP。 每個前端使用相同的 IP 地址,但端口或協議不同。 前端 #1 和 #4 是多個 VIP 的示例,在多個 VIP 中重復使用相同的前端協議和端口。
在 Azure 負載均衡器中可以靈活定義負載均衡規則。 規則聲明如何將前端上的地址和端口映射到后端上的目標地址和端口。 是否在不同的規則中重復使用后端端口取決於規則的類型。 每種類型的規則有特定的要求,可能會影響主機配置和探測設計。 有兩種類型的規則:
- 默認規則,不重復使用后端端口
- 浮動 IP 規則,重復使用后端端口
Azure Load Balancer 允許在相同的負載均衡器配置中混用這兩種規則類型。 負載均衡器可以針對給定的 VM 同時使用這兩種規則或兩者的任意組合,只要遵守規則的約束即可。 選擇哪種規則類型取決於應用程序要求以及支持該配置的復雜性。應該評估哪種規則類型最適合自己的方案。
我們將從默認行為開始進一步探討這些方案。
規則類型 #1:不重復使用后端端口
在此方案中,前端 VIP 的配置如下:
VIP | IP 地址 | 協議 | 端口 |
---|---|---|---|
![]() |
65.52.0.1 | TCP | 80 |
![]() |
65.52.0.2 | TCP | 80 |
DIP 是入站流量的目標。 在后端池中,每個 VM 公開 DIP 上唯一端口上的所需服務。 此服務通過規則定義與前端關聯。
我們定義了兩個規則:
規則 | 映射前端 | 目標后端池 |
---|---|---|
1 | ![]() |
![]() ![]() |
#N/A | ![]() |
![]() ![]() |
現在,Azure 負載均衡器的完整映射如下:
規則 | VIP IP 地址 | 協議 | 端口 | 目標 | 端口 |
---|---|---|---|---|---|
![]() |
65.52.0.1 | TCP | 80 | DIP IP 地址 | 80 |
![]() |
65.52.0.2 | TCP | 80 | DIP IP 地址 | 81 |
每個規則必須生成具有目標 IP 地址和目標端口唯一組合的流量。 通過改變流量的目標端口,多個規則可將流量發送到不同端口上的相同 DIP。
運行狀況探測始終定向到 VM 的 DIP。 必須確保探測反映 VM 的運行狀況。
規則類型 #2:使用浮動 IP 來重復使用后端端口
使用 Azure 負載均衡器可以靈活地在多個 VIP 中重復使用前端端口,無論使用哪種規則類型。 此外,在某些應用程序方案中,后端池中單個 VM 上的多個應用程序實例偏好或必須使用相同端口。 重復使用端口的常見示例包括提供高可用性群集、網絡虛擬設備,以及公開多個不重新加密的 TLS 終結點。
如果想要在多個規則中重復使用后端端口,必須在規則定義中啟用浮動 IP。
浮動 IP 是所謂的直接服務器返回 (DSR) 的一部分。 DSR 包括兩個組成部分:流拓撲和 IP 地址映射方案。 在平台級別,Azure 負載均衡器始終在 DSR 流拓撲中運行,無論是否已啟用浮動 IP。 這意味着,流的出站部分始終正確重寫為直接流回到來源。
使用默認規則類型時,Azure 將公開傳統的負載均衡 IP 地址映射方案以便於使用。啟用浮動 IP 會更改 IP 地址映射方案,提供更大的靈活性,請參閱下面的說明。
下圖演示了此配置:
此方案中,后端池中的每個 VM 有三個網絡接口:
- DIP:與 VM 關聯的虛擬 NIC(Azure NIC 資源的 IP 配置)
- VIP1:來賓 OS 中的環回接口,該接口上已配置 VIP1 的 IP 地址
- VIP2:來賓 OS 中的環回接口,該接口上已配置 VIP2 的 IP 地址
重要
邏輯接口的配置在來賓 OS 中執行。 此配置不是由 Azure 執行或管理。 如果沒有此配置,規則將無法正常運行。 運行狀況探測定義使用 VM 的 DIP,而不是邏輯 VIP。 因此,服務必須在 DIP 端口上提供探測響應,反映邏輯 VIP 上提供的服務的狀態。
假設上述方案使用相同的前端配置:
VIP | IP 地址 | 協議 | 端口 |
---|---|---|---|
![]() |
65.52.0.1 | TCP | 80 |
![]() |
65.52.0.2 | TCP | 80 |
我們定義了兩個規則:
規則 | 映射前端 | 目標后端池 |
---|---|---|
1 | ![]() |
![]() |
#N/A | ![]() |
![]() |
下表顯示負載均衡器中的完整映射:
規則 | VIP IP 地址 | 協議 | 端口 | 目標 | 端口 |
---|---|---|---|---|---|
![]() |
65.52.0.1 | TCP | 80 | 與 VIP 相同 (65.52.0.1) | 與 VIP 相同 (80) |
![]() |
65.52.0.2 | TCP | 80 | 與 VIP 相同 (65.52.0.2) | 與 VIP 相同 (80) |
入站流量的目標是 VM 中環回接口上的 VIP 地址。 每個規則必須生成具有目標 IP 地址和目標端口唯一組合的流量。 通過改變流量的目標 IP 地址,可以在同一 VM 上重復使用端口。 通過將服務綁定到 VIP 的 IP 地址和相應環回接口的端口,可以向負載均衡器公開服務。
請注意,本示例未更改目標端口。 這是一個浮動 IP 方案,不過 Azure 負載均衡器也支持定義規則來重寫后端的目標端口,使其與前端的目標端口不同。
浮動 IP 規則類型是多種負載均衡器配置模式的基礎。 具有多個偵聽器的 SQL AlwaysOn 配置是目前提供的示例之一。 一段時間后,我們會介紹更多此類方案。