負載平衡器為 UDP 和 TCP 應用程式提供數種功能。
浮動 IP
在某些應用程式案例中,後端集區中單一 VM 上的多個應用程式執行個體偏好或必須使用相同的連接埠。 連接埠重複使用的常見範例包括提供高可用性的叢集、網路虛擬裝置、公開多個不會重新加密的 TLS 端點。 如果您想要在多個規則重複使用後端連接埠,必須啟用規則定義中的浮動 IP。 啟用浮動 IP 可提供更多彈性。
浮動 IP 狀態 | 結果 |
---|---|
已啟用浮動 IP | Azure 會將 IP 位址對應變更為 Load Balancer 的前端 IP 位址 |
已停用浮動 IP | Azure 會公開 VM 執行個體的 IP 位址 |
在圖表中,您會看到 IP 位址對應在啟用浮動 IP 之前和之後的運作方式:
您可以透過 Azure 入口網站、REST API、CLI、PowerShell 或其他用戶端,在 Load Balancer 規則上設定浮動 IP。 除了規則設定以外,您還必須設定虛擬機器的客體 OS,才能使用浮動 IP。
浮動 IP 規則類型是數種負載平衡器設定模式的基礎。 目前可用的其中一個範例是設定一個或多個 Always On 可用性群組接聽程式。 經過一段時間,我們會記載更多這類案例。
浮動 IP 客體 OS 設定
若要運作,必須設定虛擬機器的客體 OS,以接收負載平衡器前端 IP 和連接埠所繫結的所有流量。 設定 VM 需要:
- 新增回送網路介面
- 使用負載平衡器的前端 IP 位址設定回送
- 確保系統可以在未將IP位址指派給該介面的介面上傳送/接收封包。 Windows 系統需要設定介面,以使用「弱式主機」模型。 若為 Linux 系統,通常預設會使用此模型。
- 設定主機防火牆以允許前端 IP 連接埠上的流量。
注意
下列範例全都使用 IPv4;若要使用 IPv6,請以「ipv6」取代「ipv4」。
Windows 伺服器
展開
針對後端集區中的每個 VM,在伺服器上的 Windows 命令提示字元中執行下列命令。
要取得 VM 上的介面名稱清單,請輸入以下命令:
netsh interface ipv4 show interface
對於 VM NIC(Azure 託管),在將 interface-name 替換為要使用的介面名稱後輸入以下命令:
netsh interface ipv4 set interface <interface-name> weakhostreceive=enabled
對於您添加的每個環回介面,請將 loopback-interface-name 替換為環回介面的名稱,並將 floating-IP 和 floating-IPnetmask 替換為與負載均衡器前端 IP 對應的適當值,然後輸入以下命令:
netsh interface ipv4 add addr <loopback-interface-name> <floating-IP> <floating-IPnetmask> netsh interface ipv4 set interface <loopback-interface-name> weakhostreceive=enabled weakhostsend=enabled
最後,如果在客體主機上使用防火牆,請確定已設定規則,讓流量可以在適當的連接埠上抵達 VM。 此範例組態假設負載平衡器前端 IP 組態為 1.2.3.4,以及連接埠 80 的負載平衡規則:
netsh int ipv4 set int "Ethernet" weakhostreceive=enabled netsh int ipv4 add addr "Loopback Pseudo-Interface 1" 1.2.3.4 255.255.255.0 netsh int ipv4 set int "Loopback Pseudo-Interface 1" weakhostreceive=enabled weakhostsend=enabled netsh advfirewall firewall add rule name="http" protocol=TCP localport=80 dir=in action=allow enable=yes
Ubuntu
展開
針對後端集區中的每個 VM,透過 SSH 工作階段執行下列命令。
若要取得您在 VM 上所擁有的介面名稱清單,請輸入下列命令:
ip addr
對於您添加的每個環回介面,請將 loopback-interface-name 替換為環回介面的名稱,並將 floating-IP 和 floating-IPnetmask 替換為與負載均衡器前端 IP 對應的適當值,然後輸入以下命令:
sudo ip addr add <floating-IP>/<floating-IPnetmask> dev lo:0
最後,如果在客體主機上使用防火牆,請確定已設定規則,讓流量可以在適當的連接埠上抵達 VM。 此示例配置假定負載均衡器前端IP配置為1.2.3.4,埠80的負載均衡規則,並在Ubuntu中使用 UFW(簡單防火牆 )。
sudo ip addr add 1.2.3.4/24 dev lo:0 sudo ufw allow 80/tcp
限制
- 在負載平衡規則上啟用浮動 IP 時,您的應用程式必須使用網路介面的主要 IP 設定進行輸出。
- 如果應用程式綁定到來賓OS中的環回介面上配置的前端IP位址,則 Azure 的出站連接不會重寫出站流,並且流將失敗。 請檢閱輸出案例。
- 負載平衡案例的次要 IP 組態目前不支援浮動 IP。 此限制不適用於輔助IP配置為IPv6且屬於雙堆疊配置的公有負載均衡器,也不適用於使用NAT閘道進行出站連接的架構。
下一步
- 了解如何搭配 Azure Load Balancer 使用多個前端。
- 深入了解 Azure Load Balancer 輸出連線。