Le protocole RDP (Remote Desktop Protocol) est un protocole compatible multicanal qui permet de disposer de canaux virtuels distincts pour transporter des données de présentation, des communications de périphérique série, des informations de licence, des données hautement cryptées (activité du clavier et de la souris), etc.
Le protocole RDP est utilisé pour fournir une interface graphique à un autre ordinateur du réseau. Le protocole RDP est utilisé avec les serveurs de terminaux Windows pour fournir un accès rapide avec une transmission quasi en temps réel des mouvements de la souris et des pressions de touches, même sur des connexions à faible bande passante.
Lorsque plusieurs serveurs de terminaux sont déployés pour fournir des services de bureau à distance, l'appliance NetScaler assure l'équilibrage de charge des serveurs de terminaux (Windows 2003 et 2008 Server Enterprise Editions). Parfois, un utilisateur qui accède à distance à une application peut souhaiter laisser l'application s'exécuter sur l'ordinateur distant tout en arrêtant l'ordinateur local. L'utilisateur ferme donc l'application locale sans se déconnecter de l'application distante. Une fois reconnecté à la machine distante, l'utilisateur doit pouvoir continuer avec l'application distante. Pour fournir cette fonctionnalité, l'implémentation de NetScaler RDP respecte le jeton de routage (cookie) défini par le répertoire de sessions ou le courtier des services Terminal afin que le client puisse se reconnecter au même serveur de terminal auquel il était connecté précédemment. Le répertoire de sessions, implémenté sur Windows 2003 Terminal Server, est appelé Broker sur Windows 2008 Terminal Server.
Lorsqu'une connexion TCP est établie entre le client et le serveur virtuel d'équilibrage de charge, NetScaler applique la méthode d'équilibrage de charge spécifiée et transmet la demande à l'un des serveurs de terminaux. Le serveur terminal vérifie le répertoire des sessions pour déterminer si le client possède une session en cours d'exécution sur un autre serveur terminal du domaine.
S'il n'y a aucune session active sur un autre serveur de terminal, le serveur de terminaux répond en répondant à la demande du client et l'appliance NetScaler transmet la réponse au client.
S'il existe une session active sur un autre serveur terminal, le serveur terminal qui reçoit la demande insère un cookie (appelé jeton de routage) contenant les détails de la session active et renvoie les paquets à l'appliance NetScaler, qui renvoie le paquet au client. Le serveur ferme la connexion avec le client. Lorsque le client essaie à nouveau de se connecter, NetScaler lit les informations du cookie et transmet le paquet au serveur terminal sur lequel le client a une session active.
Sur la machine cliente, l'utilisateur bénéficie d'une continuité du service et n'a aucune action spécifique à effectuer.
Remarque : La fonctionnalité Windows Session Directory nécessite le client Remote Desktop initialement publié avec Windows XP. Si une session avec un client Terminal Server Windows 2000 ou Windows NT 4.0 est déconnectée et que le client se reconnecte, le serveur avec lequel la connexion est établie est sélectionné par l'algorithme d'équilibrage de charge.
Le schéma suivant décrit l'équilibrage de charge RDP.
Figure 1. Topologie d'équilibrage de charge pour RDP
-
Lorsqu'un service RDP est configuré, la persistance est automatiquement maintenue à l'aide d'un jeton de routage. Il n'est pas nécessaire d'activer la persistance de manière explicite.
-
L'appliance NetScaler prend uniquement en charge les cookies basés sur IP.
-
Le script nsrdp.pl n'est pris en charge sur aucune version actuelle des serveurs Windows.
Assurez-vous que les sessions RDP déconnectées sont effacées sur les serveurs terminaux situés en arrière-plan afin d'éviter tout basculement entre deux serveurs terminal lorsqu'une session RDP est déconnectée sans déconnexion. Pour plus d'informations, consultez https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc758177(v=ws.10)#BKMK_2
Lorsque vous ajoutez un service RDP, NetScaler ajoute par défaut un moniteur de type TCP et le lie au service. Le moniteur par défaut est un simple moniteur TCP qui vérifie si un processus d'écoute existe sur le port 3389 du serveur spécifié pour le service RDP. S'il existe un processus d'écoute à 3389, NetScaler marque ce service comme ÉTANT ACTIF et s'il n'y a aucun processus d'écoute, il marque le service comme ÉTANT EN PANNE.
Pour une surveillance plus efficace d'un service RDP, en plus du moniteur par défaut, vous pouvez configurer un moniteur de script destiné au protocole RDP. Lorsque vous configurez le moniteur de script, NetScaler ouvre une connexion TCP vers le serveur spécifié et envoie un paquet RDP. Le moniteur marque le service comme étant actif uniquement s'il reçoit une confirmation de la connexion du serveur physique. Par conséquent, à partir du moniteur de script, NetScaler peut savoir si le service RDP est prêt à traiter une demande.
Le moniteur est un moniteur de type utilisateur et le script se trouve sur NetScaler à l'adresse /nsconfig/monitors/nsrdp.pl. Lorsque vous configurez le moniteur utilisateur, NetScaler exécute le script automatiquement. Pour configurer le moniteur de script, ajoutez-le et liez-le au service RDP.
Pour configurer l'équilibrage de charge RDP, créez des services de type RDP et liez-les à un serveur virtuel RDP.