天天看點

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

連接配接伺服器的負載均衡需求

Horizon 的連接配接伺服器支援多節點部署,但并不提供單一的入口,管理者可以在 DNS 上為多台 CS 配置同一個外部域名,這樣使用者在進行域名解析時就可以獲得不同 CS 的真實位址,進而讓不同的使用者連到不同的 CS 節點。但 DNS 并不能監測後端 CS 是否正常工作,CS 節點故障時可能會導緻部分 Client 無法正常使用桌面。是以使用負載均衡器是一個更優的選擇。

Horizon 下的網絡連接配接

在 Horizon 環境中共有兩大類流量:

  • 使用者認證流量(HTTPS):使用者登陸時的身份認證均使用此協定傳輸。認證功能由 CS 提供,在 Horizon 下 CS 本身預設提供 TLS 加密功能(還記得​​第一篇​​中給 CS 準備證書嗎?),如果要給 CS 配置負載均衡,則要做端到端的 TLS 加解密;
  • 虛拟桌面流量:使用者通路 VDI/虛拟應用時的流量,以及多媒體重定向、USB 重定向等功能的流量。共包含 RDP、PCoIP、Blast、MMR/CDR、USB 重定向等 5 種協定,每協定在不同的配置下可能使用不同的端口。其中 RDP、PCoIP、Blast 用于傳輸桌面的流量,一般使用 Blast 協定。MMR/CDR 分别表示多媒體重定向和用戶端驅動器重定向。

當在純内網中使用 Horizon 時,可以隻部署 CS。如果不開啟 CS 的安全網關功能,則 Horizon Client 直接和 VDI VM 通信傳輸桌面流量;如果開啟了 CS 的安全網關功能,則認證流量和桌面流量均需要通過 CS 進行傳輸。

在不同桌面協定下,使用的端口可能不一樣,同時輔助協定的端口也可能不一樣。比如設定虛拟桌面使用 Blast 協定時,Blast 使用 22443 端口,MMR/CDR 也會複用 22443;但是使用 PCoIP 協定時,PCoIP 使用 4172 端口,MMR/CDR 則使用 9427 端口,不和桌面流量複用端口。

開啟 CS 的安全網關功能後,用戶端到連接配接伺服器的端口又和直連 VDI 的端口不一樣。比如關閉 CS 安全網關使用 Blast 時,Horizon Client 到 VDI 使用 22443 傳輸 Blast 及 MMR/CDR,使用 32111 傳輸 USB 重定向流量;而開啟 CS 安全網關使用 Blast 時,Horizon Client 到 CS 使用 8443 傳輸 Blast 及 MMR/CDR,複用 443 傳輸 USB 重定向流量,CS 到 VDI 使用 22443 和 32111。

網絡連接配接這塊内容比較複雜,但對于排錯和配置負載均衡器至關重要。為了更加直覺地表示不同配置下流量路徑,我繪制了下面兩張圖​

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡
Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

在 Horizon 下,僅能對 CS 的認證流量進行負載均衡,安全網關的流量不能進行負載。如果開啟了 CS 安全網關功能,則認證流量和桌面流量必須經同一台 CS 處理。

為 CS 配置負載均衡後,流量路徑如下兩張圖所示:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡
Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

基礎的概念就講這麼多,我們來看看使用 NSX ALB(又稱 Avi)如何為 CS 配置負載均衡功能。

為 Horizon 連接配接伺服器配置負載均衡

本文涉及的環境資訊如下表:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

注意:表中所有域名均已提前在 AD/DNS 中配置好正反向解析。

1. 為 CS 建立 SSL 配置檔案

在“模闆>安全性>SSL/TLS配置檔案”中,建立新的應用程式配置檔案:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

勾選TLS 1.1和TLS 1.2,取消勾選“啟用SSL會話重用”:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

2. 為 CS 建立運作狀況監控器

在“模闆>配置檔案>運作狀況監控器”中,建立新的運作狀況監控器:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

類型為 HTTPS,發送時間為 30s,接收逾時 10s,檢查端口為 443,請求标頭為“GET / HTTP/1.0” :

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡
Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

響應代碼為2xx,在 SSL屬性中勾選之前建立的 SSL 配置檔案:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

(可選)通過 PKI 配置檔案來開啟 CS 的證書驗證

額外地,也可以建立 PKI 配置檔案來對連接配接伺服器的證書進行驗證​

1.    建立一個 PKI 配置檔案,在裡面關聯用于驗證連接配接伺服器證書的 CA 根證書:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

2.    将此 PKI 配置檔案關聯給運作狀況監控器:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

3. 為 CS 建立池

在“應用程式>池”中,建立新的池:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

預設伺服器端口為 443,持久性選擇“System-Persistence-Http-Cookie”,運作狀況監控器選擇上個章節建立的“Horizon-CS-HTTPS”:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

SSL 配置檔案選擇之前建立的“Horizon-CS-SSL-profile”:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

伺服器池成員填寫兩台 CS 的 IP 位址:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

(可選)通過 PKI 配置檔案來開啟 CS 的證書驗證

在池的層面也可以開啟 CS 證書驗證功能,隻需要在“伺服器 SSL 證書驗證 PKI 配置檔案”中關聯即可。

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

4. 為 CS 建立新的應用程式配置檔案

在“模闆>應用程式”中,建立新的 HTTP 應用程式配置檔案:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

禁用“連接配接多路複用”以及“X-Forwarded-for”:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

在安全性中勾選“在所有位置使用SSL”:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

5. 為 CS 建立伺服器證書

在“模闆>安全性>SSL/TLS證書”中建立新的應用程式證書:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

類型選擇導入:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

分别導入證書和私鑰,然後儲存即可:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

注:​​第一篇文章​​中我們使用 KeyManager 為 CS 生成了證書,此處可以将上次生成的證書導出為 pem 格式供 NSX ALB 使用。

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

6. 為 CS 建立虛拟服務

在“應用程式>虛拟服務”中使用進階設定建立新的服務:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

指定 VIP,使用之前建立的應用程式配置檔案“Horizon-CS-Application-Profile”:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

勾選 80 和 443 端口,其中 443 為 SSL,使用之前建立的 CS 池、SSL配置檔案以及伺服器證書:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

(可選)建立 HTTP 安全政策阻止使用者通路 admin 頁面

在虛拟服務的“政策”頁面中,建立 HTTP 安全政策,比對通路路徑為 “/admin” 開頭時,關閉連接配接:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

配置完成後當使用者嘗試通路 Horizon 管理界面時,會提示頁面無法通路:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

注意:配置此設定後,管理者隻能直接通路 CS 的域名來進行管理。

7. 在 CS 中信任負載均衡的域名

當為 CS 配置負載均衡後,通過網頁通路虛拟桌面時會報如下錯誤:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

這是因為預設 Horizon 隻允許通過 CS 的域名來進行 Web 通路,當使用了負載均衡後需要修改 CS 的配置檔案。

在 CS 的安裝路徑找到此目錄“VMware\VMware View\Server\sslgateway\conf”,建立名為 locked.properties 的檔案:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

内容如下:

balancedHost=cs.halfcoffee.com

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

然後重新開機 Connection Server 服務: 

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

為所有 CS 執行上述同樣的操作。

8. 内網使用者通路測試

通過浏覽器通路 CS LB 的域名,可以正常通路頁面:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

虛拟桌面也可以正常通路:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

8. 高可用性測試

關閉 CS1 節點,負載均衡器可以檢測到故障(因運作狀況檢查政策設定的比較保守,是以 UI 并不會立即展示故障):

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

使用者通路桌面正常,所有的連接配接會從 CS2 走:

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡
Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

附件:連接配接伺服器的安全網關功能

CS 安裝完成後,預設的安全網關功能配置如下。注意所有外部 URL 隻能填寫對應連接配接伺服器的“FQDN:端口”或者“IP:端口”。

在此配置下,隻有使用 PCoIP 時不會經過 CS 代理,其他流量全部都會被 CS 代理。

Horizon 8 測試環境部署(3):為連接配接伺服器配置負載均衡

本文完

關注微信公衆号“NSX很可愛的”,背景回複“Horizon”即可擷取本文以及相關媒體的下載下傳連結。

參考文檔

允許 HTML Access 通過網關:

​​https://docs.vmware.com/cn/VMware-Horizon/2106/horizon-installation/GUID-FE26A9DE-E344-42EC-A1EE-E1389299B793.html​​

繼續閱讀