Citrix Virtual Apps and Desktops

IP virtuelle et boucle virtuelle

Important :

  • Windows 10 Enterprise multi-sessions ne prend pas en charge Remote Desktop IP Virtualization (Virtual IP) et nous ne prenons pas en charge Remote Desktop IP Virtualization ni Virtual Loopback sur Windows 10 Enterprise multi-sessions.
  • Remote Desktop IP Virtualization (Virtual IP) n’est pas pris en charge sur les machines hébergées dans le cloud. Pour de plus amples informations, consultez la documentation de Microsoft.

Les fonctionnalités de Remote Desktop IP Virtualization et Virtual Loopback sont prises en charge sur les machines Windows Server 2016, Windows Server 2019 et Windows Server 2022. Elles ne sont pas prises en charge par les machines avec système d’exploitation de bureau Windows.

La fonctionnalité d’adresse Remote Desktop IP Virtualization de Microsoft propose une application publiée avec une adresse IP unique attribuée dynamiquement à chaque session. La fonction Virtual Loopback de Citrix vous permet de configurer des applications qui dépendent des communications avec localhost (127.0.0.1 par défaut) pour utiliser une adresse de bouclage virtuelle unique dans la plage localhost (127.*).

Certaines applications, telles que les applications de type CRM ou CTI (Computer Telephony Integration), utilisent une adresse IP pour l’adressage, l’identification, les licences, ou à d’autres fins. Elles nécessitent par conséquent une adresse IP unique ou adresse de bouclage. D’autres applications peuvent se lier à un port statique, c’est pourquoi les tentatives de démarrage des instances d’une application dans un environnement multi-utilisateur échouent car le port est utilisé. Pour assurer un fonctionnement correct de ces applications dans l’environnement Citrix Virtual Apps, chaque machine nécessite une adresse IP unique.

Remote Desktop IP Virtualization et Virtual Loopback sont des fonctionnalités indépendantes l’une de l’autre. Vous pouvez sélectionnez ces deux options ou l’une ou l’autre.

Résumé des actions de l’administrateur :

  • Pour utiliser la fonction Remote Desktop IP Virtualization de Microsoft, activez-la et configurez-la sur le serveur Windows. (Les paramètres de stratégie Citrix ne sont pas nécessaires.)
  • Pour utiliser le bouclage virtuel Citrix, configurez deux paramètres dans une stratégie Citrix.

Remote Desktop IP Virtualization (Virtual IP)

Lorsque la fonction Remote Desktop IP Virtualization est activée et configurée sur le serveur Windows, chaque application configurée en cours d’exécution dans une session dispose d’une adresse unique. Les utilisateurs peuvent accéder à ces applications sur un serveur Citrix Virtual Apps comme ils accèdent à toute autre application publiée. Un processus nécessite Remote Desktop IP Virtualization dans l’un des cas suivants :

  • Le processus utilise un numéro de port TCP fixe
  • Le processus utilise des sockets Windows et nécessite une adresse IP unique ou un numéro de port TCP spécifié

Pour déterminer si une application doit utiliser des adresses Remote Desktop IP Virtualization, procédez comme suit :

  1. Obtenez l’outil TCPView auprès de Microsoft. Cet outil répertorie toutes les applications liées à des adresses IP et ports spécifiques. Pour en savoir plus sur TCPView, consultez la documentation de Microsoft.
  2. Désactivez la fonction Résoudre les adresses IP afin d’afficher les adresses au lieu des noms d’hôtes.
  3. Lancez l’application et utilisez TCPView pour voir quelles adresses IP et ports sont ouverts par celle-ci ainsi que les noms des processus qui ouvrent ces ports.
  4. Configurez tous les processus qui ouvrent l’adresse IP du serveur, 0.0.0.0 ou 127.0.0.1.
  5. Lancez une autre instance de l’application afin de vous assurer qu’elle n’ouvre pas la même adresse IP sur un port différent.

Fonctionnement de la virtualisation IP Microsoft Remote Desktop (RD)

  • L’adressage IP virtuel doit être activé sur le serveur Microsoft.

    Par exemple, dans un environnement Windows Server 2016, à partir du Gestionnaire de serveur, développez Services Bureau à distance > Connexions hôtes de session Bureau à distance pour activer la fonctionnalité de virtualisation IP des services Bureau à distance et configurer les paramètres pour attribuer dynamiquement des adresses IP à l’aide du serveur DHCP (Dynamic Host Configuration Protocol) par session ou par programme. Pour en savoir plus sur la configuration Remote Desktop IP Virtualization, consultez la documentation de Microsoft.

  • Lorsque cette fonctionnalité est activée, le serveur demande des adresses IP attribuées dynamiquement auprès du serveur DHCP au démarrage de la session.

  • La fonction RD IP Virtualization attribue les adresses IP aux connexions de bureau à distance par session ou par programme. Si vous attribuez des adresses IP à de multiples programmes, ces derniers partagent une adresse IP par session.

  • Une fois qu’une adresse est attribuée à une session, la session utilise l’adresse virtuelle plutôt que l’adresse IP principale pour le système chaque fois que les appels suivants sont effectués : bind¸closesocket¸connect, WSAConnect, WSAAccept, getpeername, getsockname, sendto, WSASendTo, WSASocketW, gethostbyaddr, getnameinfo, getaddrinfo.

Lors de l’utilisation de la fonctionnalité de virtualisation d’adresses IP de Microsoft dans la configuration d’hôte de session Bureau à distance, les applications sont liées à des adresses IP spécifiques par l’insertion d’un composant « filtre » entre l’application et les appels de fonction Winsock. L’application ne voit alors que l’adresse IP correcte à utiliser. Toute tentative d’écoute de communications TCP ou UDP par l’application est liée à l’adresse IP virtuelle (ou adresse de bouclage) qui lui est attribuée automatiquement. Toutes les connexions ouvertes par l’application sont établies au départ par l’adresse IP liée à l’application.

Pour les fonctions qui renvoient une adresse, telle que GetAddrInfo() (contrôlée par une stratégie Windows), si l’adresse IP de l’hôte local est requise, Remote Desktop IP Virtualization examine l’adresse IP renvoyée et la remplace par l’adresse Remote Desktop IP Virtualization de la session. Les applications qui tentent d’obtenir l’adresse IP du serveur local à travers ce type de noms de fonctions n’obtiennent que l’adresse Remote Desktop IP Virtualization unique attribuée à la session. Cette adresse IP est souvent utilisée dans les appels de socket suivants, tels que bind ou connect. Pour plus d’ informations sur les stratégies Windows, consultez l’article RDS IP Virtualization in Windows Server.

Une application demande souvent à se lier à un port pour procéder à une écoute de l’adresse « 0.0.0.0 ». Lorsque c’est le cas et qu’une application utilise un port statique, vous ne pouvez pas ouvrir plus d’une instance de celle-ci. La fonction d’adresse Remote Desktop IP Virtualization recherche également 0.0.0.0 dans ces types d’appels. Il modifie l’appel pour écouter sur l’adresse Remote Desktop IP Virtualization spécifique, ce qui permet à plusieurs applications d’écouter sur le même port sur le même ordinateur, car elles écoutent toutes sur des adresses différentes. L’appel est modifié uniquement s’il se trouve dans une session ICA et que la fonction d’adresse Remote Desktop IP Virtualization est activée. Par exemple, si deux instances d’une application exécutées dans des sessions différentes tentent toutes deux de se lier à toutes les interfaces (0.0.0.0) et à un port spécifique (par exemple, 9000), elles sont liées à VIPAddress1:9000 et VIPAddress2:9000, sans aucun conflit.

Bouclage virtuel

L’activation des paramètres de stratégie de bouclage Remote Desktop IP Virtualization de Citrix permettent à chaque session de disposer de sa propre adresse de bouclage pour les communications. Lorsqu’une application utilise l’adresse localhost (valeur par défaut = 127.0.0.1) dans un appel Winsock, la fonctionnalité de bouclage virtuel remplace simplement 127.0.0.1 par 127.X.X.X, où X.X.X représente l’ID de session + 1. Par exemple, 127.0.0.8. pour un ID session de 7. Dans le cas peu probable où l’ID session dépasse le quatrième octet (plus de 255), l’adresse passe à l’octet suivant (127.0.1.0), jusqu’à 127.255.255.255 maximum.

Un processus nécessite le bouclage virtuel dans l’un des cas suivants :

  • Le processus utilise l’adresse de bouclage de socket Windows 127.0.0.1 (localhost)
  • Le processus utilise un numéro de port TCP fixe

Utilisez les paramètres de stratégie de bouclage virtuel pour les applications qui utilisent une adresse de bouclage pour la communication entre les processus. Aucune configuration supplémentaire n’est requise. Le bouclage virtuel n’a pas de dépendance à l’égard des adresses IP virtuelles, de sorte que vous n’avez pas à configurer le serveur Microsoft.

  • Prise en charge du bouclage d’adresse IP virtuelle. Lorsqu’il est activé, ce paramètre de stratégie permet à chaque session de disposer de sa propre adresse de bouclage virtuel. Cette option est désactivée par défaut. Cette fonctionnalité ne s’applique qu’aux applications spécifiées avec le paramètre de stratégie Liste de programmes de bouclage virtuel d’adresse IP virtuelle.
  • Liste de programmes de bouclage virtuel d’adresse IP virtuelle. Ce paramètre de stratégie spécifie les applications qui utilisent la fonctionnalité de bouclage d’adresse IP virtuelle. Ce paramètre ne s’applique que lorsque le paramètre de stratégie de prise en charge du bouclage d’adresse IP virtuelle est activé.

Fonction connexe

Vous pouvez utiliser les paramètres de registre suivants pour vous assurer que le bouclage virtuel est préféré aux adresses IP virtuelles. Cette fonctionnalité s’appelle un bouclage par défaut. Soyez, toutefois, prudent :

  • Utilisez le bouclage par défaut uniquement si les adresses IP virtuelles et le bouclage virtuel sont activés. Sinon, vous risquez d’obtenir des résultats inattendus.
  • Toute utilisation incorrecte de l’Éditeur du Registre peut générer des problèmes sérieux, pouvant vous obliger à réinstaller le système d’exploitation. Citrix ne peut garantir que les problèmes provenant d’une mauvaise utilisation de l’Éditeur du Registre peuvent être résolus. Vous utilisez l’Éditeur du Registre à vos propres risques. Veillez à faire une copie de sauvegarde de votre registre avant de le modifier.

Exécutez regedit sur les serveurs sur lesquels les applications résident.

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\VIP
  • Nom : PreferLoopback, Type : REG_DWORD, Données : 1
  • Nom : PreferLoopbackProcesses, Type : REG_MULTI_SZ, Données :<liste des processus>
IP virtuelle et boucle virtuelle