Ошибка RDP подключения “Outdated entry in the DNS cache”

Пользователи стали жаловаться, что при попытке подключиться к RDS ферме (Remote Desktop Server) на базе Windows Server 2008 R2 с помощью стандартного RD клиента (mstsc.exe), периодически стала появляться ошибка.

The connection cannot be completed because the remote computer that was reached is not the one you specified. This could be caused by an outdated entry in the DNS cache. Try using the IP address of the computer instead of the name.

The connection cannot be completed because the remote computer that was reached is not the one you specified. This could be caused by an outdated entry in the DNS cache. Try using the IP address of the computer instead of the name

Конфигурация 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

Настройки хоста Remote Desktop

Но в нашей конфигурации уже использовался метод 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

Перезапуск службы времени Windows w32time После этого пользователи стали подключаться ко всем серверам RDS фермы без ошибок.

Примечание . Ошибка «This could be caused by an outdated entry in the DNS cache» также появляется, если пытаться подключаться к конкретному серверу в RDS фермы по имени. При таком способе подключения балансировщик Connection Broker может перенаправить клиента на другой RD хост (с другим DNS именем и IP адресом), в результате RDP клиент обнаружит несоответствие между указанным адресом и адресом сервера, на котором выполняется авторизация, и выдаст ошибку. Поэтому при подключении нужно всегда указывать имя RD фермы.

EnglishRussianUkrainian