Microsoft Windows Server 2008 R2: Посредник подключений к удаленному рабочему столу

Посреднику подключений к удаленным рабочим столам приходится играть множество ролей, когда надо сопоставлять запросы виртуальной машины с пользователями.

Кристин Гриффин

Посредник подключений к удаленным рабочим столам (RD Connection Broker) это «мозг» маршрутизации подключений, отправляющий запросы на подключение нужным виртуальным машинам или сеансам. Он не только является неотъемлемым компонентом для развертывания инфраструктуры виртуальных рабочих столов Microsoft (Virtual Desktop Infrastructure, VDI), но и осуществляет посредничество при обслуживании сеансов и поддерживает работу ферм узлов сеансов удаленных рабочих столов.

Среди прочего он выполняет следующие функции:

  • Определяет наиболее подходящий ресурс (сервер узла сеанса удаленных рабочих столов или виртуальную машину — отдельную или в составе пула), на который нужно отправить запрос на подключение на основе идентификационной информации пользователя, содержимого RDP-файла, используемого для создания соединения, и нагрузки на виртуальную машину и серверы узлов сеансов.
  • Создает пулы виртуальных машин и назначает пользователям персональные виртуальные машины.
  • Хранит информацию о подключении как виртуальных машин, так и сеансов.
  • Служит ресурсом для веб-доступа к удаленным рабочим столам для получения информации с серверов узлов сеансов.
  • Предоставляет информацию о приложениях RemoteApp, доступных посредством веб-доступа к удаленным рабочим столам, и доступных виртуальных машинах.

Компоненты посредника

Служба роли посредника подключений к удаленным рабочим столам содержит несколько компонентов. Среди них есть два подключаемых модуля ресурса (виртуальной машины и сеанса), определяющих ресурс, на который нужно перенаправить подключение.

Подключаемый модуль ресурса может привязываться к подключаемому модулю фильтра, который предоставляет правила управления подключением, обслуживаемым модулем ресурса. К примеру, набор правил может управлять балансировкой нагрузки подключений к фермам серверов узлов сеансов рабочего стола. Логика балансировки нагрузки может размещаться в самом подключаемом модуле ресурса. Задача модуля фильтра — выборочно заменять логику в модуле ресурса.

Служба посредника подключений обладает расширяемой архитектурой, которая поддерживает сторонние подключаемые модули ресурсов и фильтров. Есть служба посредника, которая управляет связью с модулями ресурсов и клиентами. Кроме того, есть база данных, где хранятся данные о всех подключениях, совершенных с помощью посредника подключений, в том числе и информацию о том, к какой виртуальной машине или сеансу подключены те или иные пользователи и состояние этих подключений (активны или отключены).

Несмотря на то, что перенаправитель (когда сервер узлов сеансов RD настроен в режиме стока) не является частью службы роли посредника подключений, он важный компонент посредничества при подключениях к виртуальным машинам. Он получает от клиента начальный запрос и возвращает правильный IP-адрес виртуальной машины для создания подключения. При посредничестве подключений к сеансам каждый узел сеанса может становиться перенаправителем для входящих подключений или для этой роли выделяется один из серверов.

Когда пользователь запускает RDP-файл (хранящийся на компьютере клиента или опубликованный с помощью веб-доступа к удаленным рабочим столам), файл анализируется для получения параметров подключения. Посредничество при подключении к сеансам немного отличается от посредничества при подключении к виртуальной машине.

Использование VDI

В VDI посредничество подключения происходит в тот момент, когда пользователь активирует RDP-файл для запроса подключения к виртуальной машине — персональной или находящейся в пуле. Это определяется значением параметра loadbalanceinfo в RDP-файле виртуальной машины из пула(см. рис.1).

Инициированный пользователем запрос, запускающий процесс посредничества при подключении

Рис. 1. Инициированный пользователем запрос, запускающий процесс посредничества при подключении

Цифра «1» здесь указывает на то, что ресурсом является виртуальная машина в пуле. Строка, следующая за единицей — это имя пула виртуальной машины в соответствии с конфигурацией посредника подключений к удаленным рабочим столам. Если бы вместо единицы стояла двойка, это указывало бы на персональную виртуальную машину. Остальные строки файла RDP содержат данные о конкретном подключении к персональной или относящейся к пулу виртуальной машине:

  • use redirection server name:i:1— значение параметра равно единице, что говорит клиенту, что проверку подлинности виртуальной машины надо выполнять на основе конечного имени, которое вернул посредник, а не имени перенаправителя (при этом отпадает необходимость развертывания сертификата для проверки подлинности сервера)
  • full address:s:<здесь указывается альтернативное имя перенаправителя RDP 6.1 или более ранних версий клиента>
  • alternate full address:s:<имя_перенаправителя>—это поле используется в подключениях RDP 7 вместо поля полного адреса, используемого в предыдущих версиях RDP.

Перенаправитель следует устанавливать на тот же сервер, где размещен сервер узла виртуализации удаленных рабочих столов. Это проще и нет необходимости выделять сервер для роли перенаправителя. Запрос на подключение сначала попадает на сервер узла виртуализации в режиме перенаправления (через перенаправитель), который передает запрос посреднику подключений.

Получив запрос на виртуальную машину, посредник подключений активирует подключаемый модуль ресурса виртуальной машины, который проверяет по базе данных, нет ли на этой виртуальной машине отключенных сеансов. При их наличии перенаправителю отправляется IP- адрес этого подключения, а тот передает информацию пользователю. После этого пользователь подключается непосредственно к виртуальной машине.

Если уже существующих сеансов нет, посредник подключения запросит подготовку виртуальной машины. Этот запрос передается на сервер узла виртуализации, который поддерживает пул виртуальных машин. Можно объединить в пул виртуальные машины, размещенные на нескольких серверах виртуализации удаленных рабочих столов. В этом случае посредник подключений проверяет каждый сервер узла виртуализации, пока не найдет тот, который сможет выполнить запрос.

Если запрошена персональная виртуальная машина, посредник подключения принимает учетные данные пользователя и выполняет проверку в Active Directory. Оттуда извлекается имя персональной машины пользователя. Затем посредник связывается с сервером узла виртуализации, где размещена виртуальная машина, и запрашивает ее подготовку.

После завершения подготовки виртуальной машины сервер узла виртуализации отправляет посреднику IP-адрес, а тот — перенаправителю, который, в свою очередь, отправляет адрес пользователю. Далее пользователь подключается непосредственно к виртуальной машине.

Работа с фермой

Функции посредника подключений к удаленным рабочим столам несколько отличаются в случае с сервером узла сеансов. Когда посредник получает запрос подключения к сеансу, механизм балансировки нагрузки (служба NLB, механизм циклического обслуживания DNS или аппаратный балансировщик нагрузки) отправляет запрос перенаправителю (одному из серверов узлов сеансов в ферме).

Далее запрос направляется посреднику подключений. Для передачи запроса за подключение посреднику подключений можно использовать выделенный перенаправитель — выделенный сервер узла сеансов удаленных рабочих столов.

Посредник подключений активирует свой подключаемый модуль сеанса. Этот модуль сначала проверяет в базе данных наличие отключенных сеансов этого пользователя к одному из членов фермы.

Если отключенный сеанс найден, модуль извлекает из базы IP-адрес члена фермы и идентификатор отключенного сеанса. Эта информация отправляется перенаправителю, который передает ее пользователю, который напрямую подключается к серверу фермы.

Если отключенного сеанса нет, посредник подключений определяет сервер фермы, наиболее подходящий для размещения нового сеанса. Его «решение» основывается на текущей загрузке сеансами членов фермы. Подключение осуществляется к члену фермы с наименьшей нагрузкой сеанса относительно его веса в ферме (серверам можно назначать веса для отражения различных возможностей оборудования этих серверов).

Цикл завершается, когда посредник подключений передает IP-адрес выбранного сервера фермы перенаправителю, который отправляет ее пользователю, а тот напрямую подключается к серверу фермы.

Использование посредника подключений с удаленными рабочими столами

В книге «Microsoft Windows Server 2008 R2 Remote Desktop Services Resource Kit» даны пошаговые инструкции по настройке виртуальных машин (персональных и размещенных в пуле) и ферм серверов узлов сеансов с помощью посредника подключений.

Для использования посредника подключения в этих ситуациях следует выполнить следующую процедуру:

  • Разрешить серверам узлов сеансов и виртуализации связь с посредником подключений.
  • В посреднике подключений добавить компьютеры серверов узла виртуализации и ферм узлов сеансов в группу компьютеров посредника сеансов.
  • При использовании VDI настроить службу ролей узла сеансов на сервере посредника подключений для работы в качестве перенаправителя виртуальных машин.
  • При использовании фермы серверов узлов сеансов настроить серверы узла сеансов на присоединение к ферме посредника подключений.
  • Настроить начальный механизм балансировки нагрузки (циклическое обслуживание DNS, NLB или аппаратный балансировщик), который будет использоваться для маршрутизации запросов на подключение к ферме узла сеансов на перенаправитель, который, в свою очередь, будет передавать запрос на подключение посреднику подключений. (Можно также настроить выделенный перенаправитель.)
  • В посреднике подключений добавить компьютер веб-доступа к удаленным рабочим столам в группу компьютеров «веб-доступ к удаленным рабочим столам», тем самым разрешив Веб-доступу к удаленным рабочим столам связь с посредником подключений.
  • С помощью диспетчера подключений к удаленным рабочим столам (RD Connection Manager) настроить виртуальные машины (из пула и персональные) в посреднике подключений.
  • С помощью диспетчера подключений к удаленным рабочим столам настроить ресурсы RemoteApp в посреднике подключений.

Как видите, посредник подключений выполняет главную роль в VDI и на фермах узлов сеансво удаленных рабочих столов. Он может работать как в сценарии с VDI, так и с фермами узлов сеансов. Эта инструкция поможет вам создать виртуальные машины — персональные и в пулах — и фермы серверов виртуальных машин и узлов сеансов.

Вопросы и ответы по посреднику подключений к удаленным рабочим столам

Вопрос Есть ли какие-нибудь инструменты для устранения неполадок посредника подключений?

Ответ Можно воспользоваться журналом событий посредника подключений: относящиеся к посреднику события находятся узле Applications and Services Logs\Microsoft\Windows\RemoteApp and Desktop Connection Management (Журналы служб и приложений\Microsoft\Windows\Управление подключениями к удаленным рабочим столам и приложениям RemoteApp). Кроме того, можно воспользоваться информацией из базы данных посредника подключений.

Вопрос Я пользуюсь посредником подключений как ресурсом RemoteApp в веб-доступе к удаленным рабочим столам, но на страницах нет соответствующих значков. Почему?

Ответ Это может произойти по нескольким причинам:

  • При сборе информации о RemoteApp посредник подключений просмотрел только одного члена фермы. Это бывает, когда на одном из членов фермы — том, что используется посредником для сбора данных, в группу компьютеров TS Web Access не добавлен посредник подключений. Позаботьтесь, чтобы посредник подключений был добавлен в группу TS Web Access на всех членах фермы.
  • Посредник подключений не добавлен в группу Windows Authorization Access средствами консоли Active Directory Users and Computers (Active Directory — пользователи и компьютеры).
  • При попытке использовать один компьютер как сервер узлов сеансов, входящий в состав фермы, и как сервер посредника подключений, в Веб-доступе к удаленным рабочим столам не отображается никаких приложений RemoteApp. Эти роли можно сочетать, только если служба роли узла сеансов работает в режиме перенаправления.
  • Известен дефект, заключающийся в том, что пропадают разрешения «WMI» (Windows Management Instrumentation) для пространства имен служб терминалов, в результате чего веб-доступ к удаленным рабочим столам не может обращаться к посреднику подключений как к ресурсу RemoteApp. Повторное добавление сервера веб-доступа к удаленным рабочим столам в группу компьютеров TS Web Access на посреднике подключений решает эту проблему (но это не исключает повторное возникновение ошибки). Подробнее о дефекте и возможных вариантах устранения см. статью

Вопрос Я не вижу новое подключение в апплете RemoteApp and Desktop Connections (Подключения к удаленным рабочим столам и приложениям RemoteApp) в Windows 7. Если подключение уже добавлено, то не получается его обновить. Возникает ошибка «An error occurred. Contact your workplace administrator for assistance» (Произошла ошибка. Обратитесь к администратору рабочего места) Как это исправить?

Ответ При настройке подключения в диспетчере подключений к рабочим столам (RD Connection Manager) не ставьте точку (.), звездочку (*) и знак вопроса (?) в конце имени. Они считаются символами подстановки. На сервере посредника подключений откройте диспетчер подключений к рабочим столам, щелкните правой кнопкой значок менеджера подключений и выберите Properties (Свойства). Удалите недопустимый символ в отображаемом имени.

Кристин Гриффин

**Кристин Гриффин (Kristin Griffin)**носит звание Remote Desktop Services MVP. Она является модератором форума Microsoft, посвященного поддержке сообщества серверных вычислений (http://social.technet.microsoft.com/Forums/en-US/winserverTS/threads/) и обслуживает блог RDS (blog.kristinlgriffin.com). В соавторстве выпустила несколько книг: с Марком Минаси (Mark Minasi) — «Mastering Windows Server 2008 and 2008 R2» (издательство Wiley) и с Кристой Андерсон (Christa Anderson) — «Microsoft Windows Server 2008 Terminal Services Resource Kit» (издательство MS Press, 2008) и «Microsoft Windows Server 2008 R2 Remote Desktop Services Resource Kit» (вышла в декабре 2010).