AVD : RDP Shortpath sur un réseau public

Azure Virtual Desktop utilise le protocole RDP (Remote Desktop Protocol) pour établir la connexion avec l’utilisateur. Pour rappel, ce protocole permet de se connecter à des ordinateurs de manière distante. Dans la plupart des cas, cette connexion utilise le protocole TCP pour y parvenir. Le serveur écoute par défaut sur le port TCP 3389.

Il est néanmoins possible de varier cette approche de connexion pour des questions de perfomences et de fiabilité. Depuis déjà l’année dernière, Microsoft proposait la fonctionnalité RDP Shortpath pour améliorer cette connexion, débit et latence, entre l’utilisateur et la machine virtuelle AVD :

RDP Shortpath est une fonctionnalité d’Azure Virtual Desktop qui établit un transport direct basé sur UDP entre le client Remote Desktop et l’hôte de session. RDP utilise ce transport pour fournir le Bureau à distance et le RemoteApp tout en offrant une meilleure fiabilité et une latence constante.

Microsoft Doc

Dans cet article, nous allons regarder en détail cette évolution et effectuer un test sur un environnement AVD. Avant de commencer à manipuler Azure, cette vidéo vous explique très bien l’idée :

Merci à Dean de l’Azure Academy.

Voici également un schéma montrant la « simplicité évidente » à utiliser cette fonctionnalité réseau :

L’article de Microsoft expliquait déjà alors la configuration à effectuer sur les machines virtuelles dans le cadre d’un réseau non public.

Quoi de neuf en 2022 ?

Dans une volonté d’amélioration constante, Microsoft continue sur cette voie pour élargir la fonctionnalité RDP Shortpath aux réseaux publics. En effet, cette fonctionnalité était initialement restreinte à des liaisons établies sur des réseaux privées (VPN, ExpressRoute, …)

L’excellent billet de Denis Gundarev nous explique avec simplicité l’inadéquation entre le protocole TCP pour un besoin RDP :

TCP est un excellent protocole pour la livraison garantie de petites quantités de données. Les applications telles que les navigateurs ou les clients de messagerie se contentent d’envoyer les données et de les oublier. Le protocole assure la cohérence et l’ordre des paquets et relance la transmission si la livraison échoue. Cependant, RDP utilise des connexions de longue durée et les connexions TCP de longue durée sont problématiques.

Le protocole TCP est idéal pour les réseaux locaux, mais pas pour l’Internet. Oui, si le paquet est perdu, il sera retransmis. La disponibilité de la bande passante est un facteur essentiel. Malheureusement, les algorithmes de contrôle de congestion TCP limitent la possibilité de saturer le réseau.

RDH Shortpath s’applique donc sur les réseau publics

Comme son grand frère, cette fonctionnalité établit un flux UDP direct pour RDP. Toutefois, elle ne nécessite pas l’ouverture de ports entrants sur le pare-feu. Au lieu de cela, elle sélectionne automatiquement les conditions du réseau. Elle utilise une combinaison de protocoles de traversée NAT tels que STUN et UPnP et le processus d’établissement de la connectivité interactive (ICE). RDP établit alors le flux UDP direct dans la plupart des configurations de réseau.

Par conséquent, vos utilisateurs bénéficieront d’une latence plus faible, d’une meilleure utilisation du réseau et d’une grande tolérance à la perte de paquets ou aux changements de configuration du réseau.

Et la sécurité ?

RDP Shortpath pour les réseaux publics étend les capacités de multi-transport de RDP. Il ne remplace pas le transport de connexion inverse mais le complète. Le courtage de la session initiale est toujours géré par l’infrastructure Azure Virtual Desktop.

Comment constater le bénéfice ?

Denis nous a même préparé une vidéo pour montrer le bénéfice possible dans la gestion des paquets perdus entre les différents protocoles possibles :

La vidéo de gauche reprend une connexion avec le RDP Shortpath, tandis que celle de droite est en protocole TCP.
La vidéo originale en bas de l’écran fait office de référence.

Mise en oeuvre de la solution

Dans un environnement Azure Virtual Desktop, chaque connexion RDP commence par l’établissement du transport de connexion inverse sur la passerelle Azure Virtual Desktop. Après l’authentification de l’utilisateur, le client et l’hôte de session établissent le transport RDP initial, et le client et l’hôte de session commencent à échanger leurs capacités.

Important : comme le rappel la documentation Microsoft, RDP Shortpath configurés sur des réseaux managés est actuellement incompatible avec la prévision de RDP Shortpath pour les réseaux publics.

Comme à chaque article d’Azure Virtual Desktop, vous pouvez suivre les différentes étapes pour mettre en route cette fonctionnalité, toujours en preview à l’heure où ces lignes sont écrites.

Etape 0 : Rappel des prérequis

Des prérequis sont nécessaires pour réaliser cette démonstration AVD :

  • Un tenant Microsoft
  • Une souscription Azure valide
  • Un réseau virtuel existant sur Azure
  • Un domaine Active Directory synchronisé avec Azure AD via l’agent Azure AD Connect
  • Une ou des machines virtuelles AVD déployées sur ce même réseau virtuel

Mon environnement Azure Virtual Desktop est donc déjà en place :

Etape I : Test avant modification du RDP Shortpath

Avant d’effectuer les modifications, connectez-vous à votre environnement AVD avec un utilisateur pour constater la connexion RDP via le protocole TCP :

Saisissez vos identifiants pour ouvrir votre session RDP :

Contrôlez la méthode de connexion TCP, mise en place par défaut :

Afin de mettre en place la configuration nécessaire sur les machines virtuelles AVD, il est possible d’y parvenir de plusieurs manières. En voici deux :

Etape IIa : Modifiez la configuration de registre d’une machine virtuelle AVD manuellement

Fermez la session utilisateur et retournez sur une machine virtuelle via votre portail Azure. Exécutez la commande suivante comme ceci

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations" /v ICEControl /t REG_DWORD  /d 2 /f

Attendez quelques minutes et constatez le succès de celle-ci sur le portail Azure

Etape IIb : Modifiez la configuration de registre d’une machine virtuelle AVD via GPO

Au lieu de faire cette modification manuelle sur toutes vos machines virtuelles, vous pouvez également créer une GPO dans votre domaine AD et l’appliquer aux machines AVD.

Connectez à une machine de votre domaine AD pour y créer votre nouvelle GPO

Commencez la création de cette nouvelle GPO sur l’OU correspondante à vos machines AVD

Nommez votre GPO à votre convenance

Editez-là avec un clic droit

Créez y un nouvel objet de registre comme ceci

Descendez dans l’arborescence suivante et sélectionnez là :

SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations

Renseignez la valeur suivante

ICEControl

Ajoutez-lui les propriétés suivantes et cliquez sur OK

Redémarrez les machines virtuelles AVD pour une bonne prise en compte de cette nouvelle GPO

Etape III : Test après modification du RDP Shortpath

Comme au premier essai, reconnectez-vous à votre environnement AVD avec un utilisateur de test, puis constatez le changement de protocole UDP :

Rien de bien compliqué 😎.

Evidemment, Microsoft prévoit aussi des ajouts de règles firewall pour les machines virtuelles AVD et pour les machines clients. Ces opérations sont nécessaires si le protocole UDP est à l’origine bloqué.

Conclusion

Cette nouvelle fonctionnalité est donc une façon facile d’améliorer l’expérience de vos utilisateurs sans mettre en défaut la sécurité à travers des réseaux publics.

Pour finir et vous aider dans cette démarche, Dean nous a même préparé un seconde vidéo sur la chaine YouTube et dédiée à cette évolution du RDP Shortpath, encore en préversion !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.