Введение.
Часто на форумах technet возникают вопросы о различного рода проблем терминальной фермы. Я заметил, что многие её неверно проектируют и ссылаются на источники в интернетах, где не правильно описывается схема работы. Давайте разберемся.
Основные сервисы терминальной фермы.
- Remote Desktop Connection Broker (RD Connection Broker) — Посредник подключений к удаленному рабочему столу.
- Remote Desktop Web Access (RD Web Access) — Веб-доступ к удаленным рабочим столам.
- Remote Desktop Session Host (RD Session Host) — Узел сеансов удаленных рабочих столов.
Первый сервис и является ключевым. Давайте обратимся к официальной документации по его работе: Посредник подключений к удаленному рабочему столу
Посредник подключений к удаленному рабочему столу управляет входящими подключениями удаленного рабочего стола для ферм серверов узла сеансов удаленных рабочих столов. Посредник подключений к удаленному рабочему столу обрабатывает подключения как к коллекциям полноценных рабочих столов, так и к коллекциям удаленных приложений. Посредник подключений к удаленному рабочему столу может балансировать нагрузку на серверы в коллекции при создании новых подключений. Если включен посредник подключений к удаленному рабочему столу, использование циклического перебора DNS для узлов сеансов удаленных рабочих столов для серверов балансировки не поддерживается. Если сеанс отключается, посредник подключений к удаленному рабочему столу повторно подключит пользователя к правильному серверу узла сеансов удаленных рабочих столов и прерванному сеансу, который по-прежнему будет присутствовать на ферме узла сеансов удаленных рабочих столов.
Обратите внимание на выделенный участок. Это ключевой фактор при работе терминальной фермы. Здесь явно говориться, что не правильно балансировать клиентские подключения с помощью DNS RR об RDSH сервера. Это не поддерживаемый сценарий. Подключение должно быть строго на Брокер. Именно он занимается клиентскими подключениями.
Картинка выше показывает алгоритм подключения: Как видно, всё просто, клиент подключается к Брокеру, Брокер перенаправляет на член RDSH из коллекции серверов. Но этот нюанс большинство упускает и делают неправильно.
Главная ошибка проектирования.
Вы делаете множество DNS записей типа «А» одного имени в IP RDSH серверов. Например:
RDS.contoso.com 192.168.1.10
RDS.contoso.com 192.168.1.11
RDS.contoso.com 192.168.1.12
И так далее. Таким образом, если взглянуть на схему Выше, картинку, то Вы используете сразу 7 шаг. Здесь и начинаются различного рода проблемы. Функционал Брокера не используется.
- У Вас возникают проблемы с сертификатами.
- Переведенный в режим обслуживания RDSH сервер игнорируется пользователем, он по-прежнему на него пытается подключиться, почему ? Потому что у него всё так же присутствует DNS запись с этим IP адресом RDSH сервера.
- Могут возникнуть различные ошибки подключения.
- Сложность в контролировании валидных DNS записей RDSH серверов. А если у Вас тысяча серверов ? Будете руками вычищать\добавлять постоянно DNS записи ?
Список можно продолжать, я указал основные, но итог один, Вы не контролируете соединение пользователя на RDSH.
Как настраивать ?
Как уже было сказано, нужно входить на Брокер. Далее он сам разберется, куда Вас подключить.
Вы спросите, но как, если пользователь не имеет прав входа на сервер? Ответ кроется в том, что ему и не нужно, Брокер проксирует на узел сеанса удаленного рабочего стола.
Вся магия заключается в уникальном RDP файле, который пользователь должен получить с https://FQDNBroker/RdWeb, чтоб зайти на ферму.
Если открыть RDP файл любым текстовым редактором, который скачан с RdWeb, можно увидеть новые уникальные строки:
use redirection server name:i:1
loadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.RDS_ALL
Когда Вы заходите на Брокер, с помощью этого ярлыка, он Вас перенаправляет на член RDSH в этой коллекции.
Вывод.
Развернуть терминальную ферму просто, но большинство упускает тот момент, что подключаться нужно на Брокер, для чего он и предназначен. В итоге Вы имеете:
- Единую и правильную точку входа.
- На брокере Вы ставите сразу централизованно сертификат на все сервисы через свойства развёртывания коллекции.
- RDP ярлык, который не выводит каких-то лишних предупреждений, что не доверенный сертификат и тому подобное. Сам ярлык подписан сертификатом.
- Брокер проксирует на RDSH сервера, Вам не надо их как-то дополнительно настраивать, устанавливать сертификаты, службы лицензирования и так далее, всё это через свойства развёртывания коллекции на брокере.
- Настраивая коллекцию сеансов на брокере, Вы устанавливаете централизованную политику безопасности и шифрования, можете редактировать настройки параметров RDP ярлыка, проброс принтеров, дисков, дополнительные опции через PowerShell, можете изменять время активного сеанса, разъединенного и так далее.
- Вы больше не заботитесь о DNS записях, которыми балансировали подключение через DNS RR на RDSH.
- Происходит корректный перевод серверов в режим обслуживания или вывод\ввод из коллекции.
В других статьях мы рассмотрим развёртывание, высокую доступность, тему сертификатов, преимущество использования виртуальных дисков FSLogix вместо User Profile Disks, почему терминальная ферма на Windows Server 2019 может деградировать в производительности, приводить к неработающему меню пуск, черному экрану и т.д. Расскажу, какие групповые политики я предпочитаю использовать и многое другое.
С Уважением, Андрей.