Équilibrage de charge avec l’appliance Citrix ADC

Cet article contient des instructions sur la manière de déployer un groupe de serveurs StoreFront contenant deux ou plusieurs serveurs StoreFront dans une configuration d’équilibrage de charge active. Cet article fournit des informations sur la manière de configurer une appliance Citrix ADC pour l’équilibrage de charge des requêtes entrantes depuis l’application Citrix Workspace et Citrix Receiver pour Web entre les nœuds StoreFront du groupe de serveurs. Cet article explique également comment configurer StoreFront Monitor pour une utilisation avec une appliance Citrix ADC.

Les exemples de cette section ont été testés dans l’environnement suivant :

  • Quatre nœuds StoreFront 3.x Windows Server 2012 R2 dans un seul groupe de serveurs.
  • Un équilibrage de charge de l’appliance Citrix ADC 12.1 configuré pour l’équilibrage de charge persistant CookieInsert et Least Connection.
  • Un client de test Windows 10 avec l’application Citrix Workspace installée.

Certificat de serveur requis pour le déploiement avec charge équilibrée, si vous prévoyez d’utiliser le protocole HTTPS

Passez en revue la section Planifier l’utilisation des certificats de serveur et des passerelles.

Tenez compte des options suivantes avant d’effectuer l’achat d’un certificat provenant d’une autorité de certification commerciale ou d’en émettre un à partir de votre autorité de certification d’entreprise.

  • Option 1 : permet d’utiliser un certificat générique *.exemple.com sur le vServer d’équilibrage de charge de l’appliance Citrix ADC et sur les nœuds de groupe de serveurs StoreFront. Cela simplifie la configuration et vous permet d’ajouter des serveurs StoreFront supplémentaires dans le futur sans avoir à remplacer le certificat.
  • Option 2 : permet d’utiliser un certificat incluant des noms de sujet alternatifs sur le vServer d’équilibrage de charge de l’appliance Citrix ADC et sur les nœuds de groupe de serveurs StoreFront. Ajouter au certificat des SAN supplémentaires correspondant à tous les noms de domaine complets (FQDN) du serveur StoreFront est facultatif, mais recommandé, car cela permet une plus grande souplesse dans le déploiement StoreFront. Incluez un réseau SAN pour la découverte basée sur l’adresse e-mail discoverReceiver.example.com.

Pour plus de détails sur la configuration de la découverte basée sur l’adresse e-mail, voir http://blogs.citrix.com/2013/04/01/configuring-email-based-account-discovery-for-citrix-receiver/.

Remarque :

Lorsque l’exportation de la clé privée associée avec le certificat n’est pas possible, utilisez deux certificats distincts : un sur le vServer d’équilibrage de charge de l’appliance Citrix ADC et un autre certificat sur les nœuds de groupe de serveurs StoreFront. Les deux certificats doivent inclure des noms SAN.

image localisée

image localisée

Créer un certificat de serveur pour l’équilibrage de charge de l’appliance Citrix ADC et tous les serveurs StoreFront

Importer un certificat émis par une autorité de certification Windows sur une appliance Citrix ADC

  • WinSCP est un outil tiers utile et gratuit pour déplacer des fichiers d’un ordinateur Windows sur un système de fichiers d’appliance Citrix ADC. Copiez les certificats à importer sur le dossier /nsconfig/ssl/ dans le système de fichiers de l’appliance Citrix ADC.
  • Vous pouvez aussi utiliser les outils OpenSSL de l’appliance Citrix ADC pour extraire le certificat et la clé depuis un fichier PKCS12/PFX afin de créer deux fichiers .CER et .KEY X.509 distincts au format PEM pouvant être utilisés par Citrix ADC.
  1. Copiez le fichier PFX dans /nsconfig/ssl sur l’appliance Citrix ADC ou VPX.
  2. Ouvrez l’interface de ligne de commande (CLI) de l’appliance Citrix ADC.
  3. Tapez Shell pour quitter la CLI de l’appliance Citrix ADC et basculer vers le shell FreeBSD.
  4. Changer de répertoire en utilisant cd /nsconfig/ssl/.
  5. Exécutez openssl pkcs12 -in <imported cert file>.pfx -nokeys -out <certfilename>.cer et entrez le mot de passe PFX à l’invite correspondante.
  6. Exécutez openssl pkcs12 -in <imported cert file>.pfx -nocerts -out <keyfilename>.key et entrez le mot de passe du fichier PFX lorsque vous y êtes invité, puis définissez la phrase secrète au format PEM pour la clé privée pour protéger le fichier .KEY.
  7. Exécutez ls -al pour vérifier que les fichiers .CER et .KEY ont été créés avec succès dans /nsconfig/ssl/.
  8. Tapez Exit pour revenir à l’interface de ligne de commande de l’appliance Citrix ADC.

Configurer le certificat de serveur de l’appliance Citrix ADC une fois qu’il a été importé

  1. Ouvrez une session sur la console de gestion de l’appliance Citrix ADC.
  2. Sélectionnez Traffic Management > SSL > SSL Certificates et cliquez sur Install.
  3. Sur la page Install Certificate, entrez les noms de la paire de clés certificat et privée.
    • Sélectionnez le fichier de certificat .cer sur le système de fichiers de l’appliance Citrix ADC dans /nsconfig/ssl/.
    • Sélectionnez le fichier .key contenant la clé privée dans le même emplacement.

image localisée

Créer des enregistrements DNS pour l’équilibrage de charge du groupe de serveurs StoreFront

Créez un enregistrement DNS A et PTR pour le nom de domaine complet (FQDN) partagé de votre choix. Les clients de votre réseau utilisent ce nom de domaine complet (FQDN) pour accéder au groupe de serveurs StoreFront utilisant l’équilibrage de charge de l’appliance Citrix ADC.

Exemple : storefront.example.com se résout sur l’adresse IP virtuelle (VIP) du vServer de l’équilibrage de charge.

Scénario 1 – Connexion sécurisée HTTPS 443 de bout en bout entre le client et l’équilibrage de charge de l’appliance Citrix ADC, et entre l’équilibrage de charge et plusieurs serveurs StoreFront 3.x

Ce scénario utilise un moniteur StoreFront modifié utilisant le port 443.

Ajouter des nœuds de serveur StoreFront individuels à l’équilibrage de charge de l’appliance Citrix ADC

  1. Ouvrez une session sur la console de gestion de l’appliance Citrix ADC.
  2. Sélectionnez Traffic Management > Load Balancing > Servers > Add et ajoutez chacun des quatre nœuds StoreFront à l’équilibrage de charge.

    Exemple = 4 x nœuds 2012R2 StoreFront appelés 2012R2-A à -D

  3. Utilisez la configuration de serveur basée sur l’adresse IP et entrez l’adresse IP du serveur pour chaque nœud StoreFront.

image localisée

Définir un moniteur StoreFront pour vérifier l’état de tous les nœuds StoreFront dans le groupe de serveurs

  1. Ouvrez une session sur la console de gestion Citrix ADC.
  2. Sélectionnez Traffic Management > Load Balancing > Monitors > Add, ajoutez un nouveau moniteur appelé StoreFront et acceptez tous les paramètres par défaut.
  3. Dans le menu déroulant Type, sélectionnez StoreFront.
  4. Assurez-vous que la case Secure est cochée si vous utilisez des connexions HTTPS entre votre vServer d’équilibrage de charge et StoreFront ; sinon, laissez cette option désactivée.
  5. Dans l’onglet Special Parameters, saisissez le nom du magasin sous Store Name.
  6. Dans l’onglet Special Parameters, sélectionnez l’option VCheck Backend Services. Cette option permet de contrôler les services exécutés sur le serveur StoreFront. Les services StoreFront sont contrôlés par interrogation d’un service Windows qui s’exécute sur le serveur StoreFront et qui renvoie l’état des services suivants :
    • W3SVC (IIS)
    • WAS (Service d’activation des processus Windows)
    • CitrixCredentialWallet
    • CitrixDefaultDomainService

    image localisée

Créer un groupe de services HTTPS 443 contenant tous les serveurs StoreFront

  1. Dans le groupe de services, sélectionnez l’option Members sur le côté droit et ajoutez tous les nœuds de serveurs StoreFront que vous avez définis précédemment dans la section Servers.

  2. Définissez le port TLS et accordez à chaque nœud un ID de serveur unique lors de leur ajout.

    image localisée

  3. Sur l’onglet Monitors, sélectionnez le moniteur StoreFront que vous avez créé précédemment.

    image localisée

  4. Sur l’onglet Certificates, liez le certificat de serveur que vous avez importé précédemment.

  5. Liez le certificat CA utilisé pour signer le certificat de serveur que vous avez importé précédemment et les autres autorités de certification faisant partie de la chaîne de confiance PKI.

    image localisée

Créer un vServer d’équilibrage de charge pour le trafic utilisateur

  1. Ouvrez une session sur la console de gestion de l’appliance Citrix ADC.

  2. Sélectionnez Traffic Management > Load Balancing > Virtual Servers > Add pour créer un nouveau vServer.

  3. Sélectionnez la méthode d’équilibrage de charge pour le vServer. Les options courantes pour l’équilibrage de charge StoreFront sont round robin ou least connection.

    image localisée

  4. Liez le groupe de services que vous avez créé précédemment au vServer d’équilibrage de charge.

  5. Liez au vServer d’équilibrage de charge le même certificat de serveur et CA vous avez déjà lié au groupe de services.

  6. Depuis le menu du vServer d’équilibrage de charge, sélectionnez Persistence sur le côté droit et définissez la méthode de persistance sur COOKIEINSERT.

  7. Attribuez un nom au cookie. Par exemple, NSC_SFPersistence, car cela facilite l’identification dans les traces de Fiddler lors du débogage.

  8. Définissez la persistance de sauvegarde sur NONE.

image localisée

Scénario 2 – Arrêt HTTPS/Communication HTTPS 443 entre le client et l’équilibrage de charge Citrix ADC, et connexions HTTP 80 entre l’équilibrage de charge et les serveurs StoreFront 3.x

Ce scénario utilise le moniteur StoreFront par défaut avec le port 8000.

Ajouter des serveurs StoreFront individuels à l’équilibrage de charge Citrix ADC

  1. Ouvrez une session sur la console de gestion Citrix ADC.
  2. Sélectionnez Traffic Management > Load Balancing > Servers > Add et ajoutez chacun des quatre serveurs StoreFront à l’équilibrage de charge. Exemple = 4 serveurs 2012R2 StoreFront appelés 2012R2-A à -D. 3.
  3. Utilisez la configuration de serveur basée sur l’adresse IP et entrez l’adresse IP du serveur pour chaque serveur StoreFront.

Définir un moniteur StoreFront HTTP 8000 pour vérifier l’état de tous les serveurs StoreFront du groupe de serveurs

  1. Ouvrez une session sur la console de gestion Citrix ADC.
  2. Sélectionnez Traffic Management > Monitors > Add et ajoutez un nouveau moniteur appelé StoreFront.
  3. Ajoutez un nom pour le nouveau moniteur et acceptez tous les paramètres par défaut.
  4. Dans la liste Type, sélectionnez StoreFront .
  5. Dans l’onglet Special Parameters, saisissez le nom du magasin sous Store Name.
  6. Saisissez 8000 dans le champ Destination Port. Cela correspond à l’instance de moniteur par défaut créée sur chaque serveur StoreFront.
  7. Dans l’onglet Special Parameters, sélectionnez l’option VCheck Backend Services. Cette option permet de contrôler les services exécutés sur le serveur StoreFront. Les services StoreFront sont contrôlés par interrogation d’un service Windows qui s’exécute sur le serveur StoreFront et qui renvoie l’état de tous les services StoreFront en cours d’exécution.

Créer un groupe de services HTTP 80 contenant tous les serveurs StoreFront

  1. Dans le groupe de services, sélectionnez l’option Members sur le côté droit et ajoutez tous les nœuds de serveurs StoreFront que vous avez définis précédemment dans la section Servers.
  2. Définissez le port HTTP sur 80 et accordez à chaque serveur un ID de serveur unique lors de leur ajout.
  3. Sur l’onglet Monitors, sélectionnez le moniteur StoreFront que vous avez créé précédemment.

Créer un vServer d’équilibrage de charge d’arrêt HTTPS pour le trafic utilisateur

  1. Sélectionnez Traffic Management > Load Balancing > Virtual Servers > Add pour créer un nouveau vServer.
  2. Sélectionnez la méthode d’équilibrage de charge que le vServer utilisera. Les options courantes pour l’équilibrage de charge StoreFront sont « round robin » ou « least connection ».

  3. Liez le groupe de services que vous avez créé précédemment au vServer d’équilibrage de charge.

  4. Liez au vServer d’équilibrage de charge le même certificat de serveur et CA vous avez déjà lié au groupe de services.

    Remarque :

    Si le client n’est pas autorisé à stocker le cookie HTTP, les demandes ultérieures ne disposent pas du cookie HTTP et la persistance n’est pas utilisée.

  5. Depuis le menu du vServer d’équilibrage de charge, sélectionnez Persistence sur le côté droit et définissez la méthode de persistance sur COOKIEINSERT.

  6. Attribuez un nom au cookie. Par exemple, NSC_SFPersistence, car cela facilite l’identification dans les traces de Fiddler lors du débogage.
  7. Définissez la persistance de sauvegarde sur NONE.

Créer un équilibrage de charge vServer pour la synchronisation des abonnements entre les groupes de serveurs

Considérations à prendre en compte avant de créer un vServer d’équilibrage de charge :

  • Option 1 : créez un seul vServer pour équilibrer la charge du trafic utilisateur uniquement. Cela suffit si vous effectuez uniquement des lancements ICA d’applications publiées et de bureaux. (obligatoire et généralement suffisant).
  • Option 2 : créez une paire de vServers, un pour l’équilibrage de charge du trafic utilisateur pour effectuer des lancements ICA d’applications publiées et de bureaux, et un autre pour l’équilibrage de charge des opérations de synchronisation de données d’abonnement. (nécessaire uniquement lors de la propagation de données d’abonnement entre plusieurs groupes de serveurs StoreFront dont la charge est équilibrée dans un grand déploiement multisite).

Si un déploiement multisite est constitué de plusieurs groupes de serveurs StoreFront se trouvant dans des emplacements géographiques différents, vous pouvez répliquer les données d’abonnement entre eux à l’aide d’une stratégie « pull » selon un planning récurrent. La réplication d’abonnement StoreFront utilise le port TCP 808, donc l’utilisation d’un vServer d’équilibrage de charge sur le port HTTP 80 ou HTTPS 443 échoue. Pour fournir une haute disponibilité pour ce service, vous devez créer un deuxième vServer sur chaque appliance Citrix ADC de votre déploiement pour équilibrer la charge du port TCP 808 pour chacun des groupes de serveurs StoreFront. Lors de la configuration du planning de réplication, spécifiez une adresse de groupe de services qui correspond à l’adresse IP virtuelle du vServer de synchronisation d’abonnement. Assurez-vous que l’adresse du groupe de serveurs est le nom de domaine complet de l’équilibrage de charge pour le groupe de serveurs à cet emplacement.

Configurez un groupe de services pour la synchronisation d’abonnement

  1. Ouvrez une session sur la console de gestion de l’appliance Citrix ADC.
  2. Sélectionnez Traffic Management > Service Groups > Add et ajoutez un nouveau groupe de services.
  3. Définissez le protocole sur TCP.
  4. Dans le groupe de services, sélectionnez l’option Members sur le côté droit et ajoutez tous les nœuds de serveurs StoreFront que vous avez définis précédemment dans la section Servers.
  5. Sur l’onglet Monitors, sélectionnez le moniteur TCP.

image localisée

Créer un équilibrage de charge vServer pour la synchronisation des abonnements entre les groupes de serveurs

  1. Ouvrez une session sur la console de gestion de l’appliance Citrix ADC.
  2. Sélectionnez Traffic Management > Service Groups > Add et ajoutez un nouveau groupe de services.
  3. Définissez la méthode d’équilibrage de charge sur round robin.
  4. Définissez le protocole sur TCP.
  5. Entrez 808, et NON 443, comme numéro de port.

image localisée

Appartenance au groupe CitrixSubscriptionsSyncUsers

Pour que le serveur StoreFront A dans l’emplacement A demande et récupère des données d’abonnement à partir du serveur B à un emplacement différent, le serveur A doit être un membre du groupe de sécurité local CitrixSubscriptionsSyncUsers sur le serveur B. Le groupe local CitrixSubscriptionsSyncUsers contient une liste de contrôle d’accès de tous les serveurs StoreFront distants autorisés à extraire les données d’abonnement d’un serveur donné. Pour la synchronisation d’abonnement bidirectionnelle, le serveur B doit également être un membre du groupe de sécurité CitrixSubscriptionsSyncUsers sur le serveur A pour extraire les données d’abonnement à partir de ce dernier.

image localisée

Scénario 1 – Configurer le groupe de serveurs StoreFront à l’aide de HTTPS entre Citrix ADC et StoreFront

  1. Importez la clé certificat et privée qui a été déployée sur le vServer d’équilibrage de charge de l’appliance Citrix ADC pour chaque nœud StoreFront du groupe de serveurs.

  2. Créez une liaison HTTPS dans IIS sur chaque nœud StoreFront, puis liez le certificat que vous avez importé.

    image localisée

  3. Si vous utilisez HTTPS entre l’équilibrage de charge Citrix ADC et StoreFront, vous devez utiliser un certificat contenant le nom de domaine complet (FQDN) avec équilibrage de charge en tant que nom courant (CN) ou nom de sujet alternatif (SAN).

    Veuillez consulter la section Créer un certificat de serveur pour l’équilibrage de charge de l’appliance Citrix ADC et les serveurs StoreFront.

Scénario 2 – Configurer le groupe de serveurs StoreFront à l’aide de HTTPS entre Citrix ADC et StoreFront

  1. Supprimez la liaison HTTPS dans IIS de chaque nœud StoreFront le cas échéant.
  2. Assurez-vous que la liaison HTTP est présente dans IIS et qu’elle est définie pour utiliser le port 80.
  3. Définissez les paramètres de bouclage dans Receiver pour Web sur OnUsingHTTP et port 80. Cette étape est essentielle pour garantir la réussite de la détection du client entre l’application Citrix Workspace native et Receiver pour Web.

    Paramètres avancés

Étapes communes aux scénarios 1 et 2

  1. Installez StoreFront sur chaque nœud du groupe de serveurs.

  2. Lors de l’installation de StoreFront, définissez l’URL de base de l’hôte sur le nœud principal qui sera le nom de domaine complet (FQDN) partagé utilisé par tous les membres du groupe de serveurs. L’URL doit toujours être définie sur https://storefrontlb.domain.com pour les scénarios 1 et 2 et doit correspondre au nom de domaine complet du vServer d’équilibrage de charge de Citrix ADC.

    Consultez la section Créer un certificat de serveur pour l’équilibrage de charge de l’appliance Citrix ADC et les serveurs StoreFront.

  3. Lorsque vous avez terminé la configuration initiale de StoreFront, associez tous les nœuds, l’un après l’autre, avec le groupe de serveurs à l’aide du nœud principal.

  4. Sélectionnez Server Group > Add Server > Copy the Authorization Code pour le serveur à associer.

    image localisée

  5. Propagez la configuration à partir du nœud principal vers tous les autres nœuds du groupe de serveurs.

  6. Testez le groupe de serveurs avec équilibrage de charge à l’aide d’un client qui peut contacter et résoudre le nom de domaine complet partagé de l’équilibrage de charge.

Moniteur de services Citrix

Pour activer la surveillance externe de l’état d’exécution des services Windows sur lesquels StoreFront s’appuie pour un fonctionnement correct, utilisez le service Windows Citrix Service Monitor. Ce service ne dépend d’aucun autre service et peut surveiller et signaler les échecs d’autres services essentiels de StoreFront. Le moniteur permet à d’autres composants Citrix, tels que l’appliance Citrix ADC, de déterminer l’intégrité relative d’un déploiement de serveurs StoreFront en externe. Des logiciels tiers peuvent utiliser la réponse XML du moniteur StoreFront pour contrôler l’intégrité des services essentiels StoreFront.

Lorsque StoreFront est déployé, un moniteur par défaut qui utilise le protocole HTTP et le port 8000 est créé.

Remarque :

Une seule instance de moniteur peut exister dans un déploiement StoreFront.

Pour apporter des modifications au moniteur par défaut existant, telles que le réglage du protocole et du port sur HTTPS 443, utilisez les applets de commande PowerShell pour afficher ou reconfigurer l’URL de service du moniteur StoreFront.

Supprimer le moniteur de services par défaut et le remplacer par un moniteur qui utilise le protocole HTTPS et le port 443

  1. Ouvrez la console PowerShell (ISE) sur le serveur StoreFront principal et exécutez les commandes suivantes pour modifier le moniteur par défaut sur HTTPS 443.

    $ServiceUrl = "https://localhost:443/StorefrontMonitor"
    Set-STFServiceMonitor -ServiceUrl $ServiceUrl
    Get-STFServiceMonitor
    
  2. Une fois terminé, propagez les modifications à tous les autres serveurs du groupe de serveurs StoreFront.

  3. Pour effectuer un test rapide sur le nouveau moniteur, entrez l’adresse URL suivante dans le navigateur sur le serveur StoreFront ou toute autre machine avec accès réseau au serveur StoreFront. Le navigateur doit afficher un résumé XML de l’état de chaque service StoreFront.

    https://<loadbalancingFQDN>:443/StoreFrontMonitor/GetSFServicesStatus

    image localisée

Citrix Gateway et serveurs virtuels d’équilibrage de charge sur la même appliance Citrix ADC

Si vous avez configuré le serveur virtuel Citrix Gateway et le serveur virtuel d’équilibrage de charge sur la même appliance Citrix ADC, les utilisateurs de domaine internes peuvent rencontrer des problèmes lors d’une tentative d’accès direct à l’URL de base de l’hôte avec équilibrage de charge StoreFront au lieu de passer par le serveur virtuel Citrix Gateway.

Dans ce scénario, StoreFront suppose que l’utilisateur a déjà été authentifié sur Citrix Gateway, car StoreFront associe l’adresse IP source de l’utilisateur entrant avec l’adresse IP de sous-réseau (SNIP) de Citrix Gateway. StoreFront essaie alors d’utiliser le protocole AGBasic pour effectuer l’authentification silencieuse sur Citrix Gateway, plutôt que d’inviter l’utilisateur à ouvrir une session à l’aide de ses informations d’identification de domaine. Pour éviter ce problème, ignorez l’adresse SNIP comme illustré ci-dessous ou saisissez une adresse IP virtuelle afin que l’authentification par nom d’utilisateur et mot de passe soit utilisée à la place du protocole de connexion AGBasic.

Configurer une instance Citrix Gateway sur le groupe de serveurs StoreFront

Paramètres généraux de Gateway

Entrez l’adresse IP virtuelle de Citrix Gateway dans le champ VServer IP address. N’utilisez PAS l’adresse SNIP pour Citrix Gateway si le vServer d’équilibrage de charge réside sur la même appliance Citrix ADC.

Paramètres d'authentification de Gateway

Options de bouclage lors de l’équilibrage de charge d’un groupe de serveurs StoreFront à l’aide d’une appliance Citrix ADC

Vous pouvez définir les options de bouclage à l’aide de PowerShell.

Exemple de fichier web.config Receiver pour Web

<communication attempts="2" timeout="00:01:00" loopback="On" loopbackPortUsingHttp="80">

Exemple de commande PowerShell

& "c:\program files\Citrix\receiver storefront\scripts\ImportModules.ps1"
Set-DSLoopback -SiteId 1 -VirtualPath "/Citrix/StoreWeb" -Loopback "OnUsingHttp" -LoopbackPortUsingHttp 81

Le paramètre -Loopback peut prendre trois valeurs possibles.

Valeur Contexte
On : change l’hôte de l’adresse URL sur 127.0.0.1. Le schéma et le port (si spécifiés) ne sont pas modifiés. Ne peut pas être utilisé si l’équilibrage de charge d’arrêt TLS est utilisé.
OnUsingHttp : change l’hôte sur 127.0.0.1 et le schéma sur HTTP et modifie la valeur du port configurée pour l’attribut loopbackPortUsingHttp. À utiliser uniquement avec un équilibrage de charge d’arrêt TLS. Les communications entre l’équilibrage de charge et les serveurs StoreFront utilisent HTTP. Vous pouvez explicitement configurer le port HTTP à l’aide de l’attribut -loopbackPortUsingHttp.
Off : l’adresse URL de la requête n’est en aucun modifiée. Utilisé pour résoudre les problèmes. Les outils tels que Fiddler ne peuvent pas enregistrer le trafic entre Receiver pour Web et StoreFront Services si le bouclage est défini sur On.