RDP Shortpath para Azure Virtual Desktop

Completado

RDP Shortpath establece un transporte directo basado en UDP entre una aplicación de Windows de dispositivo local o la aplicación de Escritorio remoto en plataformas admitidas y host de sesión en Azure Virtual Desktop.

De forma predeterminada, el Protocolo de escritorio remoto (RDP) intenta establecer una sesión remota mediante UDP y usa un transporte de conexión inversa basado en TCP como mecanismo de conexión de reserva. El transporte basado en UDP ofrece una mejor fiabilidad de conexión y una latencia más coherente. Este transporte proporciona la mejor compatibilidad con varias configuraciones de red y tiene una alta tasa de éxito para establecer conexiones RDP.

RDP Shortpath se puede usar de dos maneras:

  • Redes administradas, donde se establece la conectividad directa entre el cliente y el host de sesión cuando se usa una conexión privada, como una red privada virtual (VPN). Una conexión mediante una red administrada se establece de una de las maneras siguientes:

    • Una conexión UDP directa entre el dispositivo cliente y el host de sesión, donde debe habilitar el agente de escucha RDP Shortpath y permitir que un puerto de entrada en cada host de sesión acepte conexiones.
    • Una conexión UDP directa entre el dispositivo cliente y el host de sesión mediante el protocolo Simple Traversal Under NAT (STUN) entre un cliente y un host de sesión. No es necesario permitir los puertos de entrada en el host de sesión.
  • Redes públicas, donde se establece la conectividad directa entre el cliente y el host de sesión cuando se usa una conexión pública. Hay dos tipos de conexión al usar una conexión pública, que se enumeran aquí en orden de preferencia:

    • Una conexión UDP directa mediante el protocolo Simple Traversal Underneath NAT (STUN) entre un cliente y un host de sesión.
    • Una conexión UDP indirecta mediante el protocolo Traversal Using Relay NAT (TURN) con una retransmisión entre un cliente y un host de sesión. Esto está en versión preliminar.

El transporte que se usa para RDP Shortpath se basa en el protocolo de control de velocidad universal (URCP). URCP mejora UDP con la supervisión activa de las condiciones de la red y proporciona un uso equitativo y completo de los vínculos. URCP funciona con niveles de retraso y pérdida bajos, según sea necesario.

  • Durante la versión preliminar, TURN solo está disponible para las conexiones a los hosts de sesión de un grupo de hosts de validación. Para configurar el grupo de hosts como entorno de validación, consulte Definición del grupo de hosts como entorno de validación.
  • RDP Shortpath para redes públicas con TURN solo está disponible en la nube pública de Azure.

Ventajas principales

El uso de RDP Shortpath tiene las siguientes ventajas clave:

  • Mediante URCP para mejorar UDP, se consigue el mayor rendimiento al aprender dinámicamente los parámetros de red y proporcionar un protocolo con un mecanismo de control de velocidad.

  • La eliminación de los puntos de retransmisión adicional reduce el tiempo de ida y vuelta, lo que mejora la fiabilidad de la conexión y la experiencia del usuario con aplicaciones y métodos de entrada sensibles a la latencia.

  • Además, para redes administradas:

    • RDP Shortpath permite configurar la prioridad de la calidad de servicio (QoS) para las conexiones RDP mediante marcas de punto de código de servicios diferenciados (DSCP).
    • El transporte de RDP Shortpath permite limitar el tráfico de red saliente mediante la especificación de una tasa de limitación para cada sesión.

Funcionamiento de RDP Shortpath para redes administradas

Puede lograr la conectividad directa de línea de visión necesaria para usar RDP Shortpath con redes administradas mediante los métodos siguientes.

Tener una conectividad de línea de visión directa significa que el cliente pueda conectarse directamente al host de sesión, sin bloqueo por parte de los firewalls.

Nota:

Si usa otros tipos de red privada virtual para conectarse a Azure, se recomienda usar una VPN basada en UDP. Aunque la mayoría de las soluciones de red privada virtual basadas en TCP admiten el protocolo UDP anidado, agregan una sobrecarga heredada del control de congestión TCP, lo que ralentiza el rendimiento de RDP.

Para usar RDP Shortpath para redes administradas, debe habilitar un agente de escucha UDP en los hosts de sesión. De manera predeterminada, se usa el puerto 3390, aunque puede usar otro puerto.

En el diagrama se proporciona información general sobre las conexiones de red al usar RDP Shortpath para redes administradas y hosts de sesión unidos a un dominio de Active Directory. Diagrama de información general de alto nivel de las conexiones de red mediante RDP Shortpath.

Secuencia de la conexión

Todas las conexiones comienzan estableciendo un transporte de conexión inversa basado en TCP a través de la puerta de enlace de Azure Virtual Desktop. A continuación, el cliente y el host de sesión establecen el transporte RDP inicial y comienzan a intercambiar sus funcionalidades. Estas funcionalidades se negocian mediante el siguiente proceso:

  1. El host de sesión envía la lista de sus direcciones IPv4 e IPv6 al cliente.
  2. El cliente inicia el subproceso en segundo plano para establecer un transporte paralelo basado en UDP directamente en una de las direcciones IP del host de sesión.
  3. Mientras el cliente está sondeando las direcciones IP proporcionadas, este continúa estableciendo la conexión inicial a través del transporte de conexión inversa para garantizar que no haya ningún retraso en la conexión del usuario.
  4. Si el cliente tiene una conexión directa con el host de sesión, establece una conexión segura con TLS sobre una conexión UDP confiable.
  5. Después de establecer el transporte de RDP Shortpath, todos los canales virtuales dinámicos (DVCs) se mueven al nuevo transporte, incluidos los gráficos remotos, la entrada y el redireccionamiento del dispositivo. Sin embargo, si un firewall o una topología de red impide que el cliente establezca conectividad UDP directa, RDP continúa con un transporte de conexión inversa.

Si los usuarios tienen RDP Shortpath para una red administrada y las redes públicas disponibles para ellos, se usará el primer algoritmo que se encuentre. El usuario empleará la conexión que se establezca primero para esa sesión.

Funcionamiento de RDP Shortpath para redes públicas

Para proporcionar la mejor oportunidad de que una conexión UDP se realice correctamente al usar una conexión pública, existen los tipos de conexión directa e indirecta:

  • Conexión directa: STUN se usa para establecer una conexión UDP directa entre un cliente y un host de sesión. Para establecer esta conexión, el cliente y el host de sesión deben poder conectarse entre sí a través de una dirección IP pública y un puerto negociado. Sin embargo, la mayoría de los clientes no conocen su propia dirección IP pública, ya que se encuentran detrás de un dispositivo de puerta de enlace de traducción de direcciones de red (NAT). STUN es un protocolo para la detección automática de una dirección IP pública desde detrás de un dispositivo de puerta de enlace NAT y el cliente para determinar su propia dirección IP pública.

    Para que un cliente use STUN, su red debe permitir el tráfico UDP. Suponiendo que tanto el cliente como el host de sesión pueden enrutar directamente a la dirección IP detectada del otro y al puerto, la comunicación se establece con UDP directo a través del protocolo WebSocket. Si los firewalls u otros dispositivos de red bloquean conexiones directas, se intentará establecer una conexión UDP indirecta.

  • Conexión indirecta: TURN se usa para establecer una conexión indirecta mediante la retransmisión del tráfico a través de un servidor intermedio entre un cliente y un host de sesión cuando no es posible una conexión directa. TURN es una extensión de STUN. El uso de TURN significa que la dirección IP pública y el puerto se conocen de antemano, lo que se puede permitir a través de firewalls y otros dispositivos de red.

    TURN normalmente autoriza el acceso al servidor a través de un nombre de usuario y una contraseña y su modo de operación preferido es usar sockets de UDP. Si los firewalls u otros dispositivos de red bloquean el tráfico UDP, la conexión volverá a un transporte de conexión inversa basado en TCP.

Cuando se establece una conexión, el Establecimiento de conectividad interactiva (ICE) coordina la administración de STUN y TURN para optimizar la probabilidad de establecer una conexión y asegurarse de que la prioridad se conceda a los protocolos de comunicación de red preferidos.

Cada sesión RDP usa un puerto UDP asignado dinámicamente desde un rango de puertos efímeros (de 49152 a 65535 de forma predeterminada) que acepta el tráfico RDP Shortpath. El puerto 65330 se omite de este intervalo, ya que está reservado para el uso interno por parte de Azure. También puede usar un rango de puertos más pequeño y predecible. Para obtener más información, vea Limitar el intervalo de puertos que usan los clientes para redes públicas.

En el diagrama se proporciona información general sobre las conexiones de red al usar RDP Shortpath para redes públicas en las que los hosts de sesión se unen a Microsoft Entra ID.

Diagrama de conexiones de red al usar RDP Shortpath para redes públicas.

Traducción de direcciones de red y firewalls

La mayoría de los clientes de Azure Virtual Desktop se ejecutan en equipos de la red privada. El acceso a Internet se proporciona a través de un dispositivo de puerta de enlace de traducción de direcciones de red (NAT). Por lo tanto, la puerta de enlace NAT modifica todas las solicitudes de red de la red privada y destinadas a Internet. Esta modificación pretende compartir una única dirección IP pública en todos los equipos de la red privada.

Debido a la modificación del paquete IP, el destinatario del tráfico verá la dirección IP pública de la puerta de enlace NAT en lugar del emisor real. Cuando el tráfico vuelva a la puerta de enlace NAT, se encargará de desviarlo hacia el destinatario previsto sin que el emisor lo sepa. En la mayoría de los escenarios, los dispositivos ocultos detrás de dicha NAT no son conscientes de que la traducción está teniendo lugar y no conocen la dirección de red de la puerta de enlace NAT.

NAT es aplicable a las redes virtuales de Azure, donde residen todos los hosts de sesión. Cuando un host de sesión intenta acceder a la dirección de red en Internet, NAT Gateway (la suya o una predeterminada proporcionada por Azure) o Azure Load Balancer realiza la traducción de direcciones.

La mayoría de las redes suelen incluir firewalls que inspeccionan el tráfico y lo bloquean en función de las reglas. La mayoría de los clientes configuran los firewalls para evitar conexiones entrantes (es decir, paquetes no solicitados desde Internet enviados sin solicitud). Los firewalls emplean diferentes técnicas para realizar un seguimiento del flujo de datos y distinguir entre el tráfico solicitado y no solicitado. En el contexto de TCP, el firewall realiza un seguimiento de los paquetes SYN y ACK, y el proceso es sencillo. Los firewalls UDP suelen usar heurística en función de las direcciones de paquetes para asociar el tráfico a los flujos UDP y permitirlo o bloquearlo.

Secuencia de la conexión

Todas las conexiones comienzan estableciendo un transporte de conexión inversa basado en TCP a través de la puerta de enlace de Azure Virtual Desktop. A continuación, el cliente y el host de sesión establecen el transporte RDP inicial y comienzan a intercambiar sus funcionalidades. Si RDP Shortpath para redes públicas está habilitado en el host de sesión, el host de sesión inicia un proceso denominado recopilación de candidatos:

  1. El host de sesión enumera todas las interfaces de red asignadas a un host de sesión, incluidas las interfaces virtuales, como VPN y Teredo.
  2. El Servicio de Escritorio remoto del servicio de Windows (TermService) asigna sockets UDP en cada interfaz y almacena el par IP:Puerto en la tabla candidata como un candidato local.
  3. El Servicio de Escritorio remoto usa cada socket UDP asignado en el paso anterior para intentar alcanzar el servidor STUN de Azure Virtual Desktop en la red pública de Internet. La comunicación se realiza enviando un paquete UDP pequeño al puerto 3478.
  4. Si el paquete llega al servidor STUN, el servidor STUN responde con la dirección IP pública y el puerto. Esta información se almacena en la tabla candidata como candidato reflexivo.
  5. Después de que el host de sesión recopile todos los candidatos, el host de sesión usa el transporte de conexión inversa establecido para pasar la lista de candidatos al cliente.
  6. Cuando el cliente recibe la lista de candidatos del host de sesión, el cliente también realiza la recopilación de candidatos en su lado. A continuación, el cliente envía su lista de candidatos al host de sesión.
  7. Después de que el host de sesión y el cliente intercambien sus listas de candidatos, ambas partes intentan conectarse entre sí mediante todos los candidatos recopilados. Este intento de conexión es simultáneo en ambos lados. Muchas puertas de enlace NAT están configuradas para permitir el tráfico entrante al socket tan pronto como la transferencia de datos de salida la inicializa. Este comportamiento de las puertas de enlace NAT es la razón por la que la conexión simultánea es esencial. Si se produce un error en STUN porque está bloqueado, se realiza un intento de conexión indirecta mediante TURN.
  8. Después del intercambio de paquetes inicial, el cliente y el host de sesión pueden establecer uno o varios flujos de datos. En estos flujos de datos, RDP elige la ruta de acceso de red más rápida. A continuación, el cliente establece una conexión segura con TLS sobre UDP confiable con el host de sesión e inicia el transporte RDP Shortpath.
  9. Después de que RDP establezca el transporte RDP Shortpath, los canales virtuales dinámicos (DVC), incluidos los gráficos remotos, la entrada y el redireccionamiento del dispositivo se trasladan al nuevo transporte.