緩慢登錄到網關伺服器後面的負載平衡終端伺服器 2008
我在從 Internet 訪問的網關伺服器後面有一個小型負載平衡(使用 Session Broker)終端伺服器 2008 場。我遇到的問題是,如果會話代理在登錄期間將使用者切換到另一台伺服器,則會有 20-30 秒的延遲。我認為這與我強制安全層為 RDP 而不是 SSL 的事實有關。
替代文字 http://www.lytzen.name/blogimages/tsstructure.png
背景
網關伺服器具有公共可路由 IP 地址和 DNS 名稱,因此可以從 Internet 訪問,並且所有使用者都通過此路由進入(系統用於向外部客戶提供對託管應用程序的訪問)。實際的終端伺服器只有內部 IP 地址。這非常有效,除了對於 Vista 或 Windows 7 客戶端,遠端桌面客戶端將與伺服器協商以使用 SSL 作為安全層。然後,這會公開 TS1 或 TS2 擁有的自動生成的證書 - 但由於它們是內部自動生成的證書,客戶端將收到證書無效的嚴厲警告。我無法為伺服器提供正確授權的證書,因為伺服器沒有公共可路由 IP 地址或 DNS 名稱。反而,
\Computer Configuration\Policies\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Security\Require use of specific security layer for remote (RDP) connections
Windows 7 使用者現在得到一個不那麼嚴厲的警告,即“無法確認伺服器的身份”,我可以忍受。
我對最終使用者的機器也沒有足夠的控制權來要求他們安裝新的根證書。
TS1 和 TS2 也使用安裝在網關伺服器上的 Session Broker 進行負載平衡。我使用的是循環 DNS,因此使用者的初始連接將通過 Gateway1 到 TS1 或 TS2。然後 TS1/TS2 將與會話代理對話,並將使用者傳遞給其他伺服器。即使用者可能會連接到 TS2,但在與會話代理交談後,使用者可能會被傳遞到 TS1,這是他們將執行會話的地方。
當發生這種伺服器切換時,在我的設置中,螢幕會顯示“歡迎”一詞 20-30 秒,然後閃爍,再次顯示歡迎,然後在正常登錄螢幕中閃爍(即“等待使用者配置文件管理器“ 等等)。做了一些研究後,我認為正在發生的事情是使用者在被傳遞到 TS1 之前完全登錄到 TS2(同時顯示“歡迎”),然後他們再次登錄。有趣的是,通常當您看到“歡迎”字樣時,左側的小圓圈會旋轉。但是,在此延遲期間它不會旋轉 - 螢幕看起來只是凍結。
這篇博文讓我認為這是因為沒有使用 CredSSP,可能是因為我不允許 SSL 並強制使用 RDP。
我試過的
- 我再次啟用了 SSL,它消除了“歡迎”延遲。但是,它似乎在此過程中更早地引入了新的延遲。具體來說,當 RDP 客戶端說“正在初始化連接”時 - 現在速度要慢得多。除了我的證書問題使我無法毫無困難地使用該解決方案這一事實之外。
- 我嘗試禁用負載平衡(只需從會話代理場中刪除伺服器)並且連接沒有任何延遲。
- 這個問題也是間歇性的,因為它只發生在使用者從一台伺服器撞到另一台伺服器時。我通過嘗試直接連接到 TS1(當然是通過網關)然後檢查我實際連接到的伺服器來對此進行了測試。
- 可以肯定的是,我還繞過了循環 DNS 以查看它是否有任何影響,但它沒有。該設置基本上符合此處的 MS 建議:TS Session Broker Load Balancing Step-by-Step Guide
- 我嘗試更改為使用專用重定向器。基本上,我沒有使用循環 DNS,而是將我的 DNS 指向網關伺服器並將其配置為專用重定向器(不允許登錄,將其添加到伺服器場)。同樣的問題,唉。
任何想法或建議都非常感激。
對於外部訪問的 rdweb 到網關,請使用已註冊外部 dns 和內部友好名稱的證書。這樣,它就可以在場中的網關伺服器和終端伺服器上使用。在我的場景中,我們將 rdweb 註冊到網關的外部地址。然後指向連接代理。內部訪問是通過內部註冊的 dns 別名 xyzrdweb 這已註冊到場中的兩個終端伺服器,實際上使用 xyzrdweb 會帶回首先通過 dns 檢索的記錄。內部使用者繞過網關。不幸的是,在這種情況下,外部使用者在完全通過身份驗證之前的初始連接速度很慢,最長可達 1 1/2 分鐘,但一旦完全通過身份驗證,應用程序就會立即執行,adobe photoshop 等應用程序大約需要 3-4 秒才能啟動。
本質上,您有兩種相互競爭的負載平衡機制。您完全按照我看到的情況描述了這個問題。DNS Round Robin 將傳入連接發送到一台伺服器,然後 Session Broker 將其發送到另一台伺服器,從而導致會話建立延遲。
我的建議是使用 DNS Round Robin 或 Session Broker,但不能同時使用。
就個人而言,我會使用 Session Broker。我將創建一個指向 Session Broker 伺服器的公共 DNS 記錄,並讓它處理負載平衡 TS1 和 TS2 之間的傳入連接。