ADC

Servidores de protocolo de escritorio remoto de equilibrio de carga

El protocolo de escritorio remoto (RDP) es un protocolo compatible con múltiples canales que permite canales virtuales separados para transportar datos de presentación, comunicación de dispositivos serie, información de licencias, datos altamente cifrados (actividad de teclado y ratón), etc.

RDP se usa para proporcionar una GUI a otro equipo de la red. RDP se utiliza con los servidores terminales de Windows para proporcionar un acceso rápido con una transmisión casi en tiempo real de los movimientos del ratón y las pulsaciones de teclas, incluso en conexiones con poco ancho de banda.

Cuando se implementan varios servidores terminales para proporcionar servicios de escritorio remoto, el dispositivo NetScaler proporciona el equilibrio de carga de los servidores terminales (ediciones Windows 2003 y 2008 Server Enterprise). A veces, un usuario que accede a una aplicación de forma remota puede querer dejar la aplicación ejecutándose en el equipo remoto pero apagar el equipo local. Por lo tanto, el usuario cierra la aplicación local sin cerrar la sesión de la aplicación remota. Después de volver a conectarse al equipo remoto, el usuario debe poder continuar con la aplicación remota. Para proporcionar esta funcionalidad, la implementación de NetScaler RDP respeta el token de redirección (cookie) establecido por el Directorio de sesión de Servicios de Terminal Server o Broker para que el cliente pueda volver a conectarse al mismo servidor Terminal Server al que estaba conectado anteriormente. El directorio de sesiones, implementado en Windows 2003 Terminal Server, se denomina Broker en Windows 2008 Terminal Server.

Cuando se establece una conexión TCP entre el cliente y el servidor virtual de equilibrio de carga, NetScaler aplica el método de equilibrio de carga especificado y reenvía la solicitud a uno de los servidores terminales. El servidor terminal comprueba el directorio de sesiones para determinar si el cliente tiene una sesión en ejecución en cualquier otro servidor terminal del dominio.

Si no hay ninguna sesión activa en ningún otro servidor de Terminal Server, el servidor de Terminal Server responde atendiendo la solicitud del cliente y el dispositivo NetScaler reenvía la respuesta al cliente.

Si hay una sesión activa en cualquier otro servidor de terminal, el servidor de terminal que recibe la solicitud inserta una cookie (denominada token de redirección) con los detalles de la sesión activa y devuelve los paquetes al dispositivo NetScaler, que devuelve el paquete al cliente. El servidor cierra la conexión con el cliente. Cuando el cliente vuelve a intentar conectarse, NetScaler lee la información de la cookie y reenvía el paquete al servidor terminal en el que el cliente tiene una sesión activa.

El usuario de la máquina cliente experimenta una continuación del servicio y no tiene que realizar ninguna acción específica.

Nota: La función de directorio de sesiones de Windows requiere el cliente de escritorio remoto que se publicó por primera vez con Windows XP. Si se desconecta una sesión con un cliente de Terminal Server de Windows 2000 o Windows NT 4.0 y el cliente se vuelve a conectar, el algoritmo de equilibrio de carga selecciona el servidor con el que se estableció la conexión.

El siguiente diagrama describe el balanceo de cargas de RDP.

Figura 1. Topología de equilibrio de carga para RDP

Topología RDP

Nota

  • Cuando se configura un servicio RDP, la persistencia se mantiene automáticamente mediante un token de redirección. No es necesario habilitar la persistencia de forma explícita.
  • El dispositivo NetScaler solo admite cookies basadas en IP.
  • El script nsrdp.pl no es compatible con ninguna versión actual de los servidores Windows.

Asegúrese de que las sesiones RDP desconectadas se borren en los servidores terminales del back-end para evitar que se alteren entre dos servidores de terminales cuando se desconecta una sesión RDP sin cerrar sesión. Para obtener más información, consulte https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc758177(v=ws.10)#BKMK_2

Cuando agrega un servicio RDP, de forma predeterminada, NetScaler agrega un monitor del tipo TCP y lo vincula al servicio. El monitor predeterminado es un monitor TCP simple que comprueba si existe un proceso de escucha en el puerto 3389 del servidor especificado para el servicio RDP. Si hay un proceso de escucha en 3389, NetScaler marca este servicio como ACTIVO y, si no hay ningún proceso de escucha, lo marca como INACTIVO.

Para una supervisión más eficiente de un servicio RDP, además del monitor predeterminado, puede configurar un monitor de scripts diseñado para el protocolo RDP. Al configurar el monitor de secuencias de comandos, NetScaler abre una conexión TCP al servidor especificado y envía un paquete RDP. El monitor marca el servicio como activo solo si recibe una confirmación de la conexión del servidor físico. Por lo tanto, desde el monitor de secuencias de comandos, NetScaler puede saber si el servicio RDP está preparado para atender una solicitud.

El monitor es de tipo usuario y el script se encuentra en NetScaler en /nsconfig/monitors/nsrdp.pl. Al configurar el monitor de usuario, NetScaler ejecuta el script automáticamente. Para configurar el monitor de secuencias de comandos, añada el monitor y enlacelo al servicio RDP.

Para configurar el equilibrio de carga de RDP, cree servicios de tipo RDP y vincúlelos a un servidor virtual RDP.

Para configurar los servicios de equilibrio de carga de RDP mediante la interfaz de línea de comandos

En la línea de comandos, escriba los siguientes comandos para configurar una configuración de equilibrio de carga RDP y verificarla:

add service <name>@ <serverName> <serviceType> <port>
<!--NeedCopy-->

Nota: Repita el comando anterior para añadir más servicios.

Ejemplo


> add service ser1 10.102.27.182 RDP 3389
Done
> add service ser2 10.102.27.183 RDP 3389
Done
>show service ser1
ser1 (10.102. 27.182:3389) - RDP
        State: UP
…
            Server Name: 10.102.27.182
            Server ID : 0           Monitor Threshold : 0
        Down state flush: ENABLED
…
1)      Monitor Name: tcp-default
                State: UP       Weight: 1
…
                Response Time: 4.152 millisec
 Done
<!--NeedCopy-->

Para configurar los servicios de equilibrio de carga de RDP mediante la utilidad de configuración

Vaya a Administración del tráfico > Equilibrio de carga > Serviciosy cree servicios de tipo RDP.

Para configurar un servidor virtual de equilibrio de carga RDP mediante la interfaz de línea de comandos

En la línea de comandos, escriba los siguientes comandos para configurar un servidor virtual de equilibrio de carga RDP y comprobar la configuración:

add lb vserver <name>@ <serviceType> <ipAddress> <port>

bind lb vserver <name>@ <serviceName>

Bind all the RDP services to be load balanced to the virtual server.
<!--NeedCopy-->

Ejemplo:

Este ejemplo tiene dos servicios RDP enlazados al servidor virtual RDP.


add lb vs v1 rdP 10.102.27.186 3389
Done

bind lb vs v1 ser1
service "ser1" bound

bind lb vs v1 ser2
service "ser2" bound
Done

sh lb vs v1
v1 (10.102.27.186:3389) - RDP   Type: ADDRESS
State: UP
…
No. of Bound Services :  2 (Total)       2 (Active)
Configured Method: LEASTCONNECTION
  Current Method: Round Robin, Reason: A new service is bound
Mode: IP
Persistence: NONE
  L2Conn: OFF

1) ser1 (10.102.27.182: 3389) - RDPState: UP   Weight: 1
2) ser2 (10.102.27.183: 3389) - RDPState: UP   Weight: 1
Done
<!--NeedCopy-->

Para configurar un servidor virtual de equilibrio de carga RDP mediante la utilidad de configuración

Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales, cree un servidor virtual de tipo RDP y vincule los servicios RDP a este servidor virtual.

Para configurar un monitor de secuencias de comandos para los servicios RDP mediante la interfaz de línea de comandos

En el símbolo del sistema, escriba los comandos siguientes:

add lb monitor <monitorName> USER -scriptName nsrdp.pl

bind lb monitor <monitorName> <rdpServiceName>
<!--NeedCopy-->

Ejemplo:

add service ser1 10.102.27.182 RDP 3389

add lb monitor RDP_MON USER -scriptName nsrdp.pl

bind lb monitor RDP_MON ser1

<!--NeedCopy-->

Para configurar un monitor de secuencias de comandos para los servicios RDP mediante la utilidad de configuración

  1. Vaya a Administración del tráfico > Equilibrio de carga > Monitoresy cree un monitor de tipo USER.
  2. En Parámetros especiales, en la lista de nombres de secuencias de comandos, seleccione nsrdp.pl y, a continuación, vincule este monitor a un servicio RDP.