Équilibrage de charge avec l’appliance Citrix ADC

Cet article contient les informations nécessaires à l’utilisation d’une appliance Citrix ADC pour équilibrer la charge de deux serveurs StoreFront ou plus.

Configurer un groupe de serveurs StoreFront et l’équilibrage de charge d’une appliance Citrix ADC

Planifier votre déploiement StoreFront avec équilibrage de charge

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.

Pour un exemple de configuration d’équilibrage de charge, consultez la section « Scénario 1 ».

Testé avec l’environnement suivant

  • Quatre nœuds StoreFront 3.0 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 : une connexion sécurisée HTTPS 443 de bout en bout entre le client et l’équilibrage de charge de l’appliance Citrix ADC et également entre l’équilibrage de charge et deux ou plusieurs serveurs StoreFront 3.0

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 de NetScaler.
  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 SSL entre votre vServer d’équilibrage de charge et StoreFront ; sinon, laissez cette option désactivée.
  5. Spécifiez le nom du magasin sous l’onglet Special Parameters.
  6. Cochez la case Check Backend Services sous l’onglet Special Parameters. 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 SSL et accordez à chaque nœud un ID de serveur unique lors de leur ajout.

image localisée

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

image localisée

  1. Sur l’onglet Certificates, liez le certificat SSL que vous avez importé préalablement.

  2. Liez le certificat CA utilisé pour signer le certificat de serveur que vous avez importé préalablement 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

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

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

  3. 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.

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

  5. Définissez la persistance de sauvegarde sur None.

image localisée

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

Configurer le groupe de serveurs StoreFront pour l’équilibrage de charge

  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. Installez StoreFront sur chaque nœud du groupe de serveurs.

  4. 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. 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).

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

  5. 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.

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

image localisée

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

  2. 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 trois 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 le nom d’utilisateur et le mot de passe d’authentification soient utilisés à la place d’AGBasic.

Configurer une instance Citrix Gateway sur le groupe de serveurs StoreFront

image localisée

Options de bouclage lors de l’équilibrage de charge d’un groupe de serveurs StoreFront à l’aide de NetScaler

Dans les versions précédentes de StoreFront telles que 2.6 ou les versions plus anciennes, Citrix recommandait aux utilisateurs de modifier manuellement le fichier d’hôtes sur chaque serveur StoreFront pour mapper le nom de domaine complet (FQDN) de l’équilibrage de charge sur l’adresse de bouclage ou l’adresse IP du serveur StoreFront spécifique. Cela garantit que Receiver pour Web communique toujours avec les services StoreFront sur le même serveur dans un déploiement dont la charge est équilibrée. Ceci est nécessaire car une session HTTP est créée durant le processus de connexion explicite entre Receiver pour Web et le service d’authentification, et Receiver pour Web communique avec StoreFront Services à l’aide du nom de domaine complet (FQDN) de base. Si le nom de domaine complet (FQDN) de base parvenait à résoudre l’équilibrage de charge, l’équilibrage de charge pouvait potentiellement envoyer le trafic vers un autre serveur StoreFront dans le groupe, ce qui entraînait l’échec de l’authentification. L’équilibrage de charge n’est pas contourné, sauf lorsque Receiver pour Web tente de contacter le service de magasin qui réside sur le même serveur que lui-même.

Vous pouvez définir les options de bouclage à l’aide de PowerShell. L’activation du bouclage élimine le besoin de créer des entrées dans le fichier hôte sur chaque serveur StoreFront dans le groupe de serveurs.

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 SSL 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 SSL. 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.