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 sesión si la comunicación directa es posible.
Requisitos del sistema
Los siguientes son los requisitos del sistema para usar HDX Direct:
-
Plano de control
- Citrix DaaS™
- Citrix Virtual Apps and Desktops™ 2503 o posterior
-
Agente de entrega virtual (VDA)
- Linux: Versión 2503 o posterior
-
Aplicación Workspace
- Windows: versión 2503 o posterior
- Linux: versión 2411 o posterior
- Mac: versión 2411 o posterior
-
Nivel de acceso
- Citrix Workspace™
- Citrix StoreFront™ 2503 o posterior
- Citrix Gateway Service
- Citrix NetScaler® Gateway
Requisitos de red
Los siguientes son los requisitos de red para usar HDX Direct.
Hosts de sesión
Si los hosts de 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
La siguiente tabla describe la red del cliente para usuarios internos y externos.
Usuarios internos
| Descripción | Protocolo | Origen | Puerto de origen | Destino | Puerto de destino |
|---|---|---|---|---|---|
| Conexión interna directa | TCP | Red del cliente | 1024–65535 | Red de VDA | 443 |
| Conexión interna directa | UDP | Red del 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 del cliente | 1024–65535 | Internet (véase la nota a continuación) | 3478, 19302 |
| Conexión de usuario externo | UDP | Red del cliente | 1024–65535 | Dirección IP pública del centro de datos | 1024–65535 |
Red del centro de datos
La siguiente tabla 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 VDA | 443 |
| Conexión interna directa | UDP | Red del cliente | 1024–65535 | Red VDA | 443 |
Usuarios externos
| Descripción | Protocolo | Origen | Puerto de origen | Destino | Puerto de destino |
|---|---|---|---|---|---|
| STUN (solo usuarios externos) | UDP | Red VDA | 1024–65535 | Internet (véase la nota a continuación) | 3478, 19302 |
| Conexión de usuario externo | UDP | DMZ / Red interna | 1024–65535 | Red de VDA | 55000–55250 |
| Conexión de usuario externo | UDP | Red de VDA | 55000–55250 | IP pública del cliente | 1024–65535 |
Nota:
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 las conexiones de usuarios externos mediante la configuración de directiva HDX Direct port range, 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 la configuración HDX Direct en la directiva de Citrix.
- HDX Direct: Para habilitar o inhabilitar una función.
- HDX Direct mode: Determina si HDX Direct está disponible solo para clientes internos o para clientes internos y externos.
- HDX Direct port range: Define el rango de puertos que el VDA utiliza para las conexiones de clientes externos.
Consideraciones
Las siguientes son consideraciones para usar HDX Direct:
- HDX Direct para usuarios externos solo está disponible con EDT (UDP) como protocolo de transporte. Por lo tanto, Adaptive Transport debe estar habilitado.
- Si utiliza 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 enviaría a través de NetScaler Gateway.
- El uso de sus propios certificados con HDX Direct no es compatible actualmente.
Cómo funciona
HDX Direct permite a los clientes establecer una conexión directa con el host de sesión cuando la comunicación directa está disponible. Cuando se realizan conexiones directas mediante HDX Direct, se utilizan certificados autofirmados para proteger la conexión directa con cifrado a nivel de red (TLS/DTLS).
Usuarios internos
El siguiente diagrama muestra la descripción general del proceso de conexión de HDX Direct para usuarios internos.

- El cliente establece una sesión HDX a través del Servicio Gateway.
- Tras una conexión correcta, el VDA envía al cliente el 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 puede llegar al VDA directamente.
- Si el cliente puede llegar al VDA directamente con cualquiera de las direcciones IP compartidas, el cliente establece una conexión directa con el VDA, protegida con (D)TLS utilizando un certificado que coincide con el intercambiado en el paso (2).
- Una vez que la conexión directa se establece correctamente, la sesión se transfiere a la nueva conexión y la conexión al Servicio Gateway se termina.
Nota:
Después de establecer la conexión en el paso 2 anterior, la sesión está activa. Los pasos posteriores no retrasan ni interfieren con la capacidad del usuario para usar la aplicación o el escritorio virtual. Si alguno de los pasos posteriores falla, la conexión a través del Gateway se mantiene sin interrumpir la sesión del usuario.
Usuarios externos
El siguiente diagrama muestra la descripción general del proceso de conexión de HDX Direct para usuarios externos:

- El cliente establece una sesión HDX a través del Servicio de puerta de enlace.
- Tras una conexión correcta, tanto el cliente como el VDA envían una solicitud STUN para descubrir sus direcciones IP públicas y puertos.
- El servidor STUN responde al cliente y al VDA con sus correspondientes direcciones IP públicas y puertos.
- A través de la conexión HDX, el cliente y el VDA intercambian sus direcciones IP públicas y 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 DTLS, el cliente verifica que el certificado coincide con el certificado intercambiado en el paso 4. Después de la validación, el cliente envía su token de autorización. Ahora se establece una conexión directa segura.
- Una vez que la conexión directa se establece correctamente, la sesión se transfiere a la nueva conexión y la conexión al Servicio de puerta de enlace finaliza.
Nota:
Después de establecer la conexión en el paso 2 anterior, la sesión está activa. Los pasos posteriores no retrasan ni interfieren con la capacidad del usuario para usar la aplicación o el escritorio virtual. Si alguno de los pasos posteriores falla, la conexión a través de la puerta de enlace se mantiene 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 sesión, HDX Direct aprovecha el “hole punching” para el recorrido de NAT y STUN para facilitar el intercambio de la dirección IP pública y las asignaciones de puertos para el dispositivo cliente y el host de sesión. Esto es similar a cómo funcionan las soluciones de 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 espera que HDX Direct funcione para usuarios externos. Sin embargo, hay ciertos escenarios en los que los tipos de NAT de las redes del usuario y del host de sesión conducen a una combinación incompatible, lo que provoca que HDX Direct falle.
Validaciones
Puede validar el tipo y el filtrado de NAT en el cliente y en el host de sesión utilizando la utilidad de cliente STUN de STUNTMAN:
- Descargue el paquete apropiado para la plataforma de destino desde stunprotocol.org, y extraiga el contenido.
- Abra un símbolo del sistema y navegue hasta el directorio donde se extrajo el contenido.
- Ejecute el siguiente comando:
./stunclient stunserver2024.stunprotocol.org --mode behavior -
Tome nota del resultado.
Si las pruebas de enlace y comportamiento son correctas, tanto la prueba de enlace como la prueba de comportamiento informan del éxito y se especifica un comportamiento NAT:
Éxito de NAT(/es-es/linux-virtual-delivery-agent/2511/media/nat-compatibility-report-success.png)
Si las pruebas fallan, la prueba de enlace y/o la prueba de comportamiento informan del fallo.
Fallo de NAT(/es-es/linux-virtual-delivery-agent/2511/media/nat-compatibility-report-failure.png)
- Ejecute el siguiente comando:
./stunclient stunserver2024.stunprotocol.org --mode filtering -
Tome nota del resultado.
Filtrado de NAT(/es-es/linux-virtual-delivery-agent/2511/media/nat-compatibility-report-filtering.png)
Consulte la siguiente tabla para determinar si se espera que HDX Direct para usuarios externos funcione según los resultados de las pruebas tanto del cliente como del host de sesión:
| Comportamiento NAT del cliente | Filtrado NAT del cliente | Comportamiento NAT del host de sesión | Filtrado NAT del host de sesión | ¿Se espera que funcione? |
|---|---|---|---|---|
| Asignación independiente del punto final | Cualquiera | Asignación independiente del punto final | Cualquiera | Sí |
| Asignación independiente del punto final | Filtrado independiente del punto final | Asignación dependiente de la dirección | Cualquiera | Sí |
| Asignación independiente del punto final | Filtrado dependiente de la dirección | Asignación dependiente de la dirección | Cualquiera | No |
| Asignación independiente del punto final | Filtrado dependiente de la dirección y el puerto | Asignación dependiente de la dirección | Cualquiera | No |
| Asignación independiente del punto final | Filtrado independiente del punto final | Asignación dependiente de la dirección y el puerto | Filtrado independiente del punto final | Sí |
| Asignación independiente del punto final | Filtrado dependiente de la dirección | Asignación dependiente de la dirección | Cualquiera | No |
| Asignación independiente del 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 punto final | Filtrado independiente del punto final | Sí |
| Asignación dependiente de la dirección | Cualquiera | Asignación independiente del punto final | Filtrado dependiente de la dirección | No |
| Asignación dependiente de la dirección | Cualquiera | Asignación independiente del 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 dirección y puerto | Cualquiera | No |
| Asignación dependiente de dirección y puerto | Cualquiera | Asignación independiente de punto final | Filtrado independiente de punto final | Sí |
| Asignación dependiente de dirección y puerto | Cualquiera | Asignación independiente de punto final | Filtrado dependiente de dirección | No |
| Asignación dependiente de dirección y puerto | Cualquiera | Asignación independiente del 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 el puerto | Cualquiera | Asignación dependiente de la dirección y el puerto | Cualquiera | No |
| Fallo | Cualquiera | Cualquiera | Cualquiera | No |
| Cualquiera | Cualquiera | Fallo | Cualquiera | No |
| Fallo | Cualquiera | Fallo | Cualquiera | No |