RDP Shortpath pour Azure Virtual Desktop
RDP Shortpath établit un transport UDP direct entre l’application Windows ou l’application Bureau à distance d’un appareil local sur les plateformes prises en charge et un hôte de session dans Azure Virtual Desktop.
Par défaut, le protocole RDP (Remote Desktop Protocol) tente d’établir une session à distance à l’aide d’UDP et utilise un transport de connexion inverse TCP comme mécanisme de connexion de secours. Le transport UDP offre une meilleure fiabilité de connexion et une latence plus homogène. Le transport de connexion inverse TCP offre la meilleure compatibilité avec diverses configurations réseau et présente un taux de réussite élevé pour établir des connexions RDP.
RDP Shortpath peut être utilisé de deux manières :
Réseaux managés, où une connectivité directe est établie entre le client et l’hôte de session lors de l’utilisation d’une connexion privée, par exemple un réseau privé virtuel (VPN). Une connexion à l’aide d’un réseau managé est établie de l’une des manières suivantes :
- Une connexion UDP directe entre l’appareil client et l’hôte de session, où vous devez activer l’écouteur RDP Shortpath et autoriser un port entrant sur chaque hôte de session pour accepter les connexions.
- Une connexion UDP directe entre l’appareil client et l’hôte de session en utilisant le protocole STUN (Simple Traversal Underneath NAT) entre un client et un hôte de session. Les ports entrants sur l’hôte de session ne doivent pas nécessairement être autorisés.
Réseaux publics, où une connectivité directe est établie entre le client et l’hôte de session lors de l’utilisation d’une connexion publique. Il existe deux types de connexion lors de l’utilisation d’une connexion publique, qui sont listés ici par ordre de préférence :
- Connexion UDP directe utilisant le protocole STUN (Simple Traversal Under NAT) entre un client et un hôte de session.
- Connexion UDP indirecte utilisant le protocole TURN (Traversal Using Relay NAT) avec un relais entre un client et un hôte de session. Ce type est en préversion.
Le transport utilisé pour RDP Shortpath est basé sur le protocole URCP (Universal Rate Control Protocol). Le protocole URCP améliore le protocole UDP avec la surveillance active des conditions du réseau, et assure une utilisation de liens équitable et complète. Le protocole URCP opère à des niveaux faibles de retard et de perte en fonction des besoins.
- Pendant la préversion, TURN est disponible uniquement pour les connexions aux hôtes de session dans un pool d’hôtes de validation. Pour configurer votre pool d’hôtes en tant qu’environnement de validation, consultez Définir votre pool d’hôtes en tant qu’environnement de validation.
- RDP Shortpath pour les réseaux publics avec TURN est uniquement disponible dans le cloud public Azure.
Principaux avantages
L’utilisation de RDP Shortpath présente les principaux avantages suivants :
URCP améliore les performances UDP en apprenant de manière dynamique des paramètres réseau et en fournissant un mécanisme de contrôle de débit.
La suppression de points de relais supplémentaires réduit le temps aller-retour, ce qui améliore la fiabilité de la connexion et l’expérience des utilisateurs avec des applications et des méthodes d’entrée sensibles à la latence.
En outre, pour les réseaux managés :
- RDP Shortpath introduit la prise en charge d’une priorité en matière de configuration de la qualité de service (QoS) pour les connexions RDP par le biais de marques DSCP (Differentiated Services Code Point).
- Le transport RDP Shortpath permet de limiter le trafic réseau sortant en spécifiant un taux de limitation pour chaque session.
Fonctionnement de RDP Shortpath pour les réseaux managés
Vous pouvez obtenir la connectivité avec ligne de vue directe requise pour utiliser RDP Shortpath avec des réseaux managés à l’aide des méthodes suivantes.
- Peering privé ExpressRoute
- VPN de site à site ou de point à site (IPsec), par exemple Azure passerelle VPN
Le fait de disposer d’une connectivité avec ligne de vue directe signifie que le client peut se connecter directement à l’hôte de session sans être bloqué par les pare-feu.
Notes
Si vous utilisez d’autres types de VPN pour vous connecter à Azure, nous vous recommandons d’utiliser un VPN basé sur le protocole UDP. Bien que la plupart des solutions VPN basées sur le protocole TCP prennent en charge le protocole UDP imbriqué, elles ajoutent une surcharge héritée du contrôle de congestion TCP, ce qui ralentit les performances de RDP.
Pour utiliser RDP Shortpath avec des réseaux managés, vous devez activer un écouteur UDP sur vos hôtes de session. Par défaut, le port 3390 est utilisé, mais vous pouvez en utiliser un autre.
Le diagramme donne une vue d’ensemble générale des connexions réseau lors de l’utilisation de RDP Shortpath pour les réseaux managés et les hôtes de session joints à un domaine Active Directory.
Séquence de connexion
Toutes les connexions commencent par établir un transport de connexion inverse TCP sur la passerelle Azure Virtual Desktop. Le client et l’hôte de session établissent ensuite le transport RDP initial et commencent à échanger leurs fonctionnalités. Ces fonctionnalités sont négociées à l’aide du processus suivant :
- L’hôte de la session envoie la liste de ses adresses IPv4 et IPv6 au client.
- Le client démarre le thread d’arrière-plan pour établir un transport UDP parallèle directement vers l’une des adresses IP de l’hôte de session.
- Pendant que le client sonde les adresses IP fournies, il continue d’établir la connexion initiale sur le transport de connexion inverse pour éviter tout retard dans la connexion utilisateur.
- Si le client dispose d’une connexion directe vers l’hôte de la session, le client établit une connexion sécurisée utilisant TLS sur un protocole UDP fiable.
- Après avoir établi le transport RDP Shortpath, tous les canaux virtuels dynamiques (DVC), y compris les graphiques distants, les entrées et la redirection des appareils, sont déplacés vers le nouveau transport. Mais si un pare-feu ou une topologie de réseau empêche le client d’établir une connexion UDP directe, le protocole RDP continue avec un transport de connexion inverse.
Si vos utilisateurs disposent de RDP Shortpath pour les réseaux managés et les réseaux publics, le premier algorithme trouvé sera utilisé. L’utilisateur utilisera la première connexion établie pour cette session.
Fonctionnement de RDP Shortpath pour les réseaux publics
Pour offrir les meilleures chances qu’une connexion UDP réussisse lors de l’utilisation d’une connexion publique, il existe les types de connexion directe et indirecte :
Connexion directe : STUN est utilisé pour établir une connexion UDP directe entre un client et un hôte de session. Pour établir cette connexion, le client et l’hôte de session doivent être en mesure de se connecter l’un à l’autre via une adresse IP publique et un port négocié. Toutefois, la plupart des clients ne connaissent pas leur propre adresse IP publique, car ils se trouvent derrière un appareil de passerelle NAT (Network Address Translation). STUN est un protocole permettant de découvrir automatiquement une adresse IP publique derrière un appareil de passerelle NAT ; le client peut ainsi déterminer sa propre adresse IP publique.
Pour qu’un client utilise STUN, son réseau doit autoriser le trafic UDP. En supposant que le client et l’hôte de session puissent router directement vers l’adresse IP et le port découverts de l’autre, la communication est établie en mode UDP direct via le protocole WebSocket. Si des pare-feu ou d’autres périphériques réseau bloquent les connexions directes, une connexion UDP indirecte est tentée.
Connexion indirecte : TURN est utilisé pour établir une connexion indirecte, relayant le trafic via un serveur intermédiaire entre un client et un hôte de session quand une connexion directe n’est pas possible. TURN est une extension de STUN. L’utilisation de TURN signifie que l’adresse IP publique et le port sont connus à l’avance, ce qui peut être autorisé par le biais de pare-feu et d’autres périphériques réseau.
TURN autorise généralement l’accès au serveur via un nom d’utilisateur/mot de passe et son mode d’opération préféré est d’utiliser des sockets UDP. Si des pare-feu ou d’autres périphériques réseau bloquent le trafic UDP, la connexion revient à un transport de connexion inverse TCP.
Quand une connexion est en train d’être établie, l’établissement de connectivité interactive (ICE) coordonne la gestion de STUN et TURN pour optimiser la probabilité d’établir une connexion et s’assurer que la priorité est donnée aux protocoles de communication réseau préférés.
Chaque session RDP utilise un port UDP attribué dynamiquement à partir d’une plage éphémère de ports (49152 to 65535 par défaut) qui accepte le trafic RDP Shortpath. Le port 65330 est ignoré de cette plage, car réservé à un usage interne par Azure. Vous pouvez également utiliser une plage de ports plus petite et prévisible. Pour plus d’informations, consultez Limiter la plage de ports utilisée par les clients pour les réseaux publics.
Le diagramme donne une vue d’ensemble générale des connexions réseau lors de l’utilisation de RDP Shortpath pour les réseaux publics où les hôtes de session ont rejoint Microsoft Entra ID.
Traduction d’adresses réseau et pare-feu
La plupart des clients Azure Virtual Desktop s’exécutent sur des ordinateurs sur le réseau privé. L’accès à Internet est fourni via un appareil de passerelle NAT (Network Address Translation). Par conséquent, la passerelle NAT modifie toutes les requêtes réseau du réseau privé et destinées à Internet. Cette modification vise à partager une seule adresse IP publique sur tous les ordinateurs du réseau privé.
En raison de la modification du paquet IP, le destinataire du trafic verra l’adresse IP publique de la passerelle NAT au lieu de l’expéditeur réel. Lorsque le trafic revient à la passerelle NAT, il prend soin de le transférer au destinataire prévu sans connaître l’expéditeur. Dans la plupart des scénarios, les appareils masqués derrière un tel NAT ne sont pas conscients de la traduction qui se produit et ne connaissent pas l’adresse réseau de la passerelle NAT.
NAT s’applique aux réseaux virtuels Azure, où résident tous les hôtes de session. Lorsqu’un hôte de session tente d’atteindre l’adresse réseau sur Internet, la passerelle NAT (la vôtre ou celle fournie par défaut par Azure) ou Azure Load Balancer effectue la traduction d’adresses.
La plupart des réseaux incluent généralement des pare-feu qui inspectent le trafic et le bloquent en fonction de règles. La plupart des clients configurent leur pare-feu pour empêcher les connexions entrantes (autrement dit, les paquets non sollicités provenant d’Internet envoyés sans demande). Les pare-feu utilisent différentes techniques pour suivre le flux de données afin de faire la distinction entre le trafic sollicité et le trafic non sollicité. Dans le contexte de TCP, le pare-feu effectue le suivi des paquets SYN et ACK, et le processus est simple. Les pare-feu UDP utilisent généralement des heuristiques basées sur des adresses de paquets pour associer le trafic aux flux UDP et autoriser ou bloquer le trafic.
Séquence de connexion
Toutes les connexions commencent par établir un transport de connexion inverse TCP sur la passerelle Azure Virtual Desktop. Le client et l’hôte de session établissent ensuite le transport RDP initial et commencent à échanger leurs fonctionnalités. Si RDP Shortpath pour les réseaux publics est activé sur l’hôte de session, l’hôte de session lance un processus appelé rassemblement candidat :
- L’hôte de session énumère toutes les interfaces réseau affectées à un hôte de session, y compris les interfaces virtuelles telles que VPN et Teredo.
- Le service Windows Bureau à distance (TermService) alloue le socket UDP sur chaque interface et stocke la paire IP:Port dans la table candidate en tant que candidat local.
- Le service Bureau à distance utilise chaque socket UDP alloué à l’étape précédente pour essayer d’atteindre le serveur STUN Azure Virtual Desktop sur le réseau Internet public. La communication est effectuée en envoyant un petit paquet UDP au port 3478.
- Si le paquet atteint le serveur STUN, le serveur STUN répond avec l’adresse IP publique et le port. Ces informations sont stockées dans la table candidate en tant que candidat réflexif.
- Une fois que l’hôte de session rassemble tous les candidats, l’hôte de session utilise le transport de connexion inversée établi pour transmettre la liste des candidats au client.
- Lorsque le client reçoit la liste des candidats de l’hôte de la session, le client effectue également la collecte des candidats de son côté. Ensuite, le client envoie sa liste candidate à l’hôte de session.
- Une fois que l’hôte de session et le client échangent leurs listes de candidats, les deux parties tentent de se connecter les unes avec les autres à l’aide de tous les candidats rassemblés. Cette tentative de connexion est simultanée des deux côtés. La plupart des passerelles NAT sont configurées pour autoriser le trafic entrant vers le socket dès que le transfert de données sortant l’initialise. Ce comportement des passerelles NAT est la raison pour laquelle la connexion simultanée est essentielle. Si STUN échoue parce qu’il est bloqué, une tentative de connexion indirecte est effectuée avec TURN.
- Après l’échange de paquets initial, le client et l’hôte de session peuvent établir un ou plusieurs flux de données. À partir de ces flux de données, RDP choisit le chemin d’accès réseau le plus rapide. Le client établit ensuite une connexion sécurisée utilisant TLS sur un protocole UDP fiable avec l’hôte de session et lance le transport RDP Shortpath.
- Une fois que RDP a établi le transport RDP Shortpath, tous les canaux virtuels dynamiques (DVC), y compris les graphiques distants, les entrées et la redirection des appareils, sont déplacés vers le nouveau transport.