HDX Direct para Linux
Al acceder a los recursos entregados por Citrix, HDX Direct permite que los dispositivos cliente internos y externos establezcan una conexión directa segura con el host de la sesión si es posible la comunicación directa.
Requisitos del sistema
Estos son los requisitos para usar HDX Direct:
-
Plano de control
- Citrix DaaS
- Citrix Virtual Apps and Desktops 2503 o una versión posterior
-
Virtual Delivery Agent (VDA)
- Linux: Versión 2503 o una posterior
-
Aplicación Workspace
- Windows: versión 2503 o posterior
- Linux: Versión 2411 o una posterior
- Mac: Versión 2411 o una posterior
-
Nivel de acceso
- Citrix Workspace
- Citrix StoreFront 2503 o posterior
- Citrix Gateway Service
- Citrix NetScaler Gateway
Requisitos de la red
Estos son los requisitos de la red para usar HDX Direct.
Hosts de sesión
Si los hosts de la sesión tienen un firewall, debe permitir el siguiente tráfico entrante para las conexiones internas. | Descripción | Origen | Protocolo | Puerto | | — | — | — | — | | Conexión interna directa | Cliente | TCP | 443 | | Conexión interna directa | Cliente | UDP | 443 |
Red del cliente
En la tabla siguiente se describe la red de clientes para usuarios internos y externos.
Usuarios internos
Descripción | Protocolo | Origen | Puerto de origen | Destino | Puerto de destino | — | — | — | — | — | — | Conexión interna directa | TCP | Red de cliente | 1024–65535 | Red de VDA | 443 | Conexión interna directa | UDP | Red de cliente | 1024–65535 | Red de VDA | 443 |
Usuarios externos
Descripción | Protocolo | Origen | Puerto de origen | Destino | Puerto de destino | — | — | — | — | — | — | STUN (solo usuarios externos) | UDP | Red de cliente | 1024–65535 | Internet (ver nota a continuación) | 3478, 19302 | Conexión de usuarios externos | UDP | Red de cliente | 1024–65535 | Dirección IP pública del centro de datos | 1024–65535 |
Red de centros de datos
En la siguiente tabla se describe la red del centro de datos para usuarios internos y externos.
Usuarios internos
Descripción | Protocolo | Origen | Puerto de origen | Destino | Puerto de destino | — | — | — | — | — | — | Conexión interna directa | TCP | Red de cliente | 1024–65535 | Red de VDA | 443 | Conexión interna directa | UDP | Red de cliente | 1024–65535 | Red de VDA | 443 |
Usuarios externos
Descripción | Protocolo | Origen | Puerto de origen | Destino | Puerto de destino | — | — | — | — | — | — | STUN (solo usuarios externos) | UDP | Red de VDA | 1024–65535 | Internet (ver nota a continuación) | 3478, 19302 | Conexión de usuarios externos | UDP | DMZ / Red interna | 1024–65535 | Red de VDA | 55000–55250 | Conexión de usuarios externos | UDP | Red de VDA | 55000–55250 | IP pública del cliente | 1024–65535 |
Nota: No
Tanto el VDA como la aplicación Workspace intentan enviar solicitudes STUN a los siguientes servidores en el mismo orden:
- stun.cloud.com:3478
- stun.cloudflare.com:3478
- stun.l.google.com:19302
Si cambia el rango de puertos predeterminado para conexiones de usuarios externos mediante la configuración de directiva Rango de puertos HDX Direct, las reglas de firewall correspondientes deben coincidir con su rango de puertos personalizado.
Configuración
HDX Direct está inhabilitado de forma predeterminada. Puede configurar esta función mediante el parámetro HDX Direct de la directiva de Citrix.
- HDX Direct: para habilitar o inhabilitar una función.
- Modo HDX Direct: determina si HDX Direct está disponible solo para clientes internos o para clientes internos y externos.
- Intervalo de puertos de HDX Direct: define el intervalo de puertos que usa el VDA para las conexiones desde clientes externos.
Consideraciones
Estos son los aspectos a tener en cuenta al usar HDX Direct:
- HDX Direct para usuarios externos solo está disponible con EDT (UDP) como protocolo de transporte. Por lo tanto, el transporte adaptable debe estar habilitado.
- Si usa HDX Insight, tenga en cuenta que el uso de HDX Direct impide la recopilación de datos de HDX Insight, ya que la sesión ya no se redirigiría mediante proxy a través de NetScaler Gateway.
- Actualmente, no es compatible el uso de sus propios certificados con HDX Direct.
Funcionamiento
HDX Direct permite a los clientes establecer una conexión directa con el host de la sesión cuando hay una comunicación directa disponible. Cuando se realizan conexiones directas mediante HDX Direct, se usan los certificados autofirmados para protegerlas con el cifrado a nivel de red (TLS/DTLS).
Usuarios internos
El diagrama siguiente muestra el proceso general de conexión de usuarios internos con HDX Direct.
- El cliente establece una sesión HDX a través del Gateway Service.
- Una vez realizada la conexión, el VDA envía al cliente el nombre de dominio completo (FQDN) de la máquina VDA, una lista de sus direcciones IP y el certificado de la máquina VDA a través de la conexión HDX.
- El cliente sondea las direcciones IP para ver si pueden comunicarse directamente con el VDA.
- Si el cliente puede acceder al VDA directamente con cualquiera de las direcciones IP compartidas, establece una conexión directa con el VDA, protegida con (D)TLS, mediante un certificado que coincide con el intercambiado en el paso (2).
- Una vez que la conexión directa se haya establecido correctamente, la sesión se transferirá a la nueva conexión, y se cancelará la conexión con Gateway Service.
Nota: No
Tras establecer la conexión en el paso 2 anterior, la sesión está activa. Los pasos posteriores no provocan ninguna demora ni interfieren con la capacidad del usuario para usar la aplicación o el escritorio virtuales. Si se produce un error en alguno de los pasos posteriores, se mantiene la conexión a través de Gateway sin interrumpir la sesión del usuario.
Usuarios externos
El diagrama siguiente muestra el proceso general de conexión de usuarios externos con HDX Direct:
- El cliente establece una sesión HDX a través del Gateway Service.
- Tras establecerse la conexión, tanto el cliente como el VDA envían una solicitud STUN para detectar sus puertos y direcciones IP públicas.
- El servidor STUN responde al cliente y al VDA con sus puertos y direcciones IP públicas correspondientes.
- A través de la conexión HDX, el cliente y el VDA intercambian sus direcciones IP públicas y sus puertos UDP, y el VDA envía su certificado al cliente.
- El VDA envía paquetes UDP a la dirección IP pública y al puerto UDP del cliente. El cliente envía paquetes UDP a la dirección IP pública y al puerto UDP del VDA.
- Al recibir un mensaje del VDA, el cliente responde con una solicitud de conexión segura.
- Durante el protocolo de enlace (handshake) DTLS, el cliente verifica que el certificado coincide con el certificado intercambiado en el paso 4. Tras la validación, el cliente envía su token de autorización. Ahora se ha establecido una conexión directa segura.
- Una vez que la conexión directa se haya establecido correctamente, la sesión se transferirá a la nueva conexión, y se cancelará la conexión con Gateway Service.
Nota: No
Tras establecer la conexión en el paso 2 anterior, la sesión está activa. Los pasos posteriores no provocan ninguna demora ni interfieren con la capacidad del usuario para usar la aplicación o el escritorio virtuales. Si se produce un error en alguno de los pasos posteriores, se mantiene la conexión a través de Gateway sin interrumpir la sesión del usuario.
Compatibilidad con NAT
Para establecer una conexión directa entre un dispositivo de usuario externo y el host de la sesión, HDX Direct utiliza una técnica conocida como “hole punching” (perforación de agujeros) para NAT transversal y STUN a fin de facilitar el intercambio de la dirección IP pública y las asignaciones de puertos para el dispositivo cliente y el host de la sesión. Es algo parecido a cómo funcionan las soluciones VoIP, comunicaciones unificadas y P2P.
Siempre que los firewalls y otros componentes de red estén configurados para permitir el tráfico UDP para las solicitudes STUN y las sesiones HDX, se prevé que HDX Direct para los usuarios externos funcione. Sin embargo, hay algunos casos en los que los tipos de NAT de las redes de usuario y host de sesión dan lugar a una combinación incompatible, lo que provoca el error de HDX Direct.
Validaciones
Puede validar el tipo de NAT y el filtrado en el cliente y el host de sesión mediante la utilidad de cliente STUN de STUNTMAN:
- Descargue el paquete correspondiente a la plataforma de destino desde stunprotocol.org y extraiga el contenido.
- Abra un el símbolo del sistema en un terminal y vaya al directorio donde se extrajo el contenido.
- Ejecute este comando:
./stunclient stunserver2024.stunprotocol.org --mode behavior
-
Tome nota del resultado.
Si las pruebas de enlace y comportamiento se realizan correctamente, tanto la prueba de enlace como la prueba de comportamiento informan de su correcta realización y se especifica un comportamiento de NAT:
Si las pruebas fallan, la prueba de enlace y/o la prueba de comportamiento informan del error.
- Ejecute este comando:
./stunclient stunserver2024.stunprotocol.org --mode filtering
-
Tome nota del resultado.
Consulte la siguiente tabla para determinar si se prevé que HDX Direct funcione para los usuarios externos conforme a los resultados de las pruebas del cliente y del host de sesión: | Comportamiento de NAT del cliente | Filtrado de NAT del cliente | Comportamiento de NAT del host de sesión | Filtrado de NAT del host de sesión | ¿Se espera que funcione? | | — | — | — | — | — | | Asignación independiente del dispositivo de punto final | Cualquiera | Asignación independiente del dispositivo de punto final | Cualquiera | Sí | | Asignación independiente del dispositivo de punto final | Filtrado independiente del dispositivo de punto final | Asignación dependiente de la dirección | Cualquiera | Sí | | Asignación independiente del dispositivo de punto final | Filtrado dependiente de la dirección | Asignación dependiente de la dirección | Cualquiera | No | | Asignación independiente del dispositivo de punto final | Filtrado dependiente de la dirección y el puerto | Asignación dependiente de la dirección | Cualquiera | No | | Asignación independiente del dispositivo de punto final | Filtrado independiente del dispositivo de punto final | Asignación dependiente de la dirección y el puerto | Filtrado independiente del dispositivo de punto final | Sí | | Asignación independiente del dispositivo de punto final | Filtrado dependiente de la dirección | Asignación dependiente de la dirección | Cualquiera | No | | Asignación independiente del dispositivo de punto final | Filtrado dependiente de la dirección y el puerto | Asignación dependiente de la dirección | Cualquiera | No | | Asignación dependiente de la dirección | Cualquiera | Asignación independiente del dispositivo de punto final | Filtrado independiente del dispositivo de punto final | Sí | | Asignación dependiente de la dirección | Cualquiera | Asignación independiente del dispositivo de punto final | Filtrado dependiente de la dirección | No | | Asignación dependiente de la dirección | Cualquiera | Asignación independiente del dispositivo de punto final | Filtrado dependiente de la dirección y el puerto | No | | Asignación dependiente de la dirección | Cualquiera | Asignación dependiente de la dirección | Cualquiera | No | | Asignación dependiente de la dirección | Cualquiera | Asignación dependiente de la dirección y el puerto | Cualquiera | No | | Asignación dependiente de la dirección y el puerto | Cualquiera | Asignación independiente del dispositivo de punto final | Filtrado independiente del dispositivo de punto final | Sí | | Asignación dependiente de la dirección y el puerto | Cualquiera | Asignación independiente del dispositivo de punto final | Filtrado dependiente de la dirección | No | | Asignación dependiente de la dirección y el puerto | Cualquiera | Asignación independiente del dispositivo de punto final | Filtrado dependiente de la dirección y el puerto | No | | Asignación dependiente de la dirección y el puerto | Cualquiera | Asignación dependiente de la dirección | Cualquiera | No | | Asignación dependiente de la dirección y puerto | Cualquiera | Asignación dependiente de la dirección y el puerto | Cualquiera | No | | Error | Cualquiera | Cualquiera | Cualquiera | No | | Cualquiera | Cualquiera | Error | Cualquiera | No | | Error | Cualquiera | Error | Cualquiera | No |