Всего комментариев: 280 Комментировать

  1. Антон /

    Спасибо за статью.
    Как раз планировали с 2008 на 2012 переходит RDC.

  2. stwolk /

    Спасибо, очень содержательно и понятно.
    Жду продолжения.

  3. Денис /

    Шикарно!

  4. Обратная ссылка: High Availability RD Connection Broker на базе Windows Server 2012–выявленная закономерность в конфигурации с более чем 3 серверами | Блог IT-KB /

  5. Василь /

    Спасибо за подробное и доступное описание всего процесса, очень познавательно. Хочу узнать, с доступом к RDWeb с клиентских машин под управлением WinXP SP3 проблем не наблюдается? Чуть ранее подобный вопрос был на technet (http://social.technet.microsoft.com/Forums/ru-RU/b6fc0d24-8f5e-4756-a773-628fb91bf9b8/sso-windows-xp-rdweb-windows-2012), помечен "отвеченным", однако как и задающий вопрос, так и я, столкнулись именно с такой проблемой - с клиентов XP невозможно зайти нормально. Кажется есть возможность поднять RD Gateway и пробовать перенаправить всех корпоративных клиентов через него, но это будет всем костылям костыль. Может быть ситуация Вам знакома или подскажете, куда ещё можно обратить свой взор? Заранее благодарен за любую оказанную помощь, с уважением, Василь.

    1. Алексей Максимов / Автор записи

      Сходу не скажу. Попробуем у себя, и если проблема будет воспроизведена - отпишусь.

    2. Алексей Максимов / Автор записи

      Посмотрел на тестовом клиенте на Windows XP SP3 с IE8 и всеми установленными обновлениями с WSUS - действительно проблема имеет место быть, но для нас она не очень актуальна, т.к. количество WinXP стремительно приближается к нулю. На WinXP проблема проявляется каким-то плавающим образом (от обновления к обновлению страницы по F5), то есть страница то загружается, то возникает ошибка загрузки "unable to display rd web access". Проблема описана также в этой ветке:
      http://social.technet.microsoft.com/Forums/windowsserver/en-US/daffe906-be42-418d-8552-ec679ffba0ca/error-message-on-rd-web-access-for-server-2012
      Как я понял, проблема проявляется только на связке Windows XP SP3 + IE8 и связана она может быть с тем, что IE как-то некорректно обрабатывает загружаемые стили XSLT.
      Пробовал разные методы:
      1) Отключал использование прокси (чтобы браузер обращался к узлу RDWA напрямую)
      2) Сбрасывал все настройки безопасности в браузере. Узел RDWA должен входить в зону доверенных узлов и/или в зону локальной интрасети.
      Плавающая ошибка не исчезает.
      Как вариант можете попробовать поменять тип аутентификации на IIS с Windows Integrated на Form Based. Вдруг поможет. Я не пробовал)
      Другой вариант на таких клиентах для доступа к RDWA использовать альтернативный браузер, например Mozilla FireFox, который должен без проблем работать с RDWA из WS2012.
      В любом случае можете выйти с проблемой на техподдержку Microsoft и если появиться универсальный метод решения проблемы - не забудьте нам об этом сообщить :)

      PS: Рекомендую задуматься о том, как избавиться от клиентов на Windows XP, если вы до сих пор этого не сделали. Ибо в следующем году кончается срок расширенной поддержки этой ОС http://support.microsoft.com/lifecycle/?c2=1173 и все возможные риски связанные с использованием этой ОС лягут на хрупкие плечи администраторов :)

  6. Sasha Odarchuk /

    Алексей, а как правильно отфильтровать ПК с Вин8/Вин8.1 что бы им через ГПО подключить ремоут_апп через webfeed.aspx ??

    1. Алексей Максимов / Автор записи

      Вижу как минимум два варианта.

      1) Создать отдельную групповую политику с настроенным параметром Specify default connection URL в разделе User Configuration/Policies/Administrative Templates/Windows Components/Remote Desktop Services/RemoteApp and Desktop Connections и включить для её применения WMI фильтр, в котором указать только системы Windows 8/8.1
      О том как создать подобный фильтр написал здесь: GPO WMI Filters: WMI-фильтр c отбором по версии Windows

      2) Не использовать параметр Specify default connection URL а вместо этого использовать ключ реестра настраиваемый этим параметром и раздать его на нужных клиентов с помощью GPP с нацеливаеием (targeting) на системы Windows 8/8.1

      Вариант 2 кажется мне более удобным, так как нужный параметр GPP можно добавить в любую уже работающую GPO, да и работать он будет на мой взгляд быстрей, чем отдельная политика с WMI-фильтрацией (как в п.1)

  7. Denis /

    Алексей, насколько я понял для отказоустойчивости роли RD Connection Broker необходим и достаточен SQL сервер, а NLB нужен для балансировки нагрузки RD Web Access? Т.е., если я не планирую использовать Web Access, то с NLB можно не заморачиваться?

    1. Алексей Максимов / Автор записи

      Помимо RDWA NLB в моём описании используется ещё и как средство направления клиентов на RDCB взамен DNS Round Robin. Если Вас устраивает механизм DNS Round Robin, то вполне сможете обойтись и без NLB.

  8. Michael /

    Возможно глупый вопрос, публикуемые апликации нужно устанавливать на каждом сервере отдельно? Или это делается централизованно?

    1. Алексей Максимов / Автор записи

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

  9. Michael /

    Это понятно. Если я хочу опубликовать например outlook, надо установить его на каждом сервере по отдельности, или есть централизованная установка реплицирующаяся на все сервера

    1. Алексей Максимов / Автор записи

      Установка на каждый сервер по отдельности. Публикация - один раз на всю коллекцию серверов. Если серверов в коллекции много и установку делать отдельно на каждый руками грустно, то можно использовать разнообразные средства автоматизации, например SCCM.

  10. elpablo /

    Thnx! Great manual!

  11. Michael /

    Отличный мануал, все работает))
    Маленький вопрос, как оживить кластер если упадет SQL?

    1. Алексей Максимов / Автор записи

      Высокодоступный RDCB предполагает высокодоступный SQL Server. В противном случае это будет "колосс на глиняных ногах".

    2. Обама /

      :) индусы до сих пор не используют свою же фабрику...а зачем, ведь упадут продажи sql. И так почти во всем и у всех вендоров.

  12. Александр /

    Помогите, не хочет создаваться база в SQL (2012), на каждом сервере сделал алиасы, по файлу udl, соединяется все отлично, но когда пишешь строчку подключения в брокере, выдает ошибку sql сервер недоступен, уже ради интереса поставил SQL на машину, где установлен рдп брокер, результат один и тот же. Делаю вывод если через клиента проходит подключение к бд, значит сервер виден по сети и доступен, брандмауэр выключил, что еще можно посмотреть, подскажите?

  13. Алексей Максимов / Автор записи

    Проверьте установлены ли клиентские компоненты SQL Server. Проверьте телнетом доступность порта 1433. Проверьте все параметры Database connection string и удостоверьтесь в том, что в параметре DRIVER верно указана версия клиентских компонент SQL Server. С остальными вопросами http://forum.it-kb.ru/viewforum.php?f=5

  14. Александр /

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

    1. Алексей Максимов / Автор записи

      Нужно либо настраивать шлюз на NLB-интерфейсе (думаю трудно не увидеть пример такой настройки в скриншотах заметки), либо включать Forwarding между основным Management-интерфейсом и NLB-интерфейсом. Хотя проблема может быть и в другом, и по сути эта проблема связана скорее с неправильной настройкой конфигурации NLB, чем с темой поста - HA RDCB. Можно попробовать разобрать Вашу проблему на нашем форуме http://forum.it-kb.ru/

  15. Павел /

    Есть ли смысл разносить роли RD Connection Broker, Session Host, Web Access по разным серверам?
    А про развертывание "Virtual machine-based desktop deployment" у вас нет статьи?

    1. Алексей Максимов / Автор записи

      Этот вопрос не предполагает однозначного ответа. Всё зависит от исходных данных и желаемого результата. С VDI не работал и пока не планирую, поэтому и соответствующих заметок нет.

  16. Павел /

    Алексей, подскажите, как подключить Брокера к sql серверу 2008r2? Создал группу в AD, добавил туда запись компьютера брокера. Создал имя входа - эта группа из АД, дал права sysadmin. При попытке подключения "DRIVER=SQL Server Native Client 10.50;SERVER=sql.local;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=FARMRDCB;" выдает ошибку "База данных недоступна". Надо ли привязывать к имени входа учетные данные, создавать базу руками? Со своими учетными данным подключиться могу

    1. Павел /

      Проблема решилась "DRIVER=SQL Server Native Client 10.0"

  17. Павел /

    А можно ли публиковать на разные серверах фермы разные приложения?

    1. Павел /

      Соответственно чтобы какие-то приложения запускались только с определенного узла*

      1. Алексей Максимов / Автор записи

        А как Вы собираетесь брокеру объяснить что какого-то конкретного пользователя нужно отправить на какой-то конкретный узел потому, что он запустил какое-то конкретное приложение? Я такого способа не знаю. Публикуется приложение не на сервер а на пул серверов, то есть на ферму и это подразумевает что это самое приложение должно быть доступно на всех серверах фермы.

  18. Павел /

    Жаль. В Citrix такая возможность реализована простым выбором серверов в ферме, к которым привязано приложение. Спасибо за ответ.

  19. Геннадий /

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

  20. Игорь /

    Здравствуйте. Подскажите пожалуйста, как решается проблема профилей пользователей сеансов удаленных рабочих столов? Так как в ферме много серверов и брокер каждый раз перенаправляет пользователя на разный сервер узлов сеансов, то профили будут тоже все время разные. Получается надо использовать перемещаемые профили из общей папки, которые будут постоянно копироваться на тот сервер, к которому произошло подключение. Или же есть какой-то механизм репликации профилей между серверами в ферме, как например это делается с объектами в каталоге AD?
    Спасибо.

    1. Алексей Максимов / Автор записи

      Здравствуйте. Если Вы внимательно прочитаете всю заметку, то обнаружите в ней раздел "Настраиваем Roaming User Profiles и Folder Redirection", где есть ссылка на более раннюю заметку о том как настроить механизм перемещаемых профилей и перенаправления папок: https://blog.it-kb.ru/2011/12/23/remote-desktop-services-rds-roaming-user-profiles-and-folder-redirection-gpo-settings/.
      Она была написана применительно к Windows Server 2008 R2, но вполне справедлива и для Windows Server 2012 / 2012 R2

  21. Игорь /

    Спасибо, Алексей. А слона-то я и не заметил :)
    Скажите пожалуйста, для работы данной GPO, нужно ли использовать новую технологию репликации папки Sysvol DFS-R или она будет работать и при старой технологии FRS? Дело в том, что у меня лес создавался изначально на 2003, затем был произведен переход на 2012, уровень леса и домена подняты до 2008R2, но технология репликации осталась старая, меня она вполне устраивает. Но теперь, когда я создал по вашему примеру GPO, то она не применяется корректно на серверах фермы. Все остальные GPO для настройки пользовательских окружений, работают. Ошибок в AD нет.

  22. Алексей Максимов / Автор записи

    Ваши проблемы с применением GPO не имеют отношения к теме поста. Для обсуждения подобного рода проблем есть форум.

  23. Dmitriy Kucheryavenko /

    Не работает Ваша схема, если дело касается NAT. Т.е ,если rdscb nlb будет за натом, работать это не будет!

  24. mad /

    Добрый день. После установки ярлыков на ПК через "Панель управления\Все элементы панели управления\Подключения к удаленным рабочим столам и приложениям RemoteApp" при каждом запуске такого приложения появляется запрос имени и пароля. Птичка "Сохранить пароль" в этом окне отсутствует. Как сделать сквозную авторизацию без запроса пароля. Все машины в домене.
    Спасибо.

      1. mad /

        Большое спасибо. Извините за глупый вопрос.

  25. Игорь /

    Заметил такую особенность, после перезагрузки любого из серверов фермы, RDP на нём не работает, пока вручную не перезапустить службу "Служба удаленных рабочих столов", притом, что эта служба стартует автоматом. С чем это может быть связано? В логах нет никаких ошибок.

  26. aid /

    Добрый день. Заметил некую особенность, периодично в логах появляется сообщение The Remote Desktop Connection Broker server detected that the database is not available and will notify all Remote Desktop Connection Broker plug-ins. И через 30 сек все в порядке, также видно что пользователи в это время отваливаются и не могут подключится(пишет восстанавливается подключение ). 5 серверов в ферме, 32 камня + 32 Гб оперативной памяти. Не могу понять в чем причина!?

    1. Aid /

      Отвечу сам - проблема давно решена, причем проблема в тормознутом сиквеле, пришлось перенести базу на другой сиквел сервер. Теперь все - ОК.

  27. mad /

    Добрый день, подскажите, плиз, как запретить пользователям подключаться по старинке через RDP на рабочий стол сервера терминалов 2012, где развернуты все роли (вебдоступа, узел сеансов, посредник подключения), но оставить возможность запускать опубликованные приложения со своего рабочего стола ярлычком к настроенному соединению (rdp). Если пользователя убрать из традиционной группы "Пользователи удаленного рабочего стола", то и конкретные опубликованные приложения тоже становятся недоступны. Пробовал баловаться в локальной политике безопасности. Тоже самое: нет разрешения на терминальный доступ - невозможно и приложение запустить, есть - велком на рабочий стол. А народ ушлый про Win+R, mstsc все знают. Плиз, Хелп!

  28. AzzY /

    Хорошая статья. Спасибо. Но вот с сертификатами застрял. При добавлении RequestFile.req в ЦС ругается, что "В запросе отсутствует информация о шаблоне сертификата и т.д.".. все делается на 2012 R2 .

    1. Aid /

      все просто в самом инф файле в [RequestAttributes] добавьте строку CertificateTemplate = WebServer
      после этого снова выполните запрос. Не забудьте после получения crt завершить запрос на сертификат в IIS рдп сервера. Удачи.

      1. AzzY /

        сделал. и словил при коннекте эроры, но они правятся. то есть, для рдп все равно на темплейтссертификата ? думалось , что если настраиваем NBL, то там надо для компутертемплейтса делать...

  29. fm /

    Необходимо ли заводить отдельный SQL-сервер для базы данных RDCB или можно использовать уже существующий? (или рассмотреть вариант миграции существующего на созданный для нужд RDCB, к примеру)

    1. Алексей Максимов / Автор записи

      В отдельном SQL-сервере или даже инстансе никакой необходимости нет. Можно использовать существующий.

  30. Евгений /

    Добрый день!

    А можно создать несколько коллекций, чтоб брокер сам разбрасывал по разным серверам пользователей в зависимости от их группы? Например, ПерваяКол (сервера rds1, rds2), имеют доступ пользователи из группы grFirst; ВтораяКол (сервера rds3, rds4), имеют доступ пользователи из группы grSecond.

    1. Алексей Максимов / Автор записи

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

      1. Евгений /

        Пользователь принадлежит одной группе. В таком случае какой смысл в нескольких коллекциях?

  31. fm /

    Все сделано точь-в-точь по инструкции, но при включении адаптера NLB-кластера перестают пинговаться шлюзы и прочие узлы сети. Куда копать?

    1. Алексей Максимов / Автор записи

      Неправильно работает маршрутизация. Проверять конфигурацию сети.

  32. Dmitriy Kucheryavenko /

    http://technet.microsoft.com/ru-ru/library/cc771300(v=WS.10).aspx
    Уважаемый автор, как Вы это прокомментируйте? Вопрос касается в частности пунктов настройки NLB. Согласно мануалу, при использовании посредника сеансов,требуется в настройках портов параметра "Сходство" устанавливать значение "Нет". Вы же указываете, что нужно выбирать "Сходство" - "Один"

    1. Алексей Максимов / Автор записи

      Дельное замечание. До этого мой NLB-кластер работал именно в таком режиме, как описано у меня в статье. Хотя по логике действительно более правильно использовать режим Filtering Mode - Multiple host - Affinity: None, как описано в приведённом Вами документе. Я поменял режим работы своего NLB, погоняю его так, и если не столкнусь ни с какими проблемами, то обязательно изменю содержимое статьи. Спасибо.

  33. Артур /

    Здравствуйте Алексей. Хорошая статья, особенно если ни разу не разворачивал.

    У меня есть несколько вопросов

    1. Зачем создавать сертификат с: Client Authentication (1.3.6.1.5.5.7.3.2), Server Authentication (1.3.6.1.5.5.7.3.1) ? Должно быть достаточно Server Authentication (1.3.6.1.5.5.7.3.1), используются же такие же сертификаты как и в IIS.

    2. Если мы создаем NLB кластера, то нам соответственно нужен сертификат на кластерное имя? Альтернативные вроде как и не нужны.

    3. Объединение на каждом из хостов по несколько ролей (как то WI,CB,SH) это best practice? Или по возможности лучше распределить, типа WI, SG в DMZ, отдельные пара брокеров и Session Host?

    1. Алексей Максимов / Автор записи

      1. Сейчас уже не вспомню, где находил информацию о таких OID. Могу точно сказать только то, что сейчас разворачиваю ферму RDS на Windows Server 2012 R2, и там использую сертификат только с Server Authentication и этого, вроде как, действительно достаточно.
      2. Так и есть. В статье это упоминается.
      3. Если позволяют ресурсы, то конечно лучше разделить роли.

  34. Обратная ссылка: Windows Server 2012 R2 Remote Desktop Connection Broker — Невозможно подключиться к высоко-доступной ферме RDS — Подключение было запрещено… | Блог IT-KB /

  35. Константин /

    Добрый день, Алексей! Огромное Вам спасибо за рекомендации и комментарии!

    Конфигурацию сделал несколько другую - разделил роли. Сделал NLB кластер rdfarm0 из двух виртуальных серверов rdfarm0-0 и rdfarm0-1, на которых крутится session broker в высокодоступном режиме. Также есть два физических session hosts, из которых сделана session collection. Права доступа пользователей по rdp к серверам-членам этой коллекции дадены.

    При попытке запуска mstsc /v:rdfarm0 и дальнейшего входа под обычным пользователем я ожидал, что сессия будет образована с одним из session host серверов. Однако, этого не происходит - выдается отлуп, глясящий, что обычный пользователь не имеет прав заходить по rdp на сервер rdfarm0-0 (или rdfarm0-1), что совершенно справедливо, т.к. таковых прав действительно нет и не планируется.

    Сие поведение вызвало недоумение. Это, так сказать, by design, или я что-то не так понимаю?

    Запланированная конфигурация такова - кластер из пары виртуальных брокеров на двух физически разных хостах + несколько (3-4) физических session hosts, на которых и работают сотрудники + отдельный виртуальный сервер лицензий.

    Плиз, растолкуйте, если это Вас не затруднит!

    Благодарю!

    С увжаением, Константин.

    1. Алексей Максимов / Автор записи

      Описанная в статье конфигурация работает, и работает по сей день. Но работает она только потому, что роли RDCB и RDSH совмещены на всех серверах. Вы меняете конфигурацию таким образом, что всё что описано в статье для Вас уже работать не будет. И как Вы понимаете, в этом нет ничего удивительного.
      Попробуйте отказаться от NLB в пользу предлагаемой "бай дезайн" Round Robin DNS.
      Почитайте последние заметки по RDS, и особенно эту: Windows Server 2012 R2 Remote Desktop Connection Broker — Невозможно подключиться к высоко-доступной ферме RDS — Подключение было запрещено…
      Вполне возможно, что из неё Вы получите ответы на свои вопросы.

  36. Виталий /

    Добрый день.
    При создании высоко-доступного RD Connection Broker выскакивает ошибка о невозможности подключения к SQL серверу. Все права и доступность через файл с расширением udl приверено, пишет что тест пройдет. Подскажите в какую сторону копать.

  37. Алексей Максимов / Автор записи

    Осуждение ошибок возникших в вашем конкретном случае - на форуме.

  38. Anton /

    Добрый день!
    Вопрос возник, подскажите пожалуйста.
    При открытии консоли управления Server Manager и выбора раздела Server Manager\Remote Desktop Services\Overview время от времени на главном поле вижу ошибку
    "The Server pool dpes not match the RD Connection Brokers that are in it. Errors:
    1.The RD Conenction Broker server test1.int.local is not in the server pool but is part of the cluster test.int.local. Add it the server pool"

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

    1. Алексей Максимов / Автор записи

      Насколько я понимаю, консоль Вам просто сообщает о том, что в неё не добавлен какой-то один из серверов, входящих в ферму (в правом верхнем углу консоли Server Manager - Управление > Добавление серверов)

      1. Anton /

        Так, да, решилось просто. Я создал в консоли группу RDS-FARM (хотя ранее и так создавал согласно статье).
        Добавил в нее сервера фермы.
        Странно.

  39. Aid /

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

    1. Алексей Максимов / Автор записи

      Тоже сталкивались в своё время с подобной петрушкой. Лечилось только пересозданием профиля пользователя.

      1. Aid /

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

        1. Алексей Максимов / Автор записи

          Тут всё зависит от типа перемещаемости профиля. Если это классические Roaming Profiles + Redirected Folders, то ситуация одна, а если это User Profile Disk (UPD), то ситуация совсем иная. Есть подозрение, что в первом случае на каждом из терминальных серверов в локальной копии профиля несмотря на "перемещаемость" всё равно хранится часть данных уникальных для каждого такого сервера. Поэтому при удалении перемещаемого профиля и перенаправляемых папок из общей сетевой папки, дополнительно нужно выполнить удаление локального кэша профиля на каждом терминальном сервере и, возможно, только тогда проблема связанная с конкретным пользователем будет локализована. Если же используется UPD, то по сути достаточно лишь удалить vhd-образ профиля из общей сетевой папки.
          Дополнительно из опыта общения с фермой RDS на Windows Server 2012 могу сказать что, там подобные странности - не редкость. Сейчас перешли на Windows Server 2012 R2 с UPD... пока наблюдаем за ситуацией.

          1. Aid /

            Это классические Roaming Profiles + Redirected Folders. Удалял на нем(проблемном серваке) профиль юзера, и на сервере где профиля храняться тоже, не помогло)))

          2. Евгений /

            Такая же проблема на 12R2. Пришлось лечить включением Desktop Experience.

  40. Алексей Максимов / Автор записи

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

  41. Михаил /

    Здравствуйте! Подскажите можно ли как-то избавиться от черного фона в RDP сессии? Перепробовал уже, кажется, все. В том числе и Desktop Experience на серверах.
    Спасибо.

  42. Антон /

    Данная ферма в данной описанной схеме реализации у меня на пилоте была 3 месяца.
    Что могу сказать : проявилась проблема плавающего отсутствия подключения клиентом из других подсетей. (филиалы)
    Причем у пользователя может все работать сутками и неделями, а потом вдруг ошибка подключения (хотя инициализация соединения через ярлык происходит).
    Проверка на маршрутизаторах показала что порты требуемые открыты. Со стороны пользователя порты к серверу доступны по telnet. Блокировок от спуффинга или иных филтров нет.

    Набрел на статью (правда там о 2008): http://blogs.technet.com/b/networking/archive/2009/01/15/unable-to-connect-to-windows-server-2008-nlb-virtual-ip-address-from-hosts-in-different-subnets-when-nlb-is-in-multicast-mode.aspx

    Сейчас задумываюсь о переходе на технологию DNS RR, ибо надо уже в пром заводить ферму.

    1. Антон /

      Я использую Unicast NLB.
      Виртуальные машины для статистики отказа переместил на один хост HYPER-V.

    2. Алексей Максимов / Автор записи

      Я ушёл от описанной конфигурации на Windows Server 2012 R2 c DNS RR (в блоге есть более поздние записи об особенностях использования такой конфигурации) и в целом пока всё хорошо.

      1. Алексей /

        извините, я что то не смог найти это в блоге. не ткнете носом, если не сложно? :-)

        1. Алексей /

          нашел.

  43. Антон /

    Видимо и меня так же ждет этот вариант.

  44. Artem /

    Добрый день !

    Вопрос относительно сертификатов. Для RDS созданы сертификаты доменным ЦС. OID стоят соответсвующие Client Authentication (1.3.6.1.5.5.7.3.2), Server Authentication (1.3.6.1.5.5.7.3.1).
    В настройках сертификата указаны все используемые SAN серверов с ролями RDS. Сертификаты применены в настройках фермы.
    По факту при запуске приложения из RD Web вылетает окно предупреждения, указан самоподписанный сертификат сервера, а не указанный в настройках фермы, подписанный выдающим ЦС.

    Куда копать ? почему используется самоподписанный вместо указанного доменного ?
    Спасибо.

    1. Aid /

      Проверьте сертификат в IIS для вашего адреса на вэбсервере.

  45. Обратная ссылка: Виртуализированная терминальная ферма NLB на базе Server 2012 R2 в режиме IGMP Multicast | Nixlie /

  46. Андрей /

    Алексей, добрый день! Не сталкивались ли вы с такой проблемой?.... Поднял ферму из двух серверов и кластера sql (always on). Делаю тесты на отказоустойчивость, но ферма отказывается нормально работать. т.е. если пользователь залогинился на одном из серверов и выключить этот сервер например отключив питаение, а не корректно завершив его работу, то этот пользователь не может попасть на другой сервер в ферме. Вроде бы подключается долго думает но потом выдаёт ошибку (удаленному рабочему столу не удалось подключиться к удаленному компьютеру по одной из следующих причин.....) Но если корректно сделать выход из системы и выключить терминальник правильно, то пользователь может зайти на другой и без проблем. Пробовал sql 2014 always on и без кластеризации и sql 2008 не помогло.

    1. Алексей Максимов / Автор записи

      Используйте Windows Server 2012 R2 и рекомендованную MS конфигурацию с использованием DNS RR вместо NLB.

  47. Андрей /

    Да. кластер устанавливался на Windows Server 2012 R2 со всеми обновлениями и пробовал DNS RR.

    1. Алексей /

      Андрей, смогли побороть проблему? У меня аналогичная вам ситуация...Перепробовал все варианты.

    2. Павел /

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

  48. odarchuk /

    >>Set-RDWorkspace -Name "Приложения RemoteApp" -ConnectionBroker KOM-AD01-RDS21.holding.com
    а для Windows 2008R2 есть аналог?

    Имя "Set-RDWorkspace" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте пра
    вильность написания имени, а также наличие и правильность пути, после чего повторите попытку.

  49. Emil Abbas /

    Здравствуйте Алексей, спасибо за труд, очень полезная страница. Удачи в будущем
    Вопросы такие:
    KOM-AD01-RDSNLB это у вас виртуальный адрес? Если правильно понял.
    И в SQL кластере плюс две машины?

  50. Алексей Максимов / Автор записи

    Всё верно.

  51. Emil Abbas /

    Добрый Вечер Алексей.
    После добавления второго Broker сервера в HA он автоматом будет работат в режиме HA?

    1. Алексей Максимов / Автор записи

      Да.

  52. Emil Abbas /

    Алексей а это нормально что на сервере где я создовал sessionsost ферму, так сказать вывеска видна RDS_FARM например а на втором sessionhost сервере ее нету.
    Но когда создовал collection установка пошла на обоих sessionhost серверах.
    https://www.dropbox.com/s/ewy35kocmi1wtwa/farmproblem.JPG?dl=0

  53. Алексей Максимов / Автор записи

    RDS_FARM на Вашем скриншоте это всего лишь группа серверов созданная в консоли Server Manager. То есть, это простое логическое объединение нескольких серверов для отображения в консоли. Если Вам удобно, Вы можете создать такую группу и на втором сервере. В любом случае, управление параметрами фермы RDS выполняется через узел консоли "Remote Desktop Server"

  54. trampa /

    Добрый день! А имеет ли значение расположение sessionsost и сonnectionbroker. могут ли они находиться в разных подсетях допустим sessionsost 10.10.10.10-13 сonnectionbroker 10.10.11.10. Сети объединены туннелем gre.

    1. Алексей Максимов / Автор записи

      По идее не имеет. Брокер это же по сути просто учётчик сеансов и перенаправитель.

  55. trampa /

    В тестовой среду столкнулся с ошибкой при попытке подключения к приложению. DNS запись устарела.

  56. abseml /

    Здравствуйте Алексей, я установил 2 Broker и 3 Session Host сервера и один SQL, Broker сервера добавил в HA они у меня показывают High Availability, создаю collection с Session Host серверами с UPD дисками подключаюс профил юзера добавляется,вроде все нормально , но после перезагрузки всех серверов вход в Session Host серверы сопроваждется созданием Temprorary Profile и выходит вот такое.
    https://www.dropbox.com/s/4b42ukcs6d90fbq/nocon.JPG?dl=0

    P.S При инсталлировании ни одной ошибки не вышло.

    1. Алексей Максимов / Автор записи

      Я не понимаю о чём Вы говорите. Пишите в форум http://forum.it-kb.ru/

    2. Евгений /

      В данной статье было:
      "На следующем шаге определяемся с тем, хотим ли мы использовать новую технологию Windows Server 2012 – User profile disks (UPD), которая, как я понял, предлагается в качестве альтернативы механизму перемещаемых профилей — Roaming User Profiles. Новая технология подразумевает централизованное хранение файлов пользователя в отдельных VHD дисках, которые располагаются где-то на выделенном файловом ресурсе. В силу того, что на данный момент нет уверенности в стабильности работы данного механизма из-за полученной информации в обсуждении Windows Server 2012 RDS — [User Profile Disk] VS [Roaming Profiles + Folder Redirection] я решил пока не использовать данный функционал и поэтому он не будет рассмотрен в данной заметке."
      И реально технология UPD дисков сырая, об ошибки уже известно давно, но она не исправлена.
      Можно еще попытаться решить http://pei.com/2013/05/temporary-profiles-on-server-2012-rds/

      А по принскрину: посмотрите, чтоб на вкладке "Все серверы" были добавлены все сервера задействованные в ферме.

  57. Антон Махоткин /

    Отличная статья. Спасибо, Алексей.
    А не подскажете, изменится ли содержимое "строка подключения к базе данных", если инстанс SQL-сервера не стандартный?

    1. Алексей Максимов / Автор записи

      Имя экземпляра можно указать в SQL-алиасе. Для наглядности: https://blog.it-kb.ru/wp-content/uploads/2014/05/image_thumb25.png

      1. Антон Махоткин /

        Спасибо, помогло.

    2. Алексей Максимов / Автор записи

      Есть ещё вариант. Если у Вас именованный экземпляр SQL Server работает на нестандартном порту, например, 1433, то строка подключения может иметь следующий вид:

      DRIVER=SQL Server Native Client 11.0;SERVER=TCP:SQLSERVER.holding.com,1433;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=RDS-Connection-Broker

      Проверено на Windows Server 2012 R2

  58. Антон Махоткин /

    Еще один вопросик.
    При загрузке файла сертификата *.cer в Personal/Registry сертификат появляется без ключа (открытый), соотв. и экспортировать его не получается. Можете что-нибудь подсказать?

    1. Алексей Максимов / Автор записи

      В описании я не уделил отдельного внимания тому, что импортировать готовый сертификат нужно на том-же сервере, на котором до этого генерировался запрос на выдачу сертификата (то есть на том сервере RDS, где выполнялась команда CertReq –New RequestPolicy.inf RequestFile.req). Тогда сертификат в хранилище сертификатов на этой системе будет связан с закрытым ключом и после этого появится возможность его экспорта вместе с закрытым ключом для последующего распространения на другие хосты фермы RDS.

      1. Антон Махоткин /

        В Pending Requests сертификат действительно закрытый, но! При импорте выданного CA сертификата *.cer в Personal/Registry, из Pending Requests сертификат не исчезает.

        1. Антон Махоткин /

          Всем спасибо за участие и извините за беспокойство!
          Проблема была из-за того, что рутовый сертификат не был добавлен в доверенные корневые центры сертификации.

          1. Алексей Максимов / Автор записи

            Сем-ё-ё-ё-н Семёныч... :)

  59. Евгений /

    Сначала вам нужно экспортировать сертификат в формате pfx.

    1. Антон Махоткин /

      До выгрузки в pfx я как раз и не дошел. Сделал запрос в Root CA, получил от него сертификат. Загружаю его в Personal/Registry. Он загружается без ключика. Т.е. выгрузить в pfx уже не получится.

  60. Алексей /

    добрый день, как правильней поступить и как поведет себя ферма? Если я соберу кластер (для NLB), и создам в ферме несколько "коллекций" (конкретно 3) для разных групп пользователей. Есть в этом смысл или правильней создать несколько ферм? смогут ли различные пользователи подключаться к разным коллекциям по одному IP? поддерживает ли подобный функционал broker?

    1. Алексей Максимов / Автор записи

      Из практики могу порекомендовать использовать не Windows Server 2012 RDS с NLB, а Windows Server 2012 R2 RDS c DNS RR. Разные коллекции, полагаю, нужно разносить по разным фермам.

  61. AlektroNik /

    Подскажите пожалуйста. А можно подключаться к RDS ферме через mstsc обычный не скачивая перед этим файлик подключения к ферме через вебку? Как-то вручную.

  62. Алексей /

    Добрый день! Столкнулся с такой проблемой:
    Развернул ферму: 2 сервера (на каждом роли брокера + терминальные + web) все это с балансировкой через NLB. При тестировании, захожу через rdweb в приложение. Смотрю на каком сервере сеанс. Выключаю этот сервер и.... Переподключение не происходит. Подумал что проблема в NLB. Сделал аналогично то же самое через Round Robin DNS - проблема осталась. Решил что возможно проблема в том, что совмещены роли брокера и служб терминалов + web. Вынес брокера на отдельный сервер. Проблема остается...Есть идеи - из-за чего не происходит реконнект?
    P.S. если закрыть зависшее RemoteApp приложение которое не перепоключилось - то новое уже не открывается или висит в окне Добро пожаловать... Так же в оснастке СОЕДИНЕНИЯ на сервере-брокере, тот сеанс который я наблюдаю - всегда в статусе Активен.

  63. Alex A. /

    Очень здорово написано.
    Есть несколько комментариев, по опыту проектов по RDS
    1) Roaming profiles это зло, они бьются. Лучше использовать новую возможность с профильными дисками для коллекций. Только для самого профиля. Остальное - folder redirection. Помогает оно еще и для Legacy Apps, которые хотят тупо букву диска.
    2) Несколько RDWA это круто, но редактировать их отдельно неудобно, вероятность расхождения. Вижу два варианта - DFS-R папки RDWeb, или же IIS Shared Configuration
    3) Было бы очень здорово почитать ваше видение, как настраивать RemoteFX USB Redirection для ферм RDSH.

    1. Алексей Максимов / Автор записи

      В целом по изложенному могу сказать, что в конечном итоге ушёл от такой конфигурации в силу разных причин (ранее писал уже в комментариях). Сейчас используем ферму Windows Server 2012 R2 с родным DNS RR (без NLB), и в целом всё работает успешно.

      1. За несколько лет эксплуатации Roaming profiles (с 2008 R2 до 2012) на ферме примерно с 600 профилями проблемы были всего пару раз, и то по причине человеческого фактора. Никаких претензий к этой технологии у меня особых не было. UPD тоже хорошая вещь, - год уже юзаем на 2012 R2 - полёт нормальный.
      2. Ну это кому как нравится. Сами RDWA не так уж и часто правятся для того, чтобы утяжелять всю конструкцию ещё и такими вещами как DFS-R/IIS Shared Configuration внося при этом дополнительные компоненты потенциального отказа.
      3. Не имел дела с RemoteFX (не было надобности).

      1. Alex A. /

        Спасибо.
        По 1 согласен, дело предпочтений. Сложность с профилми возникает когда ферм много, возникает масса лишнего в реестре. В моих масштабах я пришел к Profile Disks + UE-V
        По 3 - понимаю, что копать корявую технологию дело неблагодарное. Мне потребовалось у двух заказчиков реализовывать проброс ключей (госзакупки и eToken) в терминальные приложения. Это нетривиально и нигде не описано отдельно от VDI, но работает.
        Соответственно подхожу к 2. Тут хотел бы запросить мнения. У меня проект по миграции нескольких ферм XenApp 4.x/5.x на среду WS2012R2 - и пока не ясно справимся ли RDS+APP-V+UE-V или таки будет XenApp 7.6. Пользователей ферм немногим более 150000. Серверов Citrix сейчас около 5000. К новому проекту требование сократить в 10-20 раз за счет более мощных ВМ и масштабируемости новой ОС. Соответственно, говоря о настройке пяти RDSWA я готов делать руками, но если их тысяча(и)? И некоторые хотфиксы меняют настройки RDWeb, - как потом руками править? Оттого и идут мысли про DFS.
        Но еще больше мыслей все же о выносе RDMS/RDCB/RDWA отдельно от самих RDSH. Расскажите предысторию, почему пришли к совмещению ролей? И до какого количества серверов вы бы и далее рекомендовали расширять данную архитектуру.

        4. Отдельный вопрос возник по лицензированию SQL. Я правильно понимаю, что RDCB является аггрегатором, и SQL CAL нужен на каждый RDCB? Пробую посчитать, начиная с какого количества серверов в прошлом вопросе это становится уже дороже чем 2/3 выделенных сервера управления (ОС бесплатна, ибо внизу датацентр, так что цена это вопрос ресурсов и обслуживания)

        1. Алексей Максимов / Автор записи

          Хотите поговорить, пишите пожалуйста на форум http://forum.it-kb.ru/viewforum.php?f=4, чтобы не захламлять комментарии, а то здесь их итак уже с избытком.

  64. Евгений /

    Алексей, в статье указано:
    >В силу того, что на данный момент нет уверенности в стабильности работы данного механизма из-за >полученной информации в обсуждении Windows Server 2012 RDS — [User Profile Disk] VS [Roaming Profiles >+ Folder Redirection] я решил пока не использовать данный функционал и поэтому он не будет рассмотрен >в данной заметке.

    а в комментарии пишите:
    >UPD тоже хорошая вещь, — год уже юзаем на 2012 R2 — полёт нормальный.

    Как-то решается проблема с залоченными UPD файлами? У меня на ферма из 4 серверов (1 шлюз+брокер (на нем сетевой ресурс с UPD) и 3 rds). Включены и перемещаемые каталоги.
    Так проблема воспроизводилась практически со 100% вероятностью, если пользователь залогинен в ферме и в этот момент перегрузить сервер на котором UPD либо отключить питание у сервера,.

  65. Алексей /

    Никто не сталкивался с проблемой описаной мной выше?

    2 сервера (на каждом роли брокера + терминальные + web) все это с балансировкой через NLB. При тестировании, захожу через rdweb в приложение. Смотрю на каком сервере сеанс. Выключаю этот сервер и…. Переподключение не происходит. Подумал что проблема в NLB. Сделал аналогично то же самое через Round Robin DNS — проблема осталась. Решил что возможно проблема в том, что совмещены роли брокера и служб терминалов + web. Вынес брокера на отдельный сервер. Проблема остается…Есть идеи — из-за чего не происходит реконнект?
    P.S. если закрыть зависшее RemoteApp приложение которое не перепоключилось — то новое уже не открывается или висит в окне Добро пожаловать… Так же в оснастке СОЕДИНЕНИЯ на сервере-брокере, тот сеанс который я наблюдаю — всегда в статусе Активен.

    P.S. если сделать плановую перезагрузку - проблема не наблюдается. Такое ощущение, что при жестком падении сервера, брокер не понимает что делать с резко пропавшим сеансом...

    1. Евгений /

      Автоматом пользователь не переключается. Нужно чтоб пользователь запросил переподключение.

      Попробуйте политику установить, чтоб после закрытия приложения сеанс завершался:
      Политики\Административные шаблоны\Компоненты Windows/Службы удаленных рабочих столов/Узел сеансов удаленных рабочих столов/Ограничение сеансов по времени\Задать предел времени для выхода из сеансов RemoteApp

    2. Леонид /

      Добрый день !
      Совершенно аналогичная ситуация. За исключением, что не используем rdweb.
      Нашлось ли решение ?

  66. Алексей /

    задал - но этот параметр подходит если пользователь руками закрыл RemoteApp. А если сервер упал - отвалилась сеть, выключился и т.п. - то брокер видит что сеанс есть на неактивном сервере и почему то не закрывает его и пользователь не может повторно подключиться.

    1. Алексей Максимов / Автор записи

      Замечал некоторые странности поведения брокера на Windows Server 2012 с применением NLB. Если Вы используете WS2012, то попробуйте перебраться на WS2012 R2 с DNS RR (без NLB), так чтобы по крайней мере Ваше конфигурация была поддерживаемой Microsoft и потом можно будет смело обращаться в саппорт если проблема останется.

  67. Алексей /

    проблема остается. собрал ферму на 2008 R2 - аналогичная ситуация - брокер продолжает видеть сеанс на недоступном сервере - но при этом грамотно отправляет повторный запрос пользователя на доступный узел.
    если вырубить сервер на котором сеанс, уж больно долго (секунд 30) клиент думает прежде чем закрыть remoteapp.
    кстати, не подскажете что пришло на смену Диспетчеру системных ресурсов (wsrm в 2008 R2) в сервере 2012 R2.

    1. AzzY /

      нет нормального диспетчера. павершел-скриптами приходиться смотреть и управлять. могу поделиться.

      1. Алексей /

        поделитесь если труда не составит

        1. AzzY /

          у меня они примитивные. вот такую штуку нашел. http://www.lazywinadmin.com/2014/10/powershell-gui-lazyts-terminal-services.html

  68. Ms /

    А почему нету ничего про сервера лицензирования?

  69. Николай /

    Огромное спасибо за статью.
    Дошел до момента отправки запроса сертификата и получил ошибку следующего содержания: В запросе отсутствует информация о шаблоне сертификата. 0x80094801 (-2146875391 certsrv_e_no_cert_type). Модуль политики отверг запрос 0х80094801, Запрос не содержит расширения шаблона сертификата или атрибута запроса CertificateTemplate.
    Пробовал гуглить по коду ошибки, но там в основном шаблоны для вебсервера
    Помогите пожалуйста решить данную проблему

    1. Алексей Максимов / Автор записи

      Читайте предыдущие комментарии.

  70. Добрый день. Выполнил настройку фермы по вашей замечательной инструкции. Единственное отличие в именах и в том, что я не хотел бы использовать сертификаты выданные внутренним ЦС, а хотел бы использовать для всех сервисов wildcard сертификат *.firma.ru, выданный публичным коммерческим УЦ.

    Но т.к. сертификат выдан на *.firma.ru, а внутреннее пространство имен firma.local, то столкнулся с проблемой "name missmatch" при запуске RemoteApp приложений. Там где это можно было настроить, настроил имена вида server.firma.ru, используя split-DNS, но всё-равно при подключении к RemoteApp, происходит обращение к "внутреннему" имени сервера.

    Подскажите пожалуйста, может быть знаете, как её убрать? Можно где-нибудь перенастроить подключение с "внутренних" имён типа server.firma.local на "внешние" типа server.firma.ru?

    Продемонстрировал ошибку на скриншотах https://www.dropbox.com/sh/dipqtad2122zn5a/AAA6lROjOn1EgVPvkGjm-pgra?dl=0

    1. В общем, мне пришлось разобрать RDS ферму и NLB кластер. После чего собрать всё заново, но чуть по другому. Вместо NLB, я использовал Round robin DNS. Вместо нескольких терминальных серверов на которых все роли были совмещены, использовал разделение ролей по отдельным серверам. Теперь у меня несколько отдельных серверов с ролью connection broker'ов и несколько host session серверов. На SSO установлен wildcard сертификат выданный внутренним УЦ, а на публикацию приложений wildcard выданный публичным коммерческии УЦ. Теперь запуск RemoteApp приложений происходит нормально, никаких предупреждений и запросов на ввод учетных данных не появляется.

  71. Александр А /

    Вопрос - какую точку входа по RDP надо использовать , если у меня тонкий бездисковый клиент и можно указать только адрес RDP соединения ? С сохранением отказоустойчивости.

  72. Михаил /

    Никак не перейти на ферму терминальных серверов из-за следующей проблемы: существует две группы пользователей терминального сервера, которые находятся в разных VLAN (сами сервера находятся в VLAN1 но имеют интерфейс и в VLAN2) при подключении пользователя из VLAN2, он первый раз нормально подключается, но при повторном он уже никак не хочет подключаться. Мои исследования показали что при повторном подключении брокер ищет имя ноды где был пользователь подключен ранее и отдает ему IP адрес этой ноды, но только из 1 влана (возможно я где-то ошибаюсь в выводах или настройках).
    Собственно хотел спросить, есть ли положительный опыт использования фермы терминальных серверов (20012к2) с возможностью подключения пользователей из разных VLAN'ов?

    1. александр а /

      Да работает. Оставьте 1 днс А запись для хоста фермы , либо прописывайте маршруты на ферме

  73. Михаил /

    С днс у меня ничего не получилось, а вот с маршрутами я не пробовал, может и получится. Спасибо.

  74. Petr /

    Добрый день. А с помощью чего вы рисуете такие схемы? Как на первой картинке из статьи?

    1. Алексей Максимов / Автор записи

      Microsoft Visio

      1. Алексей /

        а что за шаблон элементов?

  75. Алексей /

    Большое спасибо за статью! Для тестирования возможностей настроил ферму из 2 серверов (пока что без кластера NLB). Разворачивал всё с первого сервера test1, добавил второй test2, перевёл в режим высокой доступности. Всё понятно, всё получилось. Интересует прежде всего восстанавливаемость всей фермы после отказа одного из серверов. Переустановил для теста ОС на test1 (из схемы его специально не удалял), но не могу понять, как теперь его вернуть в строй в ту же ферму, разворачивая уже с сервера test2. Аналогичными действиями (добавление сервера в диаграмме фермы) добавить переустановленный сервер не даёт. Пробую разные способы, но пока безуспешно. MsSQL на отдельном от этих 2-х серверов.

    1. Алексей /

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

  76. Игорь /

    Коллеги, а кто-нибудь смог настроить механизм прозрачного входа Single sign-on (SSO) не только при обращении к веб-узлу RDWA, но и дальше, когда выбранное приложение запускается в сеансе RDP. Вход без авторизации на страницу RDWA я сделал, а вот дальше не получается.

  77. Александр /

    Да. Тут у вас должно приложение поддерживать Windows авторизацию.
    Например, 1С - работает.

  78. Сергей /

    Алексей, доброго времени суток. Может подскажете кто. Собрал ферму тестовую. Структура такова - DNS RR + RDCB два сервера(на них же и RDW) в режиме высокой доступности + три сервера RDSB физических 2х-процессорных 12 юнитовых. Профили юзеров - UPD. Так вот вопрос. Можно ли с помощью например того же DFS использовать сервера RDSH, расшарить на всех трех папку, настроить репликацию и использовать их? Теоритически, там можно собрать будет RAID10 из 8 дисков SATA Int. И хватит ли пропускной способности 4х гиабитных интерфейсов?

    1. Алексей Максимов / Автор записи

      Вы хотите использовать перемещаемые профили, расположив их на тех-же серверах RDSH? Да ещё и DFS сюда приплести??. По моему это полное извращение, и предсказать как такая конфигурация будет работать, наверно не решатся даже на "Битве экстрасенсов".

      1. Сергей /

        Просто я пока не очень понимаю как это все организовать. потому как денег много не дадут.

      2. Сергей /

        Алексей. Так скажите, что не так то? DFS зло? Так на сколько я понимаю у Вас тут тоже оно используется? Или репликация вещь не хорошая?

        1. AlektroNik /

          Я согласен с Алексеем. Сами подумайте. Учтем тот факт, что DFS синхронизируется виртуальный диск с профилем только после того как пользователь завершил сеанс. Второй момент DFS реплицировать должен будет по всем вашим серверам RDSH.
          В итоге получаем:
          1. Пользователь может разлогиниться на одном сервере и войти на другой, а синхронизация еще не прошла или не успела закончиться в зависимости от того как быстро он решил зайти, на какой сервер его кинет в этот раз и еще куча моментов. Но такая ситуация будет 100%. А именно конфликты репликаций и пропадание данных. На файловых же серверах можно выставить в приоритет один сервер, который будет реплицировать на второй и в случаее падания первого перехватит роль.
          2. Нагрузка на сеть. Т. к. каждое изменение должно будет реплицироваться на каждый RDSH.

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

          1. Сергей /

            Так. А если складировать профили на одном из серверов? А второй делать холодную реплику тем же DFS или тупо бекап с помощью встроенного функционала Windows Server. В случае чего просто переключаю в настройках на другую папку на тором таком же сервере и все долно будет дальше работать. Ну не автоматом, но хоть так. Больше 600 тыр мне на это не дают все равно.

  79. Сергей /

    НУ в тестовой среде у меня работает.. с 7 пользователями на виртуалках все работает. Понимаю что при нагрузках будет как то по другому. То есть Вы уверены, что для профилей все таки надо использовать сервера в файловом кластере?? Просто так угораем на винде достаточно сильно ибо только винсервер - 200 тыр и это не считая еще двух серверов железа. Попробовал положить профили vhdx на хранилище Synology - не прокатило конечно, FS нужна NTFS, которую можно там получить только через ISCSI.

    1. AlektroNik /

      Если нет виртуализации, то поднять файловый сервер на винде и расшарить папку, что может быть проще?

      1. Сергей /

        Есть виртуализация, но она то тут причем?.. Ваш вариант самый простой, но совсем не отказоустойчивый. По-этой причине надо два получается файловых сервера. А если два, то уже совсем другие деньги (( Или я что то не понимаю?

        1. AlektroNik /

          Ну если есть прослойка виртуализации, к примеру ESXi, то можно подключить по любому протоколу, кроме CIFS конечно любую хранилку, в том числе и synology, к примеру NFS или в вашем случае iSCSI будет выгодней с 1Гбит каналами. Создать на ней виртуалку с сервером или даже двумя файловыми серверами, включить на хранилке дедуплекацию для экономии места, объеденить в файловый кластер или настроить dfs репликацию (репликация виртуальных дисков с профилями пользователей будет происходить только тогда, когда эти виртуальные диски будут свободны, а именно когда пользователь разлогинится).
          Тем самым получаем.
          1. Независим от протокола по которому подключаем массив для хранения.
          2. Высокую доступность. Простоту миграции между хостами этих виртуальных файловых серверов, т. к. даже сами виртуалки можно положить на синолоджи и пустить по 4-ем 1Гбитным каналам.
          3. Отказоустойчивость. Высокую степень защиты самой системы файловых серверов за счет наличия двух файловых серверов.
          4. Дедуплекация поможет решить проблему с недостатком места.
          5. Ну и в идеале куда-то это все дело бекапить. Т. к. единственное узкое и небезопасное место получилась синолоджи.

      2. Сергей /

        У меня была идея такая. НО все равно на виртуалки ставить ОС.. А они стоят денег. Одна что то как то страшно, а два на два разных хостовых сервера - это уже много. Да и честно говоря мне не очень нравится идея с ISCSI Очень часто он по разным причинам не подключается автоматом и отваливается. По мне так получается проще купить сервер с дохлым процом 16 гигами оперативы и 14 дисковыми юнитами. Вообще не понимаю почему автор заметки забраковал первоначальную идею? не уж то так сильно жрет процессор и память файловая составляющая? Ведь диски для всего этого дела разные. Я только за сеть переживаю, но не думаю что реально там будет большой трафик..

        1. AlektroNik /

          Писал, писал ... сайт разорвал соединение и все пропало :(

          Короче:
          1. Виндовый сервер можно заменить FreeNAS и т. д.
          2. iSCSI хороший протокол, и просто так не падает, почитай те про тонкости настройки. Темболее для Вас он выгоднее чем NFS с 1Гбитными каналами.
          3. Купить дополнительный сервер никогда не помешает, дальше все в Ваших руках.

          1. Сергей /

            Так. По очереди..
            1. FreeNas не пойдет, ведь там разделы нельзя делать NTFS насколько я помню.По этому он не лучше Synology.
            2. Да все верно настроено. Но при рестарте, что бывает часто, у нас тут с электричеством беда не всегда все успевает нормально запуститься (( Да и все равно внутри сервера подключенное железно лучше. Оптика типа FC хорошо, но у нас такого не будет никогда )))
            3. Купить ДА.. Но сейчас есть задача внедрить чтобы на это денег дали . Главное чтобы денег дали, а чем дороже тем шансов меньше.
            4. Про DFS понял.. Не подумал про эти косяки с реплакацией. Действительно может случиться беда. Но тогда вопрос остается открытым - варианта с отказоустойчивым файловым хранилищем нет?

  80. Алексей /

    Настроил по инструкции тестовую ферму из 3 серверов + SQL(пока без сертификатов). Вместо NLB использую DNS RR. Все развернуто в виртуальной среде VMware.
    Эксперимент: подключаю 6 пользователей к ферме. RDCB раскидывает по 2 пользователя на каждый RDSH. Отключаю от сети один из серверов. 2 пользователя отваливаются. Пытаюсь подключиться снова — RDCB запрашивает авторизацию, а после успешной авторизации не происходит создание новой сессии на другом RDSH. Клиент просто не может установить соединение.
    Сессии «отвалившегося» сервера продолжают фигурировать в списке, закрыть их не получается. Пользователи не могут работать.
    Если я правильно понимаю ситуацию, RDCB проводит авторизацию, видит, что у пользователя уже есть активная сессия и пытается переправить пользователя на «мертвый» сервер.
    Google молчит. Натыкался на несколько подомных случаев, но все они остались без ответа.

    1. Вадим /

      Да, похоже не у Вас одного такая ситуация, когда RDCB редиректит на мертвый хост. Есть мнение, что такое поведение из-за совмещенных ролей RDCB и Session Host и механизм перестает корректно отрабатывать. https://social.technet.microsoft.com/Forums/windowsserver/en-US/757c747f-b390-4f0a-aeb2-493400f6029a/windows-server-2012-r2-session-broker-offline-server-detection?forum=winserverTS

      1. Dcrash /

        А еще нельзя делать ha rdcb и нацеливать его на ha sql размещенном на тех же узлах что и брокер. Брокер не видит sql.

  81. Алексей Максимов / Автор записи

    Сергей, на мой взгляд, скрещивать DFS-R с перемещаемыми профилями идея скверная. Если есть 3 мощных сервера, то почему бы не сделать из них 3 хоста виртуализации и сделать все нужные серверы (RDSH/RDCB/FS) виртуальными. Хранилище с ISCSI использовать для общей дисковой ёмкости для построения кластеров Hyper-V и FS.

    1. Сергей /

      Виртуализировать RDSH мне точно не хочется. Терять в производительности не хочется.. Сейчас один из таких серверов тянет 120 юзеров активных, при этом он еле справляется и реально тормозит. второй 90.. Сейчас куплено 350 юзеров, то есть все сервера будут загружены по 110-120 юзеров и этом прямо тяжело и без виртуализации. RDCB виртуализирую, ибо на них не будет никакой нагрузки как я понимаю, они чистые посредники. Синолоджи тухловаты для построения кластера, его можно только как файловое хранилище использовать. Вообще я отказался от виртуализации в Exchange. И тут мне кажется виртуализировать можно только RDCB. А может вообще не делать перемещаемые профили?? правда беда будет если накроется один из них..

      1. Алексей Максимов / Автор записи

        Полная виртуализация всех сервисов это удобно и правильно. Вопрос лишь в корректности распределения нагрузок. Нравятся вам железные серверы, ради бога. Тогда не спрашивайте, как сшить десять шапок из трёх маленьких шкурок :)

        1. Сергей /

          Ой.. Не, все виртуализировать это хорошо когда блейды, когда виндатацентры.. А мне нет смысла.. У меня как гугле сейчас.. Огромное колличество мелких серверов. Смысл виртуализировать если на него все равно больше двух виртуалок не разместишь нормально.

  82. Павел /

    я новичок в этом деле... вот хоть ты тресни не работает строка подключения к SQL.. пишет что БД недоступна с посредника.

    1. Алексей Максимов / Автор записи

      Пишите на форум

  83. Дмитрий /

    Доброго времени суток Алексей. У меня имеется два хоста с WS 2012 R2 Hyper-V. Стоит задача развернуть отказоустойчивую ферму RDS на трех виртуальных машинах WS 2012 R2 с перемещаемыми профилями. Скажите - какую схему балансировки предпочесть ,обычный RDCB или + NLB ?
    То есть сам кластер виртуальных машин на Hyper-V+ отказоустойчивая виртуализация RDS с балансировкой нагрузки. Общее количество пользователей , кто работает с удаленными рабочими столами- где то 170. Есть ли у вас что-то похожее из настроек, что посоветуете ?
    Спасибо!

    1. Алексей Максимов / Автор записи

      Здравствуйте Дмитрий.
      С NLB не рекомендую связываться вообще.
      Используйте DNS RR балансировку для RDCB.
      Серверы с роль RDCB отделяйте от серверов с ролью RDSH. В такой конфигурации "непоняток" в поведении RDS будет меньше всего.
      Я про это всё уже писал ранее в комментариях.

      1. AzzY /

        извиняюсь, может пропустил, а почему с NLB не стоит связываться ?

  84. Дмитрий /

    Ваша статья пойдет для моей задачи (выборочно) ?

    Спасибо!

    1. Алексей Максимов / Автор записи

      Ну это не мне решать, а Вам :)

      1. Дмитрий /

        Да я хотел узнать- есть ли у вас статья для построение фермы RDSH+RDCB+DNS RR и все это для Windows Server 2012 R2 ?

        Спасибо!

        1. Алексей Максимов / Автор записи

          Описанные манипуляции можно взять за основу, откинув часть про NLB. Что касается построения классической схемы с DNS RR, то про нюансы читайте следующие статьи про RDS в блоге.

          1. Дмитрий /

            Да, спасибо.Просто в подавляющем большинстве , даже на англоязычных страницах, почему то все заточены именно на HA RDCB.А что же без HA и без SQL просто два, или три RDCB не поставить, либо это для повышения отказоустойчивости ? Если RDWeb и RemoteAPP не нужен, а нужно только одно, что бы пользователи попадали на свой рабочий стол и имели бы все те же папки и документы на всех трех RDSH и в случае отказа одного из RDSH сессии были бы перенаправлены на оставшиеся при помощи RDCB+DNS RR.

  85. madmongoose /

    При схеме работы RDS HA из двух серверов со всеми ролями, при отключении одного из серверов, нет возможности завершить зависшие сессии работающих пользователей. Никаким доступным способом, ни через PowerShell ни через GUI. И даже перезагрузка оставшегося рабочего брокера не решает проблему. Т.е. для того, чтобы отключить зависших пользователей необходимо разобрать ферму. Вот обсуждение, к которому хочу привлечь Ваше внимание https://social.technet.microsoft.com/Forums/ru-RU/2372c220-47eb-4d96-b12a-39fe4f699120/rds-ha-?forum=WS8ru

    1. AlektroNik /

      Момент действительно интересен. Влезать в переписку на технете не стал. Ждем ответа от Microsoft. Но на мой взгляд надо ковырять SQL базу конект брокеров. У нас лично я не поднимал HA конект брокеров. Они на сколько я помню должны подключаться к одной и тоже базе, а так как SQL кластера у нас нет, все равно остается одна точка отказа. Так что я выбрал просто бекапить один единственный конект брокер :)

    2. Леонид /

      Коллеги, способ есть. Как правильно заметил AlektroNik, необходимо лезть в SQL базу CB. Нужно дать ему (брокеру) понять, что одного из серверов больше нет. В случае возникновения вышеописанной ситуации мне помогает небольшой скрипт. Здесь Servername - имя "упавшего" сервера.
      delete from EnvironmentProperty where EnvironmentId in (select id from Environment where name='Servername');
      delete from Environment where name='Servername ';
      delete from TargetProperty where targetid in (select id from target where name='Servername ');
      delete from TargetIp where targetid in (select id from target where name=' Servername');
      delete from session where targetid in (select id from target where name=' Servername')
      delete from target where name='Servername ';

      Используйте на свой страх и риск. Я проверял 3 раза, помогало.

      1. odarchuk /

        Как часто брокер проверят доступность SH ? Этот интервал уменьшить как-то можно?

    3. Дмитрий /

      А их и не надо завершать, отвиснут при перезапуске ВМ на другой ноде кластера Hyper-V.

  86. Дмитрий /

    Добрый день коллеги!
    Да, неправильно выразился по поводу переключения на другой RDSH в случае падения ноды кластера. Но все таки сессия оживет, при перезапуске ВМ с RDSH на другой ноде кластера Hyper-V.
    Но плохо что нет какого-то официального решения на предмет - если ВМ не может запуститься, а пользователи были залогинены на этом RDSH- и как тут корректно "отстрелить сессии" , что бы пользователи использовали другой EDSH ? И GPO cо своими настройками неактивности сессий так же не поможет- в случае падения самой ВМ..
    Есть решения ?

  87. Игорь /

    Коллеги, подскажите по такому вопросу. У меня для удаленного доступа к ферме работает шлюз удаленных рабочих столов. Так получилось, что пришлось его включить и для локальных адресов. Это было сделано для одного важного человека с Макбуком, чтобы он, не меняя настройки подключения, входил на ферму и внутри офиса и снаружи. Но для других сотрудников входить изнутри через шлюз не надо и поэтому через групповую политику я запретил использовать шлюз. В итоге, если любой сотрудник запускает RDP-клиент и подключается к ферме, то подключение через шлюз не идет, НО, при попытке войти в опубликованное приложение RemoteApp через браузер или через распространенный ярлык, соединение всё равно идет через шлюз.
    Вопрос: как отключить шлюз при входе в приложение RemoteApp?

    1. AlektroNik /

      Чет, по-моему, Игорь вы перемудрили. Возможно я просто не до понял весь план :)
      1. Для того, чтобы пользователи одинаково могли подключаться и с внутренней сети и снаружи можно воспользоваться DNS. Т. е. прописываем одинаково внешнее имя, к примеру, rds.domain.ru на внешнем DNS 200.200.200.200 и на внутреннем 10.10.10.10. Знаю что есть проблема указать внешнее имя ... но это не проблема :), вот решение https://gallery.technet.microsoft.com/Change-published-FQDN-for-2a029b80
      2. В настройках ярлыков, которые вы распространяете, можно настроить использовать шлюз или нет. У меня, на пример, настроено использовать шлюз, но не использовать его для локальных адресов. А для пользователей. Скорей всего есть возможность редактировать генерируемые ярлыки через реестр, именно там хранятся настройки для этих ярлыков.

  88. Игорь /

    Сейчас постараюсь объяснить подробнее :)
    Доступ на ферму снаружи без VPN возможен только через шлюз удаленных рабочих столов, имеющий имя rdgw.company.ru. Это имя прописано во внешней зоне DNS и разрешается отовсюду. В RDP-клиенте Windows есть галочка - не использовать шлюз из локальной сети, что позволяет не меняя настроек подключаться из офиса без шлюза, а снаружи через шлюз. Для этого не надо прописывать одинаковое имя во внешней и внутренней зонах. Более того, внутреннее имя фермы вообще не светится наружу. Наружу смотрит только шлюз.
    Но в RDP-клиенте Макбука нет такой галочки и поэтому надо либо делать 2 соединения (изнутри и снаружи), либо подключаться по VPN. Но человек упёрся и не хочет, поэтому пришлось разрешить доступ через шлюз из локальной сети.
    Как в настройках ярлыков указать не использовать шлюз? Ярлык RemoteApp - это запуск rdp-клиента mstsc.exe с определенными параметрами, например "%systemroot%\system32\mstsc.exe "C:\Users\user.name\AppData\Roaming\Microsoft\Workspaces\{9EA9CB68-5ED3-4BC1-8D86-92F8E0F0A81E}\Resource\Excel 2016 (Work Resources).rdp"
    Какой параметр ему указать, чтобы не использовать шлюз?
    Самое интересное то, что я через ГПО запретил для всех использовать шлюз изнутри и если просто запустить mstsc.exe, то вкладка со шлюзом серая, туда нельзя внести изменения и шлюза там нет.
    Но RemoteApp видимо подключается как-то по-своему :)

    1. AlektroNik /

      1. Я имел введу что если прописать во внутреннем DNS сервере запись rdgw.company.ru = 10.10.10.10, то галочка "не использовать шлюз из локальной сети" работать будет, иначе будет резолвить rdgw.company.ru = 200.200.200.200 и всех подряд будет кидать через шлюз, т. к. будет видеть интернетовский IP. Ну возможно у вас так и сделано :)
      2. Я не пойму почему проблема с человеком на маке, а изменить Вам нужно ярлыки на винде. Хотя и догадываюсь, что именно по тому, что у Вас именно не корректно отрабатывает галочка "не использовать шлюз из локальной сети", собственно причина описана в первом пункте. И вы так сказать из-за того, что на маке настроить не получается решили пойти от обратного и перенастроить тогда для всех остальных.
      3. Просмотреть параметры можно открыв rdp ярлык банально в блокноте. Параметр, которым можно отключить "gatewayusagemethod:i:0" и удалить два последних параметра, которые за подпись отвечают "signscope" и "signature" иначе будет ругаться что ярлык не действителен. Данный rdp потом можно ручками раздать. НО как я уже говорил ранее такая фишка не прокатит, если пользователь скачает ярлык с портала сам, данный ярлык можно поправить самому зайдя в реестр, тогда будет все красиво и с подписями.
      4. GPO скорей всего просто блокирует вкладку настроек, наврятли GPO настолько крут и безрассуден чтобы поменять параметры внутри подписанного rdp файла (после чего он соответственно не будет работать) или запретить 443 порт для пользователя ... сомневаюсь в общем. А вот то, что оно влияет просто на mstsc.exe и запуск его с параметрами это нормально, так и должно быть, но не *.rdp.

      P. S. Если нужна будет помощь в поиске параметров в реестре, напишите, гляну.

  89. Игорь /

    rdgw.company.ru у меня прописан и во внешней и во внутренней зонах, как вы правильно сказали.
    С клиентами RDP от Microsoft как раз нет проблем из-за наличия в настройках "волшебной" галочки. Если она стоит, то при подключении изнутри, RDP-клиент игнорирует шлюз и подключается на сервера фермы напрямую. А вот с того же самого ноутбука снаружи подключение идет через шлюз.
    Более того, до этого случая с Макбуком в настройках шлюза стоял запрет на внутренние подключения.
    А на Макбуке такой галочки нет и мне пришлось включить шлюз для внутренних подключений и прописать в настройках клиента на маке доступ через шлюз, и теперь ему не приходится менять настройки в зависимости от того, где он находится.
    Теперь проблем на Маке нет, а есть проблема, что кликая на ярлык опубликованного приложения RemoteApp, соединение идет через шлюз, а не напрямую.
    Это неудобно вдвойне, так как во-первых, перестала работать сквозная авторизация SSO, а во-вторых это просто нелогично, ходить через шлюз из локальной сети, где сервера и так доступны.
    Ярлыки приложений RemoteApp у меня распространяются автоматом через скрипт (клиенты Windows 7) как написано здесь - https://gallery.technet.microsoft.com/scriptcenter/313a95b3-a698-4bb0-9ed6-d89a47eacc72
    Как сделать так, чтобы в ярлыках параметр gatewayusagemethod автоматически был как вы написали в нуле, а не в двойке как у меня?
    Делать это вручную нереально.
    Спасибо.

    1. AlektroNik /

      А мой совет с редактированием ярлыков в реестре не помог?

  90. Игорь /

    Как их редактировать в реестре? Ярлыки опубликованных приложений RemoteApp у меня распространяются автоматически средствами скрипта power shell c файлом параметров, как указано по ссылке. В Windows 8 это делается через ГПО, но в семёрке такой политики нет и приходится делать через скрипт.
    В итоге его выполнения, у юзеров появляются ярлыки в разделе "подключения к удаленным рабочим столам".
    В реестре клиентских компов нет параметров этих ярлыков. Поэтому я не совсем понимаю ваш совет.
    Мне нужно понять механизм формирования этого ярлыка и как сделать так, чтобы во всех ярлыках было: «gatewayusagemethod:i:0»
    То, что можно открыть ярлык в блокноте и изменить 1 на 0 понятно, но это ручной труд.

  91. Игорь /

    Так, походу надо это менять в реестре на стороне сервера сеансов (он же у меня сервер веб-доступа), а не на стороне клиента. Там у каждого опубликованного приложения RemoteApp есть своя ветка. Сейчас попробую изменить и по результатам отпишусь.

    1. AlektroNik /

      1. Вчера не было времени отписаться
      2. А кто говорил, что менять реестр надо на стороне клиента? Куча статей по настройке RDS, включая вчерашнюю или позавчерашнюю статью Максимова Алексея и везде указываются ветки реестра именно серверной стороны. Само собой на стороне сервера, и при том на стороне сервера с ролью Connection Broker. Рад, что всего лишь с третьего раза упоминания реестра, вы меня услышали и начали двигаться в нужном направлении :)
      Вот ветка на сервере с ролью Connection Broker:
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishedResources\PublishedFarms\\Applications\]
      Вот параметр который формирует файл *.rdp:
      "RDPFileContents"

      1. AlektroNik /

        Движок wordpress удалил часть пути в ветке :)
        Повтор.
        Вот ветка на сервере с ролью Connection Broker:
        [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishedResources\PublishedFarms\"Коллекция"\Applications\"Приложение"]
        Вот параметр который формирует файл *.rdp:
        «RDPFileContents»

    2. AlektroNik /

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

  92. Игорь /

    AlektroNik, спасибо. Я опубликовал тестовое приложение и на всех серверах-брокерах изменил указанные настройки реестра, в итоге доступ к нему пошел минуя шлюз :)
    Про единые настройки коллекции RDS_Collection тоже подумал. Скорее всего достаточно будет изменить в одном месте здесь для всех опубликованных приложений.
    ps: для маковода я вообще не распространяю приложения, он тупо заходит на удаленный рабочий стол через rdp-клиент.
    В любом случае, большое спасибо за помощь.

    1. AlektroNik /

      Был рад помочь.
      А как вы даете доступ макаводу к коллекции RDS_Collection. Если мне память не изменяет, подключиться к серверу с ролью RDSH после ввода его в коллекцию невозможно (консольный сеанс не считаю). Но Алексей Максимов 04.04 написал статью по поводу того как это можно обойти (https://blog.it-kb.ru/2016/04/04/rds-connection-broker-redirection-session-hint-tsvurl-defaulttsvurl-workaround-for-incompatible-and-legacy-rdclient-rdp-clients-on-windows-server-2012-r2/). Я правда пока не тестил.
      Интересно, а как вы решили эту проблему?

      1. Игорь /

        Да никак собственно. Маковод не пользуется опубликованными приложениями. Он заходит на ферму через RDP-клиент и тупо запускает приложение на своем удаленном рабочем столе.
        Доступ же к коллекции через доставку ярлыков используют клиенты Windows.
        Есть еще web-app, но он как-то не пользуется популярностью.
        У меня все 8 серверов с ролью и хоста, и брокера + один сервер с ролью шлюза и лицензирования.

        1. Алексей Максимов / Автор записи

          Виталий мне тут подсказывает, что под OS X есть нативный RDP клиент от Microsoft, который поддерживает в том числе и получение RemoteApp приложений из фида RDS. О подробностях можете распросить его на форуме.

          1. Игорь /

            Клиент-то есть, только вот со шлюзом он работать, зараза не умеет. Да и в домен данный Мак не входит.

  93. Роман /

    Коллеги приветствую!
    Первым делом спасибо за материал , очень доступно и просто!
    Может Вы поможете мне решить задачу ?
    Есть сервер с роль RDSH. Второй сервер – роли RD Connection Broker, Licensing. Оба WS 2012 R2.
    Надо – определенной группе пользователей дать право на просмотр удаленных сессий (Shadow). При этом они не должны быть админами ни на первом, ни на втором сервере. Реализуем ли данный вопрос ?
    Спасибо!

    1. AlektroNik /

      Возможно запоздал, но до этого идей небыло, а тут чет поперло :)
      Наткнулся тут на фразу с какого-то сайта:
      "Подключаться к чужим сессиям может только администратор сервера. Делегировать эти права обычным пользователем нельзя"
      Попробуйте реализовать данный функционал через "Удаленный помощника Windows" в группу админов там точно добавлять не надо

  94. Алексей Максимов / Автор записи

    Друзья мои, ещё раз прошу не писать в ветку комментариев вопросы не связанные с темой статьи. Все подобные комментарии будут удаляться. Убедительно прошу вас пользоваться нашими Форумом для подобных обсуждений.

  95. Дмитрий /

    Да, извините. Черканул в форум..

  96. AlektroNik /

    Пытаюсь настроить RD Web SSO на Win 2012 R2 - не получается.
    1. "выключим анонимную аутентификацию (Anonymous Authentication), аутентификацию на основе формы (Forms Authentication) и включим Windows Authentication" - сделано на обоих серверах RD WEB
    2. iisreset /noforce - сделано на обоих серверах RD WEB
    3. На клиенте назначен в свойствах безопасности IE "Автоматический вход с текущим именем пользователя и паролем" (без данной настройки появляется маленькое окошко ввода логина и пароля)

    Итог. Все равно попадает на оригинальную форму входа RDS WEB. Такое ощущение что не выключена настройка IIS аутентификацию на основе формы (Forms Authentication), но в Win 2012 R2 она выключена по умолчанию на папке RDWeb, я ее в принципе и не трогал.

    Кто-нибудь сталкивался с такой проблемой? Может на 2012 R2 как-то залочили или еще чего?

    1. AlektroNik /

      Вопрос РЕШЕН.
      Не обратил внимание, а еще точнее перечитав не мало статей все они указывают на то, что нужно настройки проверки подлинности указывать для папки RDWeb, а надо для RDWeb > Pages (здесь в статье все правильно).

      1. AlektroNik /

        Заметил, кстати, что в статье не упоминается "в свойствах безопасности IE «Автоматический вход с текущим именем пользователя и паролем» (без данной настройки появляется маленькое окошко ввода логина и пароля)". Т. е. если вы не включите параметр "Параметры входа" (В самом IE называется просто "Вход") любым из доступных методов, то автоматического входа все равно не произойдет.

        Было бы неплохо добавить это в статью.
        Вот моя конкретная рекомендация:
        Проще всего раздать групповой политикой назначение сайта с веб админкой (тот сервер, который вы в адресной строке вписываете, чтобы в веб интерфейс попасть) в зону "Местной интрасети" (цифра "1"). "Параметры входа" в разделе "Зона интрасети" вообще можно не трогать т. к. если этот параметр политики не настроен, параметр входа имеет значение "Автоматический вход только в зону интрасети".

        Путь размещения параметров:
        Конфигурация пользователя или Конфигурация компьютера/Шаблоны администрирования/Компоненты Windows/Internet Explorer/Панель управления браузером/Вкладка «Безопасность»
        Параметр:
        Список назначений зоны для веб-сайтов - Включить
        Имя значения: rdwh.company.com
        Значение: 1

  97. Дмитрий /

    Доброго времени суток Алексей. Назначенные нами сертификаты будут автоматически установлены на все сервера, которые участвуют в нашем RDS развёртывании.
    К сожалению и увы не вижу что бы сертификат распространился на узлы коллекции.С брокером все хорошо он принимает запрос и не ругается более, но а вот узлы в коллекции как ругались на свой собственный сертификат, так и продолжают. Я в ручную даже импортировал PFX сертификат в personal и пробовал в Remote Desctop их так же импортировать, перезагружал, выключал файервол- все напрасно...ругань осталось.
    Что-то еще можно попробовать сделать ?
    Спасибо!.

  98. Дмитрий /

    Вобчем хоть ты тресни, а узлы сеансов выдают самозаверенный сертифкат! Удаление и пеерзаведение в домен так же не помогает...куда еще копать ?

  99. Игорь /

    AlektroNik, привет. Хочешь прикол? Я изменил на всех серверах фермы настройку gatewayusagemethod с 1 на 0 для одного приложения и запросы на него пошли миную шлюз. Но, через некоторое время параметр опять стал 1 :)

    1. AlektroNik /

      Привет. Я подозреваю, что это могло произойти из-за того, что заходили в приложение и, даже если не меняли свойства разворачиваемого приложения, просто нажали "ОК" и подтянулись настройки из коллекции. В принципе я подозревал, что так может случиться, поэтому сразу и предложил подумать над изменением именно коллекции или распространять ярлыки не через веб-интерфейс, а через скрипты (грубо говоря копируя клиенту на рабочий стол или в программы, есть аналогичная политика). Ну и третий вариант. Создать политику правки реестра с действием "Замена" этих параметров реестра, тогда каждые 40 минут (если мне не изменяет память именно через столько происходит автоматическое обновление политик) будет происходить замена автоматом. Можно попробовать пойти дальше и создать напрямую в реестре отдельное приложение таким способом, что бы его не правили или не видели из панели управления Коллекцией ... а еще можно поиграться с правами безопасности, чтобы данный параметр реестра могли править только Вы, а сам сервер не мог ...
      Ну вот как-то так :)

  100. Сергей /

    Алексей, как вы делали отказоустойчивый экземпляр SQL Server?

    Так же хотелось бы подробно услышать, почему вас не устроила схема с NLB? В комментариях вы писали про сетевые проблемы, это и все? Или что-то не прокатило в работе службы RDCB на NLB?

    Если использовать механизм с RR DNS, то как Вы убираете из работы недоступные серверы в случае отказа или мэинтейнса? Руками из DNS? Так же из этого вопроса вытекает еще один. Если использовать RR DNS, и клиенты все внешние, то нужно вешать роль RD Gateway, её так же надо дублировать для обеспечения бесперебойности сервиса. У Вас был такой опыт?

    1. Алексей Максимов / Автор записи

      БД брокера у меня лежит в двух-узловом кластере SQL Server 2012.
      C NLB узлы брокера вели себя непредсказуемо, например могли продолжать перенаправлять клиентов на упавший узел RDSH. Это всё было в пору WS2012. Новую ферму на WS2012R2 поднимали уже с нативными механизмами DNS RR. При падении узла всё работает штатно, клиенты практически сразу начинают перенаправляться на другие доступные узлы RDSH без каких-то ручных шаманств. С RDGW дела к сожалению не имел, а может к счастью :)

      1. Сергей /

        Не очень понятно, как брокер понимает, что хост сессий перестал быть доступен и не возвращает клиентам его IP?

        1. Алексей Максимов / Автор записи

          В базе данных брокера есть информация о последних отметках времени проверки доступности хостов. Пример есть здесь http://www.virtualizationadmin.com/articles-tutorials/vdi-articles/microsoft-hyper-v/taking-closer-look-rd-connection-broker-high-availability-windows-server-2012.html

    2. AlektroNik /

      NLB лично мне тоже не понравился ... пробовал как-то больно нестабильно работал и геморойно по сравнению с RR DNS.

      По поводу RD Gateway. Лично у меня алиас ссылает на 2 IP от двух разных RD Gateway. Подключаюсь к одному (к какому именно видно через консоль управление). Тушу у сервака сеть ... бывает несколько секунд заминка и автоматическое подключение ко второму, а бывает даже и окошко переподключения не успевает появиться. Просто поделился практикой.

  101. Алексей Максимов / Автор записи

    На сегодняшний день я исхожу из мысли, что серверы с ролью RDCB должны быть отделены от серверов с ролью RDSH.
    Мой опыт показывает, что именно в такой конфигурации связка RDS + DNS RR работает так, как должна, без каких-либо странностей.
    Например, 2 сервера RDCB записаны с одним виртуальным именем в DNS (это и есть имя фермы брокера)
    Хосты RDSH стоят особняком, например их 5 штук.

    1) RDP-клиент посылает запрос в DNS на разрешение FQDN имени фермы брокера.
    2) DNS сервер отдаёт клиенту несколько IP адресов серверов с ролью брокера
    (при каждом новом запросе клиента приоритет выдаваемых DNS сервером IP-адресов меняется, таким образом обеспечивается элементарная балансировка нагрузки между хостами брокера. это и есть суть DNS RR)
    3) RDP-клиент пытается подключиться к первому IP из списка, который получил из DNS. Если брокер с таким IP недоступен, клиент моментально пытается использовать следующий IP (задержек при этом практически не ощущается).
    4) Подключившись к живому брокеру RDCB клиент получает от него информацию о том, к какому хосту RDSH он должен подключиться и перенаправляется на этот хост.
    (брокер имеет базу данных, где хранит информацию о всех активных клиентских сессиях на всех хостах RDSH и сам определяет какой хост менее нагружен по количеству сессий и направляет клиента именно на менее нагруженный RDSH)

    До WS2012 логика работы брокера была несколько иная. И высоко-доступный брокер там работал в модели активный/пассивный (использовалась функциональность Windows Failover Clustering)
    Для старых версий Windows Server есть наглядная картинка, например здесь https://technet.microsoft.com/en-us/library/cc772418(v=ws.10).aspx

    Начиная с WS2012 брокер изменил модель на активный/активный, и Windows Failover Clustering теперь больше не используется, вместо этого предлагается простая балансировка между активными брокерами с помощью DNS RR
    Вот очень наглядное объяснение с картинкой https://blogs.technet.microsoft.com/enterprisemobility/2012/06/27/rd-connection-broker-high-availability-in-windows-server-2012/

    1. Сергей /

      А вот это просто шикарное объяснение. Спасибо!

  102. Василь Султанов /

    Добрый день! В статье никак не отражен факт настройки брандмауэра. В тестовой среде настраиваю ферму с использованием NLB, первая машина в кластере, но другие не добавляются по причине того, что невозможно их обнаружить. При выключении брандмауэра хосты находятся, но хотелось бы иметь фаер включённым. Впрочем, прочитав все комментарии понимаю, что автор ушёл с NLB на RR и активно советует последовать примеру. Однако - там стоит ожидать подвоха с фаером?

    1. Алексей Максимов / Автор записи

      что автор ушёл с NLB на RR и активно советует последовать примеру

      Всё верно.

      там стоит ожидать подвоха с фаером?

      Не думаю.

  103. odarchuk /

    коллеги, у меня есть 2 отдельных хоста с ролью RD Web Access. Юзерам нужно предоставить единый URL. Нужно создавать отдельную RR DNS-запись для этого или можно использовать RR DNS-запись фермы в RD CB ???

    1. Алексей Максимов / Автор записи

      У меня используется одно и тоже FQDN-имя (RR) и для Connection Broker и для Web Access (эти роли совмещены в рамках одного узла).

  104. Вышлов Сергей /

    Добрый день.
    Используя связку RDS + DNS RR с условием, что "серверы с ролью RDCB, отделены от серверов с ролью RDSH". Получится ли сделать разделение пользователей на разные серверы в соответствии с определенной коллекцией.
    Допустим есть user1 (группа Group1) и user2 (группа Group2), так же я 3 сервера - RDS1, RDS2, RDS3
    есть две коллекции Collection1 (доступна пользователям из Group1, сервера RDS1, RDS2) и Collection2 (доступна пользователям из Group2, сервера RDS3).
    Можно как то сделать чтоб user1 ходил либо на RDS1 либо на RDS2, а пользователь user2 на RDS3.

    1. Алексей Максимов / Автор записи

      Здравствуйте Сергей. Здесь в комментариях этот вопрос поднимался уже не однократно.

      1. Вышлов Сергей /

        Из комментариев понял что разнесением ролей RDCB и RDSH решается проблема с зависанием сессий и переподключением пользователей. А вот про распределение пользователей на разные сервера на основе сеансов/групп пользователей ответа не нашел, кроме того как "а зачем это делать вообще"

        1. Алексей Максимов / Автор записи

          Насколько я понимаю, архитектура RDS такова, что классическое использование подразумевает принцип "1 Коллекция = 1 Брокер (или ферма Брокеров)". Дополнительно можете почитать рассуждения на эту тему здесь и здесь.

        2. odarchuk /

          у меня на 2016 есть НА-брокер и 8 хостов. для коллекция1 юзается 6 серверов, для коллекция2 - 2 сервера. доступ в коллекция1 предосавлен лишь для группа1 ну и со 2й коллекцией аналогично. т.е. решена такая же задача в лоб )

          1. Алексей Максимов / Автор записи

            Тогда возникает ряд вопросов. Пользователи используют один и тот же ярлык для подключения к ферме брокера или Вы делали какую-то модификацию RDP-файлов под разные коллекции? Каким образом брокер понимает, что пользователя user1 нужно направить на любой из доступных серверов именно коллекции Collection1, а не Collection2 ?

          2. odarchuk /

            Алексей Максимов, РДП-файлов два.
            Я в коллекции четко задал группу которая может к ней подключаться.Юзеры разбросаны по группам

          3. Алексей Максимов / Автор записи

            Ну и теперь ещё осветите различие параметров, которые отличаются в Ваших RDP-файлах для двух разных коллекций, чтобы у Сергея, который задал вопрос, была полная логическая цепочка того, как построить такое разделение используя единый пул брокеров.

          4. odarchuk /

            параметром loadbalanceinfo:s:tsv:
            там соответствующие коллекции прописаны. Но сам РДП-файл я руками не менял. скачал их с веб-апп

  105. Вышлов Сергей /

    Как я понимаю, данном случае сперва работает DNS RR и выдается определенный сервер, а уж потом проверяется в соответствии с коллекцией и группой, можно ли пользователю к нему подключится.
    Т.е user1 подключается, DNS RR дает ему допустим сервер RDS3, а потом проверяется коллекция и права доступа в ней (а там доступ только для Group2 с пользователем user2). В результате пользователь user1 не может подключиться, пока DNS RR не выдаст ему сервер RDS1 или RDS2

  106. Михаил /

    Добрый день, все настроил по статье, 2 Server 2012 R2 + NLB. из внутренней сети все подключаются по имени NLB кластера прекрасно, RDSH распределяет как нужно. Из внешки проброшен порт на 3389 кластера - тут начинаются проблемы - часть пользователей входит на сервер1, часть нет. Я пробую с телефона под пользователем testtest - входит на сервер1, под пользователем testtest1 висит 30 сек черный экран и отключается сеанс. В логах принимающего сервера вижу подключение "Клиент посредника подключений к удаленному рабочему столу успешно перенаправил пользователя ..." но в логах этого конечного сервера нет ничего о том, что он что то принимает (или где смотреть я не нашел). Видимо первое мое подключение отправило пользователя на сервер1 и он сразу принял подключение, а второго пользователя перенаправляет - но второй сервер его уже не принимает и в логах я нигде найти не могу почему

  107. Stas Pavelko /

    Алексей, здравствуйте.
    Строю высокую доступность на сервере 2016. Вопрос по брокерам. Собрал на двух серверах GW-01 и GW-02 HA, общее имя remote.contoso.com. Нужно создать коллекцию средствами powershell , что нужно указывать в качестве брокера ? GW-01,GW-02 или общее имя remote.contoso.com ? С общим не получается, мол, такой брокер не существует.

    1. Алексей Максимов / Автор записи

      Здравствуйте, Стас. Не имел дела с WS2016, поэтому адекватный ответ дать не смогу.

  108. Герасим /

    Алексей приветствую, делаю под статье настройку, однако при заведении группу куда я включил все хосты для фермы используется проверки Windows, и появляется ошибка о которой в начале комментарием ктото говорил, в логах скуля вот это "Ошибка входа пользователя "". Причина: не удалось выполнить вход с использованием проверки подлинности SQL Server. Конфигурация сервера поддерживает только проверку подлинности Windows. [КЛИЕНТ: IP хоста терминалов]
    Как быть? как ему сказать что надо использовать проверку подлинности windows?

    1. Sergei /

      Вам вероятно надо завести имена входа в свойствах MSSQL. И выдать права на нужную базу. А если база еще не создана - выдать db_creator, а после отобрать, оставить только public и db_owner на нужной базе. Добавить логины - развернуть сервер в консоли, выбрать Безопасность - Имена входа. Там можно добавить имя, группу, управляемую сервисную учетку.

    2. Sergei /

      NLB - это балансер на уровне сети, а не на уровне приложения. Вы сами в вопросе ответили себе. Одних пользователей в одну коллекцию, других - в другую. Они даже не увидят неположенные себе коллекции

  109. Герасим /

    Сергей спасибо, да пропустил какие-то моменты, но собрался, посмотрел еще раз и провернул - теперь все работает. Остался вопрос - я сделал две коллекции, для разных типов пользователей и помести лв них разные серверы сессий. использовал так же разные группы, можно ли как то разруливать доступ на разные коллекции обращаясь к одному имени NLB и в соответствии с вхождением в ту или иную группу перенаправлять пользователя между коллекциями?

  110. Герасим /

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

  111. Герасим /

    только два разных имени и объяснив одним куда им идти и другим так же показав другую дорогу?

    1. Sergei /

      Есть развертывание - в него входят сервера, в развертывании есть несколько коллекций, каждая коллекция для определенной группы пользователей, есть имя для входа - rds.contoso.com - каждый, кто придет сюда за ресурсами, будет видеть то, что разрешено видеть его группе. Или я в корне не понимаю вопроса.

  112. Герасим /

    Я хочу получить в итоге ситуацию когда одни пользователи входящие в группу к примеру rdp-adm ходили на один сервер используя одно и тоже имя к примеру "terminal" а другие используя пользователи входящие в другую группу rdp-user и используя для входа тоже самое имя terminal попадали уже на другой сервер. Вот этот функционал возможно реализовать?

  113. Герасим /

    вот эта схема у меня как раз и не работает.
    я только сертификаты и иконки не менял как по статье остальное все как должно быть.
    Пользователь входящий в группу rdp-adm должен идти по кластерному имени terminal через програмульку mstsc. В коллекции я выделил для этой группу сервер term-app02.
    Пользователь входящий в группу rdp-usr должен идти по кластерному имени terminal через програмульку mstsc. В коллекции я выделил для этой группу сервер term-app03.
    по факту происходит следующее, программа несколько раз переспрашивает пароль а потом говорит что пользователь не имеет права ходить на терминал. так как смотрит почему то в сторону группы rdp-usr хотя пользователь входит в группу rdp-adm и должен попадать на term-app02, но попадает он судя по ошибке на term-app03 где коллекция для пользователей..... как еще обьяснить....

    1. Sergei /

      Развертывание так не работает. Вы не сможете подключиться, используя простой rdp-файл или имя перебора в mstsc - так вы всегда будете ломиться именно на сами брокеры подключений, а не в ресурсы развертывания. Если вы обратили внимание, то развертывание невозможно без серверов веб-доступа, потому что именно там на страницах заготовлены специальные параметры подключения к ферме - к ресурсам коллекции.

  114. Герасим /

    или я многого хочу от терминальной фермы на базе мыкрософты?

  115. Герасим /

    эх... понятно. значит есть вероятность веб-доступа по той или иной коллекции ромт-апп

    1. Sergei /

      мой опыт использования показал, что без веб-доступа все это сильно геморнее для конечных пользователей. И сам веб доступ надо использовать через Internet Explorer с разрешением специального rdp-плагина (всплывает при посещении страницы веб-доступа)

  116. Герасим /

    Да согласен. проще будет просто всем инструкции разослать. и тыкать потом ими в монитор - читайте инструкции куда вам можно а куда вам ходу нет.

    1. Sergei /

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

  117. Герасим /

    магия портиться клиентами из под remine rdp. Линукс банально скачивает рдп каждый раз при ображщении к ресурсы в ремот-аппе. и с сертификатом постоянные проблемы даже из инт-пки. клиенты иногда просят врод визио прожекты... но религия не позвоялет им переползти просто на винды не не утомлять глаза админам. посему и думал что рдс наше все .. оказалось не все.

    1. Sergei /

      Можно для сторонних клиентов добавлять ресурс-фиды. Если, конечно, клиенты их поддерживают. MAC OS без проблем, под Linux, я думаю, их тоже найти не проблема. Ресурс фид настраивается так: в приложение вписывается ссылка на ресурсы вида https://rds.contoso.com/rdweb/feed/webfeed.aspx, логин и пароль, и клиент выкачаивает себе все ресурсы из коллекции

      есть так же вариант импортировать в такие клиенты скачанный через google chrome rdp-файл из веб-доступа, но это уже костыль.

  118. odarchuk /

    Если кол-я одна можно зають параметр DefaultTsvUrl REG_SZ tsv://vmresource.1.
    если много то можно пробовать извращаться разными ДНСами как сделал я :)
    Но у меня тонкие клиенты на Вин7 Ебм. как будет на remine rdp - хз
    https://isazonov.wordpress.com/2014/02/06/windows-server-2012-r2-remote-desktop-коллекция-по-умолчанию

    1. AlektroNik /

      Целый день меня эта спам атака добивала.
      Во-первых все написано в статье (серии статей) по поводу групп и коллекций, достаточно просто прочитать.
      Во-вторых что мешает просто взять без всяких вебок создать ярлыки и разослать их хоть по почте хоть групповыми политиками ... да хоть скриптом прям на месте под конкретного пользователя делать, все зависит от среды. По поводу Remmina также можно спокойно создать и скопировать файл подключения. Раз любят Linux значит и работать с ним элементарно должны уметь. Файлы подключений складываются в /home/USER_NAME/.local/share/remmina.
      P. S. Единственный момент, который здесь не освещали (хотя я могу и ошибаться) это настройка RDGW. Особое внимание нужно обратить на то, что в устройствах, на которые, нужно разрешить доступ нужно указать все сервера RDSH и RDCB иначе перенаправление будет работать только с настройкой "на любое устройство". (описание пунктов приблизительное, все гуглится).

  119. Герасим /

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

    1. AlektroNik /

      Ну прям волшебство ... гпо как раз для того и придумано, чтобы не ходить по пользователям. Нет GPO, есть ssh. Пользователи не дают пароль или запрещает политика партии, пусть настривают сами, инструкцию им в руки.
      Рассылки можно и отменить и т. д. Но сколько я уже сижу на этом блоге такая атака впервые, я еще мог бы понять если это не обсуждалось или не описывалось. И опять же малоли кому-то действительно понадобится помощь )))

  120. Андрей /

    Всем привет, все сделал по инструкции , но на этапе Configure High Availability, выдает ошибку "Не удается создать базу данных". Все перепроверил, хз куда смотреть.....

  121. Константин /

    Алексей, добрый день.
    Подскажите, пожалуйста, какие данные пишутся в БД и как рассчитать необходимое дисковое пространство под нее (с учетом роста). Планируется ферма из 40 терминальных серверов на 2000 пользователей.

    1. Алексей Максимов / Автор записи

      Здравствуйте, Константин.

      В БД хранится информация о брокерах, хостах, активных сессиях брокера, есть какие-то таблицы с логами и т.д. У нас в ферме несколько сотен пользователей, из них одновременно работающих - не больше сотни. Размер базы 80MB/лога 150MB (это за 3 года). Какой будет размер БД в Вашем случае, предсказать не возьмусь. Каких-либо документов по сайзингу БД я не встречал.

  122. Константин /

    Алексей, спасибо! Хоть какие-то цифры полезные - будет от чего "плясать".. Я, к сожалению, тоже не нашел абсолютно никакой информации ни в документации, ни на просторах инета.. ))

  123. Константин /

    Алексей, здравствуйте.
    Не смог найти в документации списка необходимых прав в AD для развертывания RDS.. Не поделитесь информацией?

  124. Павел /

    Не знаю, насколько это актуально сегодня, времени прошло достаточно много.
    Вообще, перечитывая статью, никак не мог понять, в чём "феншуйность" NLB. И до сих пор не понимаю, ведь RR DNS нормально работает.
    В комментариях же видно, что многие получают проблемы, пропадают пинги etc. В одной сети виден, в другой не виден...
    Дело в том, что свитчи уровня L3 не допускают подмену MAC адреса, которая происходит при использовании NLB. Они имеют соответствие IP -- MAC. Кода им надо маршрутизировать (InterVLAN Routing) IP, у которого вдруг другой MAC, то они этот пакте отбрасывают. Соответственно, адрес виден в своём VLAN, но не виден в других.
    Их надо соответствующим образом настраивать. Указать, что конкретному IP разрешено подобное действие. Делать это необходимо на свитче, к которому непосредственно подключено оборудование, железные серверы с виртуалками.
    Команда в Cisco выглядит так

    Switch>en
    Password:
    Switch#conf t
    Switch(config)#arp 172.17.56.34 03bf.ac11.3822

    Здесь: IP адресу 172.17.56.34 можно иметь MAC 03-bf-ac-11-38-22

    MAC Windows назначает сама, при создании кластера. Важно не потерять его в результате, например, перенастройки. Впрочем, можно перепрограммировать оборудование.
    Так как синтаксис команды разный для разных версий iOS, то ориентируйтесь на доки вендора. Гуглится легко по ключевым словам, в данном случае по Cisco
    Cisco Microsoft Network Load Balancing
    Получаем https://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/107995-configure-nlb-00.html#anc6
    Думаю, что подобное есть и у других вендоров.

    По статье. Большое спасибо за труд. Описаны все моменты, которые могут присниться.
    Если возможно, какой-нибудь сводный документ по "допиливанию" RDWA. Здесь есть смена названия и логотипа, это хорошо. Но где-то встречал куда как больше настроек, которые, в принципе, облегчают и украшают работу.
    Спасибо

    1. Алексей Максимов / Автор записи

      Здравствуйте, Павел. Спасибо за развёрнутый комментарий. Здесь в комментариях я уже неоднократно говорил о том, что Microsoft рекомендует для ферм RDCB WS2012R2 использовать именно DNS RR, а решение в WNLB можно рассматривать исключительно в рамках улучшения доступности/балансировки RDWA. А применение WNLB для доступа к ферме RDCB лучше рассматривать как экспериментальное и официально не поддерживаемое. Что касается сводного материала по RDWA, то, чтобы его сделать на базе каких-то сторонних записок (в том числе всё это проверить и подробно описать доступным языком) потребуется отдельное время. У меня пока не было прямой задачи как-то сильно заморачиваться на кастомизации RDWA. То, что уже было проделано и проверено c RDWA описано в разных заметках блога, найти который можно по соответсвующему тэгу RDWA

      1. Павел /

        Спасибо за Ваш ответ, Максим.
        Действительно, RR DNS отлично справится с задачей балансировки внутри локальной сети. На каждый новый запрос - новый IP, где уже "слушают".
        Но как быть, когда Ферма публикуется в интернет? Выделять под неё n-ное количество IP это смешно, Но, тогда, на одном IP адресе, можно опубликовать только один TCP/443. Значит - проброс только на один сервер. В этом случае, решение NLB просто незаменимо.
        Конечно же, правильный выход, это публикация через Reverse Proxy, который к тому же, умеет балансировать внутренние адреса. Но если нет специалиста, или смущает ценник решения, то NLB "из коробки".
        Таким образом, я отвечаю на вопрос о "феншуйности". Скорее это не "феншуйность", а решение исходя из имеющейся архитектуры.
        Вторым аргументом, может быть невозможность включения Round Robin на сервере DNS по каким-то причинам.
        Возможно, стоит сделать в статье короткую оговорку на счёт NLB. Меня этот параграф смущал долгое время.

        Отдельное спасибо за ссылку на статьи по RDWA. Видимо, то что надо.

        1. Алексей Максимов / Автор записи

          Для публикации в Интернет есть роль RD Gateway, но по ней никаких комментариев не дам, так как пока не имел практического опыта использования.

  125. Алексей /

    В этой строке разве не должно быть указано имя кластера KOM-SQLCL

    DRIVER=SQL Server Native Client 11.0;SERVER=KOM-AD01-SQL-RDCB.holding.com;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=RDS_ConnectionBroker

    1. Алексей Максимов / Автор записи

      В нашем случае KOM-AD01-SQL-RDCB - это алиас для хоста KOM-SQLCL. То есть в строке подключения может использоваться либо имя хоста, на котором расположен экземпляр SQL Server с базой брокера, либо алиас этого хоста.

  126. шмфт /

    Здравствуйте, спасибо за статью!
    Возникла следующая проблема, в один прекрасный момент, отмирает NLB интерфейс на ноде (перестаёт пинговаться), хотя в самой оснастки NLB всё зелёное и с виду всё хорошо. Часть пользователей начинают испытывать проблемы с подключением. Методом эксперимента было обнаружено, что если удалить интерфейс из NLB кластера, то он (интерфейс) опять начинает пинговаться. Можно предположить что проблема в NLB кластере, НО, такая инсталляция работало больше года и проблемы начались буквально месяц назад. При чём не на одной ферме. Гугл дал примерно 0 вариантов решения проблемы. Везде пишут что Windows NLB - это дно и не используйте его. А вот как решить уже имеющуюся проблему, инфы что-то не нашёл. Может кто-то сталкивался с таким? Подскажите пожалуйста как решить.

    1. Алексей Максимов / Автор записи

      Здравствуйте, шмфт. Откажитесь от Windows NLB в пользу DNS RR. C Windows NLB проблемы неизбежны. Это лишь вопрос времени.

      1. NECTOP /

        Алексей, спасибо за замечательные статьи. Многое подчерпнул, многие проблемы у себя нашел.
        Может подскажите, столкнулся с такой проблемой. Ферма из 2-х нод. Все работает, но после перезагрузки на одной из нод в разделе группа серверов пропадает соседняя нода, т.е. RD0 не видит RD1, ну и соответственно говорит о том, что пул серверов не соответствует находящимся в нем посредникам, и что второй сервер отсутствует в пуле. Руками изменяем группу, добавляем ноду, все в порядке, до следующей перезагрузки.

    2. NECTOP /

      Столкнулся 1 в 1 с такой проблемой.
      1. Если у Вас RD сервера на Hyper-V, то MS в последних обновлениях сломала NLB Unicast.
      Решение - https://support.microsoft.com/ru-ru/help/4457133/windows-81-update-kb4457133
      2. Проверьте, что у Вас на NLB интерфейсах включен а на управляющих выключен DHCP Spoofing.

  127. Pshek /

    Просто шикарная статья, спасибо автору за труды!

  128. cobion /

    Максим, доброго дня.
    Подскажите, а если у меня два RDSH хоста в разных подсетях , например 10.50.1.141 в офисе и 10.50.122.141 в датацентре и у этих хостов NLB кластер с ip адресом 10.50.122.200 - то есть адрес кластера из сети датацентра.
    При падении одного из хостов (который является членом кластера в датацентре) кластерное имя с ip адресом 10.50.122.200 более не пингуется. Я так понимаю , если нужен NLB кластер состоящий из двух хостов в разных подсетях, то и кластерное имя должно быть зарегистрировано на две A записи из разных подcетей?

  129. cobion /

    Либо WNLB возможен только в одной подсети и для моего решения подойдет только DNS Round Robin ?

  130. Алексей Максимов / Автор записи

    Не используйте NLB, Используйте DNS RR. Я про это здесь в комментариях писал уже много раз.

  131. cobion /

    Максим, ок, спасибо!

  132. cobion /

    Максим, а на да один из данных серверов я могу поставить сервер лицензирования, или лучше для этого использовать другой сервер?

  133. cobion /

    Коллеги, доброго времени суток.
    Ферму из двух серверов собрал + UPD для профилей пользователей.
    Вопрос такой, а ка кто можно "из коробки" мониторить статистику загрузки распределения пользователей по терминальным серверам. Того же брокера например?

  134. cobion /

    Хм, заметил странную вещь- погасил один из серверов, попробовал по имени фермы зайти, проверить при отказе одного сервера. В общем как бы второй сервер доступен, окно аутентификации появляется, но спустя некоторое время подождав подключения, появляется окно RDP что недоступен пк. А как только вбиваешь ip-адрес второго RDSH, пускает. Пробуешь вновь по имени фермы- пускает.
    В чем может быть проблема ? Может побаловаться с приоритетами в свойстве коллекции?

  135. cobion /

    Коллеги, всем привет! Коли в процессе задача по созданию очередной фермы, может кому будет интересно+ комментарии, либо корректировка в процессе тестирования. Буду делиться глюками))

    Две подсетки в разных локациях, два сервера Srv-RDSH01 сервер в офисе (10.50.1.151/24) и Srv-RDSH02 сервер в датацентре (ДЦ) (10.50.122.151/24 ) в одном домене. DNS Round Robion на общее имя RDS фермы srv-farm.domain.local c теми же ip адресами и TTL 1 сек.

    Установлены и совмещены роли RВСB и RDSH на обоих серверах+ каждый является сервером лицензирования (поделен пополам для выдачи лицензий в случае отказа одного из двух).

    Для High Availability роли брокера RDCB в сети ДЦ установлены два сервера SQL 2014 Srv-SQL01 (10.50.122.50) и Srv-SQL02 (10.50.122.60) на которых установлен Windows Failover Cluster с общими томами CSV и все это объединено в FCI Sql Cluster. Диски презентованы с СХД через vmware ESXi как RDM диски в виртуальные машины.

    Там же на SQL серверах установлены роли File Server из которых собран SOFS с AccessPoint кластерной шарой \\srv-upd\profiles - для хранение UPD перемещаемых профилей и папок с размером каждого профиля не более 7 гигабайт. Общий диск в 900 Gb для кластерной шары так же презентован с СХД через ESXi как RDM. Права для шары автоматически розданы при ее включении в RDS.

    Сертификаты от внутреннего УЦ назначены на службы, на оба узлов и на субъект srv-farm.domain.local.

    Задача и условия: Два RDS хоста в разных подсетях и локациях принимают подключения пользователей. Профили и папки следуют за пользователями при балансировки подключений между хостами и в случае недоступности одного из них. В реальности недоступность хоста в офисе, где с периодичностью вырубают свет и проиcходят скачки напряжение. Хоть и не так часто, но редко и метко, офис остается без света, либо веерно. Но удаленщики могут работать и должны работать включая RDS через ДЦ.

    На данном этапе в подключение для тестового пользователя проходит успешно между RDSH хостами.
    Глюки:
    1.Словил временный профиль, при попытке монтировать VHDX профиля- когда прав на диск не оказалось (почему то) "пользователь в этот момент вышел из сессии", но диск остался неотмонтированным. После гугления и рекомендаций, вычитал, что надо быть локальным администратором и диск откроется. UDP профиля пока не особо изучил. И пока есть сомнения стоит ли на них переходить со старого доброго движка перемещения профилей через GPO. Посмотрим, что тестирование покажет..
    2. При отработке на отказ (пользователь работает в сессии со всеми запущенными приложениями и виртуалка выдергивается из розетки), как я и писал выше, был один такой глюк с переподключением:

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

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

    Пока как то так. ..
    Следующий этап, тестирование 20-30 подключений активной работы в RDS+ AppLocker.

  136. Антон /

    Спасибо автору за статью.
    Коллеги, делаю все по статье но при попытке подключится по имени кластера получаю - Подключение не удается установить, поскольку удаленный компьютер, с которым установлена связь, отличается от указанного пользователем. Это может быть связано с тем, что запись в кэше DNS устарела. Попробуйте использовать IP-адрес вместо имени компьютера."
    При этом не важно делаю NLB или DNS RR.
    Подскажите пожалуйста куда рыть??? Измучился уже, ей богу.

  137. Юрий /

    На Server 2022 долго мучался со строкой подключения для ODBC Driver 18 for SQL Server, в итоге заработало так:
    Driver={ODBC Driver 18 for SQL Server};Server=FQDN SQL SERVER,1433;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;Database=rds_db;Encrypt=no;

Добавить комментарий