Citrix ADC

Fonctionnement de l’équilibrage de charge

Dans une configuration d’équilibrage de charge de base, les clients envoient leurs demandes à l’adresse IP d’un serveur virtuel configuré sur l’appliance Citrix ADC. Le serveur virtuel les distribue aux serveurs d’applications à équilibrage de charge selon un modèle prédéfini, appelé algorithme d’équilibrage de charge. Dans certains cas, vous pouvez affecter au serveur virtuel d’équilibrage de charge une adresse générique au lieu d’une adresse IP spécifique. Pour obtenir des instructions sur la spécification d’un port HTTP global sur l’appliance, consultez Ports HTTP globaux.

Principes de base de l’équilibrage de charge

Une configuration d’équilibrage de charge inclut un serveur virtuel d’équilibrage de charge et plusieurs serveurs d’applications équilibrés de charge. Le serveur virtuel reçoit les demandes client entrantes, utilise l’algorithme d’équilibrage de charge pour sélectionner un serveur d’applications et transmet les demandes au serveur d’applications sélectionné. Le dessin conceptuel suivant illustre un déploiement typique d’équilibrage de charge. Une autre variante implique l’attribution d’un port HTTP global.

Figure 1. Architecture d’équilibrage de charge

architecture lb-

Le serveur virtuel d’équilibrage de charge peut utiliser un certain nombre d’algorithmes (ou de méthodes) pour déterminer comment répartir la charge entre les serveurs équilibrés de charge qu’il gère. La méthode d’équilibrage de charge par défaut est la méthode de connexion la moins élevée, dans laquelle l’appliance Citrix ADC transfère chaque connexion client entrante vers le serveur d’applications à équilibrage de charge qui possède actuellement le moins de connexions utilisateur actives.

Les entités que vous configurez dans une configuration typique d’équilibrage de charge Citrix ADC sont les suivantes :

  • Serveur virtuel d’équilibrage de charge. Combinaison d’adresse IP, de port et de protocole à laquelle un client envoie des demandes de connexion pour un site Web ou une application à charge équilibrée particulière. Si l’application est accessible à partir d’Internet, l’adresse IP du serveur virtuel (VIP) est une adresse IP publique. Si l’application est accessible uniquement à partir du réseau local (LAN) ou du réseau étendu (WAN), le VIP est généralement une adresse IP privée (ICANN non routable).
  • Service. Combinaison d’adresse IP, de port et de protocole utilisée pour acheminer les demandes vers un serveur d’applications à équilibrage de charge spécifique. Un service peut être une représentation logique du serveur d’applications lui-même ou d’une application exécutée sur un serveur qui héberge plusieurs applications. Après avoir créé un service, vous le liez à un serveur virtuel d’équilibrage de charge.
  • Objet serveur. Entité virtuelle qui vous permet d’attribuer un nom à un serveur physique au lieu d’identifier le serveur par son adresse IP. Si vous créez un objet serveur, vous pouvez spécifier son nom au lieu de l’adresse IP du serveur lorsque vous créez un service. Sinon, vous devez spécifier l’adresse IP du serveur lorsque vous créez un service, et l’adresse IP devient le nom du serveur.
  • Moniteur. Entité sur l’appliance Citrix ADC qui suit un service et assure son fonctionnement correct. Le moniteur sonde périodiquement (ou effectue une vérification de l’état) chaque service auquel vous l’affectez. Si le service ne répond pas dans le délai spécifié par le délai d’expiration et qu’un nombre spécifié de vérifications d’intégrité échoue, ce service est marqué comme DOWN. L’appliance Citrix ADC ignore ensuite ce service lors de l’équilibrage de charge, jusqu’à ce que les problèmes qui ont provoqué la cessation de la réponse du service soient résolus.

Le serveur virtuel, les services et les serveurs d’applications équilibrés de charge dans une configuration d’équilibrage de charge peuvent utiliser des adresses IP IPv4 (Internet Protocol version 4) ou IPv6 (Internet Protocol version 6). Vous pouvez mélanger les adresses IPv4 et IPv6 dans une seule configuration d’équilibrage de charge.

Pour connaître les variations de la configuration d’équilibrage de charge, consultez les cas d’utilisation suivants :

Présentation de la topologie

Dans une configuration d’équilibrage de charge, le serveur d’équilibrage de charge se trouve logiquement entre le client et la batterie de serveurs et gère le flux de trafic vers les serveurs de la batterie de serveurs. Sur l’appliance Citrix ADC, les serveurs d’applications sont représentés par des entités virtuelles appelées services. Le diagramme suivant illustre la topologie d’une configuration d’équilibrage de charge de base.

Figure 2. Topologie d’équilibrage de charge de base

image localisée

Dans le diagramme, l’équilibrage de charge est utilisé pour gérer le flux de trafic vers les serveurs. Le serveur virtuel sélectionne le service et l’affecte pour répondre aux demandes du client. Considérons un scénario dans lequel les services service-HTTP-1 et service-HTTP-2 sont créés et liés au serveur virtuel nommé vServer-lb-1. VServer-lb-1 transfère la requête client à Service-HTTP-1 ou Service-HTTP-2. L’appliance Citrix ADC utilise la méthode d’équilibrage de charge de connexion la moins élevée pour sélectionner le service pour chaque demande. Le tableau suivant répertorie les noms et les valeurs des entités de base qui doivent être configurées sur l’appliance.

Entité Name Adresse IP Port Protocole
Serveur virtuel Vserver-LB-1 10.102.29.60 80 HTTP
Services Service-HTTP-1 10.102.29.5 80 HTTP
  Service-HTTP-2 10.102.29.6 80 HTTP
Moniteurs Défaut Aucun Aucun Aucun

Le diagramme suivant présente les valeurs d’échantillon d’équilibrage de charge et les paramètres obligatoires décrits dans le tableau précédent.

Figure 3. Modèle d’entité d’équilibrage de charge

lb-entité-modèle

Utilisation de caractères génériques au lieu d’adresses IP et de ports

Dans certains cas, vous devrez peut-être utiliser un caractère générique pour l’adresse IP ou le port d’un serveur virtuel ou pour le port d’un service. Les cas suivants peuvent nécessiter l’utilisation d’un caractère générique :

  • Si l’appliance Citrix ADC est configurée comme un passage transparent, qui doit accepter tout le trafic qui lui est envoyé, quel que soit l’adresse IP ou le port vers lequel il est envoyé.
  • Si un ou plusieurs services écoutent sur des ports qui ne sont pas bien connus.
  • Si un ou plusieurs services, au fil du temps, changent les ports qu’ils écoutent.
  • Si vous atteignez la limite pour le nombre d’adresses IP et de ports que vous pouvez configurer sur une seule appliance Citrix ADC.
  • Si vous souhaitez créer des serveurs virtuels qui écoutent tout le trafic sur un réseau local virtuel spécifique.

Lorsqu’un serveur virtuel ou un service configuré par carte générique reçoit du trafic, l’appliance Citrix ADC détermine l’adresse IP ou le port réel et crée de nouveaux enregistrements pour le service et le serveur d’applications à équilibrage de charge associé. Ces enregistrements créés dynamiquement sont appelés enregistrements de serveur et de service appris dynamiquement.

Par exemple, une configuration d’équilibrage de charge de pare-feu peut utiliser des caractères génériques pour l’adresse IP et le port. Si vous liez un service TCP générique à ce type de serveur virtuel d’équilibrage de charge, le serveur virtuel reçoit et traite tout le trafic TCP qui ne correspond à aucun autre service ou serveur virtuel.

Le tableau suivant décrit certains des différents types de configurations génériques et le moment où chacune doit être utilisée.

Adresse IP Port Protocole Description
* * TCP Serveur virtuel générique général qui accepte le trafic envoyé à n’importe quelle adresse IP et port de l’appliance Citrix ADC. Lors de l’utilisation d’un serveur virtuel avec caractères génériques, l’appliance apprend dynamiquement l’adresse IP et le port de chaque service et crée les enregistrements nécessaires au fur et à mesure qu’elle traite le trafic.
* * TCP Serveur virtuel d’équilibrage de charge de pare-feu. Vous pouvez lier des services de pare-feu à ce serveur virtuel et l’appliance Citrix ADC transmet le trafic via le pare-feu à la destination.
Adresse IP * TCP, UDP et ANY Serveur virtuel qui accepte tout le trafic envoyé à l’adresse IP spécifiée, quel que soit le port. Vous devez lier explicitement à ce type de serveur virtuel les services vers lesquels il redirigera le trafic. Il ne les apprendra pas dynamiquement.
      Remarque : vous ne configurez pas de services ou de serveurs virtuels pour un port HTTP global. Dans ce cas, vous configurez un port spécifique en tant que port HTTP global (par exemple, définissez ns param -HttpPort 80). L’appliance accepte ensuite tout le trafic correspondant au numéro de port et le traite en tant que trafic HTTP. L’appliance apprend et crée dynamiquement des services pour ce trafic.
* port SSL, SSL_TCP Serveur virtuel qui accepte tout le trafic envoyé à n’importe quelle adresse IP sur un port spécifique. Utilisé pour le déchargement SSL transparent global. Tout le traitement SSL, HTTP et TCP qui est généralement effectué pour un service du même type de protocole est appliqué au trafic qui est dirigé vers ce port spécifique. L’appliance utilise le port pour connaître dynamiquement l’adresse IP du service qu’elle doit utiliser. Si —cleartext n’est pas spécifié, l’appliance Citrix ADC utilise SSL de bout en bout.
* port Sans objet Tous les autres serveurs virtuels pouvant accepter le trafic vers le port. Vous ne liez pas de services à ces serveurs virtuels ; l’appliance Citrix ADC les apprend dynamiquement.

Remarque : Si vous avez configuré votre appliance Citrix ADC comme un passage transparent qui utilise des ports globaux (caractères génériques), vous pouvez activer le mode Edge. Pour plus d’informations, consultez “Configuration du mode Edge.”

L’appliance Citrix ADC tente de localiser des serveurs et des services virtuels en essayant d’abord une correspondance exacte. Si aucun n’est trouvé, il continue à rechercher une correspondance basée sur des caractères génériques, dans l’ordre suivant :

  1. Adresse IP spécifique et numéro de port spécifique
  2. Adresse IP spécifique et port * (caractère générique)
    • (caractère générique) adresse IP et un port spécifique
    • (caractère générique) adresse IP et un port * (caractère générique)

Si l’appliance ne parvient pas à sélectionner un serveur virtuel par adresse IP ou numéro de port, elle recherche un serveur virtuel sur la base du protocole utilisé dans la demande, dans l’ordre suivant :

  1. HTTP
  2. TCP
  3. ANY

Configuration des ports HTTP globaux

Vous ne configurez pas de services ou de serveurs virtuels pour un port HTTP global. Au lieu de cela, vous configurez un port spécifique à l’aide de la commande set ns param. Après avoir configuré ce port, l’appliance Citrix ADC accepte tout le trafic correspondant au numéro de port et le traite en tant que trafic HTTP, apprenant dynamiquement et créant des services pour ce trafic.

Vous pouvez configurer plusieurs numéros de port en tant que port HTTP global. Si vous spécifiez plusieurs numéros de port dans une seule commande ns param, séparez les numéros de port par un seul espace blanc. Si un ou plusieurs ports ont déjà été spécifiés en tant que ports HTTP globaux et que vous souhaitez ajouter un ou plusieurs ports sans supprimer les ports actuellement configurés, vous devez spécifier tous les numéros de port, actuels et nouveaux, dans la commande. Avant d’ajouter des numéros de port, utilisez la commande show ns param pour afficher les ports actuellement configurés.

Pour configurer un port HTTP global à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes pour configurer un port HTTP global et vérifier la configuration :

set ns param –httpPort <port>

show ns param

Exemple 1 : Configuration d’un port en tant que port HTTP global

Dans cet exemple, le port 80 est configuré en tant que port HTTP global.

set ns param -httpPort 80
Done
show ns param
         Global configuration settings:
                          HTTP port(s): 80
                       Max connections: 0
           Max requests per connection: 0
                   Client IP insertion: DISABLED
                        Cookie version: 0
        Persistence Cookie Secure Flag: ENABLED
        ...
        ...

Exemple 2 : Ajout de ports lorsqu’un ou plusieurs ports HTTP globaux sont déjà configurés**

Dans cet exemple, le port 8888 est ajouté à la liste globale des ports HTTP. Le port 80 est déjà configuré en tant que port HTTP global.

> show ns param
        Global configuration settings:
                          HTTP port(s): 80
                       Max connections: 0
           Max requests per connection: 0
                   Client IP insertion: DISABLED
                        Cookie version: 0
        Persistence Cookie Secure Flag: ENABLED
                          Min Path MTU: 576
        ...
        ...
 Done
> set ns param -httpPort 80 8888
 Done
>  show ns param

        Global configuration settings:
                          HTTP port(s): 80,8888
                       Max connections: 0
           Max requests per connection: 0
                   Client IP insertion: DISABLED
                        Cookie version: 0
        Persistence Cookie Secure Flag: ENABLED
                          Min Path MTU: 576

        ...
        ...
 Done
>

Pour configurer un port HTTP global à l’aide de l’utilitaire de configuration

  1. Accédez à Système > Paramètres > Modifier les paramètres HTTP, puis ajoutez un numéro de port HTTP.

Fonctionnement de l’équilibrage de charge