Пользователи стали жаловаться, что при попытке подключиться к RDS ферме (Remote Desktop Server) на базе Windows Server 2008 R2 с помощью стандартного RD клиента (mstsc.exe), периодически стала появляться ошибка.
Конфигурация RDS фермы: 3 сервера под управлением Windows Server 2008 R2 с RD Connection Broker , используемого для распределения нагрузки на терминалы и возможности переподключения к сессиям. Тот факт, что ошибка плавающая, сразу навел на мысль, что есть проблема с одним из серверов фермы. Путем последовательного перебора, нашли проблемный сервер и подключились к рабочему столу по IP адресу.
На всякий случай запустил перерегистрацию записи сервера в DNS:
ipconfig /registerdns
А на клиенте через пару минут сбросил локальный DNS кэш:
ipconfig /flushdns
Но эффекта не дало. Более никаких странностей с сервером обнаружено не было, поэтому пришлось воспользоваться услугами Google. По ошибке сразу вышел на статью в базе знаний Microsoft: https://support.microsoft.com/ru-ru/kb/2493594 ( RDP connection to Remote Desktop server running Windows Server 2008 R2 may fail with message ‘The Local Security Authority cannot be contacted’ ).
В предложенном в статье решении было предложено попробовать понизить уровень протокола, используемого для шифрования RDP соединения с SSL (для аутентификации используется TLS 1.0) до RDP Security Layer (встроенное, менее безопасное RDP шифрование).
Примечание . Эта настройка находится в разделе Remote Desktop Session Host Configuration -> Microsoft RDP 7.1 -> Properties -> Security Layer
Но в нашей конфигурации уже использовался метод Negotiate, подразумевающий автоматическое переключение с TLS на RDP Security Layer в случае, если клиент не поддерживает первый метод.
И тут совершенно случайно обнаруживаю, что время на проблемном сервере отстает от времени на контроллере домена. И на самом деле оказалось, что этот сервер (он виртуальный) находился на ESXi хосте с неправильным временем, а в настройках VMWare Tools включена опция синхронизации времени с хостовым гипервизором ( Time synchronization between the virtual machine and the ESX Server ).
Пришлось отключить синхронизацию с ESXi, и перезапустить службу времени Windows, чтобы выполнилась синхронизация времени с DC.
net stop w32time
net start w32time
После этого пользователи стали подключаться ко всем серверам RDS фермы без ошибок.