HDX™ Direct pour Linux

Lors de l’accès aux ressources fournies par Citrix, HDX Direct permet aux périphériques clients internes et externes d’établir une connexion directe sécurisée avec l’hôte de session si une communication directe est possible.

Configuration système requise

Voici la configuration système requise pour l’utilisation de HDX Direct :

  • Plan de contrôle

    • Citrix DaaS™
    • Citrix Virtual Apps and Desktops™ 2503 ou version ultérieure
  • Virtual Delivery Agent (VDA)

    • Linux : Version 2503 ou ultérieure
  • Application Workspace

    • Windows : version 2503 ou ultérieure
    • Linux : version 2411 ou ultérieure
    • Mac : version 2411 ou ultérieure
  • Niveau d’accès

    • Citrix Workspace™
    • Citrix StoreFront™ 2503 ou version ultérieure
    • Citrix Gateway Service
    • Citrix NetScaler® Gateway

Exigences réseau

Voici les exigences réseau pour l’utilisation de HDX Direct.

Hôtes de session

Si vos hôtes de session disposent d’un pare-feu, vous devez autoriser le trafic entrant suivant pour les connexions internes.

Description Source Protocole Port
Connexion interne directe Client TCP 443
Connexion interne directe Client UDP 443

Réseau client

Le tableau suivant décrit le réseau client pour les utilisateurs internes et externes.

Utilisateurs internes

Description Protocole Source Port source Destination Port de destination
Connexion interne directe TCP Réseau client 1024–65535 Réseau VDA 443
Connexion interne directe UDP Réseau client 1024–65535 Réseau VDA 443

Utilisateurs externes

Description Protocole Source Port source Destination Port de destination
STUN (utilisateurs externes uniquement) UDP Réseau client 1024–65535 Internet (voir la note ci-dessous) 3478, 19302
Connexion utilisateur externe UDP Réseau client 1024–65535 Adresse IP publique du centre de données 1024–65535

Réseau du centre de données

Le tableau suivant décrit le réseau du centre de données pour les utilisateurs internes et externes.

Utilisateurs internes

Description Protocole Source Port source Destination Port de destination
Connexion interne directe TCP Réseau client 1024–65535 Réseau VDA 443
Connexion interne directe UDP Réseau client 1024–65535 Réseau VDA 443

Utilisateurs externes

Description Protocole Source Port source Destination Port de destination
STUN (utilisateurs externes uniquement) UDP Réseau VDA 1024–65535 Internet (voir la note ci-dessous) 3478, 19302
Connexion utilisateur externe UDP DMZ / Réseau interne 1024–65535 Réseau VDA 55000–55250
Connexion utilisateur externe UDP Réseau VDA 55000–55250 Adresse IP publique du client 1024–65535

Remarque :

Le VDA et l’application Workspace tentent tous deux d’envoyer des requêtes STUN aux serveurs suivants, dans le même ordre :

  • stun.cloud.com:3478
  • stun.cloudflare.com:3478
  • stun.l.google.com:19302

Si vous modifiez la plage de ports par défaut pour les connexions d’utilisateurs externes à l’aide du paramètre de stratégie Plage de ports HDX Direct, les règles de pare-feu correspondantes doivent correspondre à votre plage de ports personnalisée.

Configuration

HDX Direct est désactivé par défaut. Vous pouvez configurer cette fonctionnalité à l’aide du paramètre HDX Direct dans la stratégie Citrix.

  • HDX Direct : Pour activer ou désactiver une fonctionnalité.
  • Mode HDX Direct : Détermine si HDX Direct est disponible uniquement pour les clients internes ou pour les clients internes et externes.
  • Plage de ports HDX Direct : Définit la plage de ports que le VDA utilise pour les connexions des clients externes.

Considérations

Voici les considérations relatives à l’utilisation de HDX Direct :

  • HDX Direct pour les utilisateurs externes est uniquement disponible avec EDT (UDP) comme protocole de transport. Par conséquent, le transport adaptatif doit être activé.
  • Si vous utilisez HDX Insight, notez que l’utilisation de HDX Direct empêche la collecte de données HDX Insight, car la session ne serait plus acheminée via NetScaler Gateway.
  • L’utilisation de vos propres certificats avec HDX Direct n’est pas prise en charge actuellement.

Fonctionnement

HDX Direct permet aux clients d’établir une connexion directe à l’hôte de session lorsque la communication directe est disponible. Lorsque des connexions directes sont établies à l’aide de HDX Direct, des certificats auto-signés sont utilisés pour sécuriser la connexion directe avec un chiffrement au niveau du réseau (TLS/DTLS).

Utilisateurs internes

Le diagramme suivant présente un aperçu du processus de connexion HDX Direct pour les utilisateurs internes.

Présentation de HDX Direct

  1. Le client établit une session HDX via le service Gateway.
  2. Lors d’une connexion réussie, le VDA envoie au client le FQDN de la machine VDA, une liste de ses adresses IP et le certificat de la machine VDA via la connexion HDX.
  3. Le client sonde les adresses IP pour vérifier s’il peut atteindre le VDA directement.
  4. Si le client peut atteindre le VDA directement avec l’une des adresses IP partagées, il établit une connexion directe avec le VDA, sécurisée par (D)TLS à l’aide d’un certificat correspondant à celui échangé à l’étape (2).
  5. Une fois la connexion directe établie avec succès, la session est transférée vers la nouvelle connexion, et la connexion au service Gateway est terminée.

Remarque :

Après avoir établi la connexion à l’étape 2 ci-dessus, la session est active. Les étapes suivantes ne retardent ni n’interfèrent avec la capacité de l’utilisateur à utiliser l’application ou le bureau virtuel. Si l’une des étapes suivantes échoue, la connexion via la passerelle est maintenue sans interrompre la session de l’utilisateur.

Utilisateurs externes

Le diagramme suivant présente un aperçu du processus de connexion HDX Direct pour les utilisateurs externes :

Processus de connexion HDX Direct

  1. Le client établit une session HDX via le service Gateway.
  2. Lors d’une connexion réussie, le client et le VDA envoient une requête STUN pour découvrir leurs adresses IP publiques et leurs ports.
  3. Le serveur STUN répond au client et au VDA avec leurs adresses IP publiques et leurs ports correspondants.
  4. Via la connexion HDX, le client et le VDA échangent leurs adresses IP publiques et leurs ports UDP, et le VDA envoie son certificat au client.
  5. Le VDA envoie des paquets UDP à l’adresse IP publique et au port UDP du client. Le client envoie des paquets UDP à l’adresse IP publique et au port UDP du VDA.
  6. Dès réception d’un message du VDA, le client répond par une demande de connexion sécurisée.
  7. Pendant la négociation DTLS, le client vérifie que le certificat correspond à celui échangé à l’étape 4. Après validation, le client envoie son jeton d’autorisation. Une connexion directe sécurisée est alors établie.
  8. Une fois la connexion directe établie avec succès, la session est transférée vers la nouvelle connexion, et la connexion au service Gateway est interrompue.

Remarque :

Après l’établissement de la connexion à l’étape 2 ci-dessus, la session est active. Les étapes suivantes ne retardent ni n’interfèrent avec la capacité de l’utilisateur à utiliser l’application ou le bureau virtuel. Si l’une des étapes suivantes échoue, la connexion via le Gateway est maintenue sans interrompre la session de l’utilisateur.

Compatibilité NAT

Pour établir une connexion directe entre un périphérique utilisateur externe et l’hôte de session, HDX Direct utilise le hole punching pour la traversée NAT et STUN pour faciliter l’échange de l’adresse IP publique et des mappages de ports pour le périphérique client et l’hôte de session. Cela est similaire au fonctionnement des solutions VoIP, de communications unifiées et P2P.

Tant que les pare-feu et autres composants réseau sont configurés pour autoriser le trafic UDP pour les requêtes STUN et les sessions HDX, HDX Direct pour les utilisateurs externes devrait fonctionner. Cependant, il existe certains scénarios où les types de NAT des réseaux de l’utilisateur et de l’hôte de session conduisent à une combinaison incompatible, entraînant ainsi l’échec de HDX Direct.

Validations

Vous pouvez valider le type et le filtrage NAT sur le client et l’hôte de session à l’aide de l’utilitaire client STUN de STUNTMAN :

  1. Téléchargez le package approprié pour la plate-forme cible depuis stunprotocol.org, et extrayez le contenu.
  2. Ouvrez une invite de terminal et accédez au répertoire où le contenu a été extrait.
  3. Exécutez la commande suivante : ./stunclient stunserver2024.stunprotocol.org --mode behavior
  4. Prenez note de la sortie.

    Si les tests de liaison et de comportement réussissent, les deux tests (binding test et behavior test) signalent la réussite et un comportement NAT est spécifié :

    Succès NAT(/fr-fr/linux-virtual-delivery-agent/2511/media/nat-compatibility-report-success.png)

    Si les tests échouent, binding test et/ou behavior test signalent l’échec.

    Échec NAT(/fr-fr/linux-virtual-delivery-agent/2511/media/nat-compatibility-report-failure.png)

  5. Exécutez la commande suivante : ./stunclient stunserver2024.stunprotocol.org --mode filtering
  6. Prenez note de la sortie.

    Filtrage NAT(/fr-fr/linux-virtual-delivery-agent/2511/media/nat-compatibility-report-filtering.png)

Consultez le tableau suivant pour déterminer si HDX Direct pour les utilisateurs externes devrait fonctionner en fonction des résultats des tests du client et de l’hôte de session :

Comportement NAT du client Filtrage NAT du client Comportement NAT de l’hôte de session Filtrage NAT de l’hôte de session Fonctionnement attendu ?
Mappage indépendant du point de terminaison N’importe lequel Mappage indépendant du point de terminaison N’importe lequel Oui
Mappage indépendant du point de terminaison Filtrage indépendant du point de terminaison Mappage dépendant de l’adresse N’importe lequel Oui
Mappage indépendant du point de terminaison Filtrage dépendant de l’adresse Mappage dépendant de l’adresse N’importe lequel Non
Mappage indépendant du point de terminaison Filtrage dépendant de l’adresse et du port Mappage dépendant de l’adresse N’importe lequel Non
Mappage indépendant du point de terminaison Filtrage indépendant du point de terminaison Mappage dépendant de l’adresse et du port Filtrage indépendant du point de terminaison Oui
Mappage indépendant du point de terminaison Filtrage dépendant de l’adresse Mappage dépendant de l’adresse Tout Non
Mappage indépendant du point de terminaison Filtrage dépendant de l’adresse et du port Mappage dépendant de l’adresse Tout Non
Mappage dépendant de l’adresse Tout Mappage indépendant du point de terminaison Filtrage indépendant du point de terminaison Oui
Mappage dépendant de l’adresse Tout Mappage indépendant du point de terminaison Filtrage dépendant de l’adresse Non
Mappage dépendant de l’adresse N’importe lequel Mappage indépendant du point de terminaison Filtrage dépendant de l’adresse et du port Non
Mappage dépendant de l’adresse N’importe lequel Mappage dépendant de l’adresse N’importe lequel Non
Mappage dépendant de l’adresse N’importe lequel Mappage dépendant de l’adresse et du port Tout Non
Mappage dépendant de l’adresse et du port Tout Mappage indépendant du point de terminaison Filtrage indépendant du point de terminaison Oui
Mappage dépendant de l’adresse et du port Tout Mappage indépendant du point de terminaison Filtrage dépendant de l’adresse Non
Mappage dépendant de l’adresse et du port Tout Mappage indépendant du point de terminaison Filtrage dépendant de l’adresse et du port Non
Mappage dépendant de l’adresse et du port N’importe lequel Mappage dépendant de l’adresse N’importe lequel Non
Mappage dépendant de l’adresse et du port N’importe lequel Mappage dépendant de l’adresse et du port N’importe lequel Non
Échec N’importe lequel Tout Tout Non
Tout Tout Échec Tout Non
Échec Tout Échec Tout Non
HDX™ Direct pour Linux