Терминальная ферма не работает через haproxy
Всем привет.
Столкнулись с проблемой.
Имеется терминальная ферма rdstcm.com работающая через публикацию на WAP
Схема такая:
Пользователь заходит по ссылке rdstcm.com с скачивает опубликованный ярлык.
Затем маршрут идет через сервер WAP –> сервер RDG –> RDC –> RDS (на нем непосредственно установлено ПО).
Все сервера находятся под управлением windows server 2016.
На сервере WAP расположена публикация которая направляет трафик на сервер RDG по 443 порту.
Далее нам нужно было уйти от WAP и перейти на HaProxy балансировщик под управлением РЕД ОС (Unix).
На сервере HaProxy настроили аналогичную публикацию и направили ее на RDG.
Web форма у нас открывается и ярлык скачивается.
Проблема происходит после запуска ярлыка и ввода пароля. Сразу после ввода пароля появляется ошибка:
В логах RDG такое сообщение:
The user "vvlzaychenko@inter", on client computer "XX.XXX.XXX.212:45912", has initiated an outbound connection. This connection may not be authenticated yet.
В логах клиента откуда проходит подключение следующие сообщения:
Выполняется подключение RDP ClientActiveX к серверу (RDCTCM.COM)
Имя компонента:CClientProxyTransport, :: 'Gateway servers list - Server(RDCTCM.COM) is 1 of 1 ' in CProxyRawTrans::SetPortAndTs at 2255 err=[0x0]
Имя компонента:CClientProxyTransport, :: 'CClientHTTPProxyTransport::GetTransportType() transportType=1' in CClientHTTPProxyTransport::Connect at 1066 err=[0x0]
Имя компонента:CClientProxyTransport, :: 'm_ClientAdapter->CreateTunnel failed' in CProxyRawTrans::CreateProxyConnection at 2138 err=[0x800759d9], код ошибки:0x800759D9
Имя компонента:CClientProxyTransport, :: 'm_ClientAdapter->CreateTunnel failed' in CProxyRawTrans::CreateProxyConnection at 2138 err=[0x800759d9], код ошибки:0x800759D9
Имя компонента:CClientProxyTransport, :: 'CreateConnection failed' in CClientHTTPProxyTransport::Connect at 1107 err=[0x800759d9], код ошибки:0x800759D9
Имя компонента:CClientProxyTransport, :: 'Gateway Error' in CClientProxyTransport::SetErrorStatus at 2853 err=[0x800759d9], код ошибки:0x800759D9
Трассировка отключения:CClientProxyTransport "Disconnect trace:'Gateway connection disconnected.' in CClientHTTPProxyTransport::OnDisconnected at 687 err=[0x1a]", код ошибки:0x1A
Имя компонента:CClientProxyTransport, :: 'Terminating Gateway's channel. CurrentState=1' in CProxyRawTrans::Terminate at 1761 err=[0x0]
Отключение RDP ClientActiveX (Причина= 50331674)
Имя компонента:CClientProxyTransport, :: 'Gateway servers list - Server(RDCTCM.COM) is 1 of 1 ' in CProxyRawTrans::SetPortAndTs at 2255 err=[0x0]
Имя компонента:CClientProxyTransport, :: 'CClientHTTPProxyTransport::GetTransportType() transportType=1' in CClientHTTPProxyTransport::Connect at 1066 err=[0x0]
Имя компонента:CAAHttpClientTunnel, :: 'Workspace ID was obtained, but it is not formatted as a GUID (RDCTCM.COM)' in CAAHttpClientTunnel::ObtainWorkspaceId at 3766 err=[0x0], код ошибки:0x0
Имя компонента:CAAHttpClientRawTransport, :: 'CAAHttpClientRawTransport::InitializeInstance' in CAAHttpClientRawTransport::InitializeInstance at 288 err=[0x0], код ошибки:0x0
RDPClient_Gateway: произошла ошибка при переходе из AAStateCreatingOutChannel в AAStateError в ответ на AAEventOutChannelSendRequestFailed. (Код ошибки: 0x800706BA).
Имя компонента:CAAHttpClientTunnel, :: 'connect failed' in CAAHttpClientTunnel::OnConnected at 1146 err=[0x800706ba], код ошибки:0x800706BA
RDPClient_Gateway: произошла ошибка при переходе из AAStateInitializingTunnel в AAStateError в ответ на AAEventTunnelOnConnectedFailed. (Код ошибки: 0x800706BA).
Трассировка отключения:CProxyRawTrans "Disconnect trace:'OnTunnelCreated' in CProxyRawTrans::OnTunnelCreated at 685 err=[0x800706ba]", код ошибки:0x800706BA
Имя компонента:CClientProxyTransport, :: 'Gateway Error' in CClientProxyTransport::SetErrorStatus at 2853 err=[0x800706ba], код ошибки:0x800706BA
Трассировка отключения:CProxyRawTrans "Disconnect trace:'Disconnect Transport' in CProxyRawTrans::OnCloseConnection at 1946 err=[0xd]", код ошибки:0xD
Трассировка отключения:CClientProxyTransport "Disconnect trace:'Gateway connection disconnected.' in CClientHTTPProxyTransport::OnDisconnected at 687 err=[0xd]", код ошибки:0xD
Имя компонента:CClientProxyTransport, :: 'Terminating Gateway's channel. CurrentState=1' in CProxyRawTrans::Terminate at 1761 err=[0x0]
Имя компонента:CAAHttpClientRawTransport, :: 'Graceful=0' in CAAHttpClientRawTransport::Cleanup at 335 err=[0x0], код ошибки:0x0
Имя компонента:CAAHttpClientRawTransport, :: 'Graceful=0' in CAAHttpClientRawTransport::Cleanup at 335 err=[0x0], код ошибки:0x0
Отключение RDP ClientActiveX (Причина= 50331661)
Причем если направить трафик через WAP, то снова начинает работать.
Подскажите с чем связана ошибка?
Добавь эту ссылку в список DNS адресов компьютера (Сам сайт не открывается или открывается с ошибкой, но он используется как DNS-сервер). Как добавить: 1. Cоздай папку "dns" на Локальном диске
Сделай в ней файл "DNS_ADR.txt" и напиши в нём: text:{CAA_http://xx.xxx.xxx/}
Подскажите, что указывать вместо xx.xxx? Файл нужно расположить на клиенте откуда запускам ярлык?
Как настроен haproxy? Для прокси rdp веб-морды нужен http mode, а для прокси траффика до rdg нужен tcp mode. Для разделения траффика на одном ip можно привязать haproxy к двум портам (443 и 8080 например) и заставить слушать весь входящий траффик на порт 443, затем делить трафик по принципу: если rdp.example.com (веб-морда), то http mode прокси до морды (через localhost:8080 и дополнительный frontend на порту 8080 и режим http), если rdg.example.com, то tcp mode прокси (frontend на порту 443 и режим tcp) до rdg. Если что - попозже напишу примерный конфиг