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. Il peut arriver que vous souhaitiez attribuer 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.

Les bases de l’équilibrage de charge

Une configuration d’équilibrage de charge comprend un serveur virtuel d’équilibrage de charge et plusieurs serveurs d’applications d’équilibrage de charge. Le serveur virtuel reçoit les demandes des clients entrants, 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 d’équilibrage de charge typique. Une autre variante consiste à attribuer un port HTTP global.

Figure 1. Architecture d’équilibrage de charge

Architecture d'équilibrage de charge

Le serveur virtuel d’équilibrage de charge peut utiliser plusieurs algorithmes (ou méthodes) pour déterminer comment répartir la charge entre les serveurs à charge équilibrée 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 d’équilibrage de charge Citrix ADC typique sont les suivantes :

  • Serveur virtuel d’équilibrage de charge. La 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 en particulier. 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 ou du WAN, le VIP est généralement une adresse IP privée (non routable de l’ICANN).
  • Service. La combinaison d’adresse IP, de port et de protocole utilisée pour acheminer les demandes vers un serveur d’applications à charge équilibrée 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 hébergeant 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 de l’identifier 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é de l’appliance Citrix ADC qui suit un service et s’assure qu’il fonctionne correctement. Le moniteur sonde régulièrement (ou effectue un bilan de santé) de chaque service auquel vous l’attribuez. Si le service ne répond pas dans le délai imparti et qu’un certain nombre de contrôles de santé échouent, ce service est marqué comme étant inactif. L’appliance Citrix ADC ignore ensuite ce service lors de l’équilibrage de charge, jusqu’à ce que les problèmes à l’origine de l’arrêt du service soient résolus.

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

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

Comprendre la topologie

Dans une configuration d’équilibrage de charge, le serveur d’équilibrage de charge est logiquement situé 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 schéma suivant montre la topologie d’une configuration d’équilibrage de charge de base.

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

Topologie d'équilibrage de charge

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’attribue pour répondre aux demandes des clients. Imaginons 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 transmet la demande du client à Service-HTTP-1 ou Service-HTTP-2. L’appliance Citrix ADC utilise la méthode d’équilibrage de charge de connexion minimale 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é Nom 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
Moniteurs Valeur par défaut Aucun Aucun Aucun

Le diagramme suivant montre 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

Modèle d'entité d'équilibrage de charge

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

Il peut arriver que vous deviez 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 peu connus.
  • Si un ou plusieurs services modifient au fil du temps les ports sur lesquels ils écoutent.
  • Si vous atteignez la limite du 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 ou un service virtuel configuré par caractères génériques reçoit du trafic, l’appliance Citrix ADC détermine l’adresse IP ou le port réel et crée des enregistrements pour le service et le serveur d’applications à charge équilibrée 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 à la fois pour l’adresse IP et pour 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 générique, l’appliance apprend dynamiquement l’adresse IP et le port de chaque service et crée les enregistrements nécessaires au cours du traitement du trafic.
* * TCP Un 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 fait passer le trafic via le pare-feu vers 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 apprend pas dynamiquement.
* port SSL, SSL_TCP Serveur virtuel qui accepte tout le trafic envoyé vers 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 Non applicable 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 utilisant des ports globaux (génériques), vous pouvez activer le mode Edge. Pour plus d’informations, reportez-vous à la section « 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 aucune correspondance n’est trouvée, il continue à rechercher une correspondance à l’aide de caractères génériques, dans l’ordre suivant :

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

Si l’appliance ne peut pas sélectionner un serveur virtuel par adresse IP ou numéro de port, elle recherche un serveur virtuel basé sur le 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 comme du trafic HTTP, apprenant et créant de manière dynamique 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 set 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 comme 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
<!--NeedCopy-->

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
        ...
        ...
<!--NeedCopy-->

Exemple 2 : Ajouter des 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
>
<!--NeedCopy-->

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