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 NetScaler. 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 moindre connexion, dans laquelle l’appliance NetScaler transmet chaque connexion client entrante au 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 NetScaler classique 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 NetScaler qui assure le suivi d’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 spécifié par le délai d’expiration et qu’un certain nombre de contrôles de santé échouent, ce service est marqué comme étant inactif. L’appliance NetScaler ignore ensuite ce service lors de l’équilibrage de charge, jusqu’à ce que les problèmes à l’origine de l’arrêt de réponse 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 NetScaler, 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 NetScaler utilise la méthode d’équilibrage de charge de moindre connexion 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 NetScaler est configurée en tant que passerelle transparente, elle 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 NetScaler.
  • 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 NetScaler détermine l’adresse IP ou le port réel et crée des 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 à 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.

IP Port Protocole Description
* * TCP Un serveur virtuel générique qui accepte le trafic envoyé vers n’importe quelle adresse IP et n’importe quel port de l’appliance NetScaler. 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 NetScaler fait passer le trafic à travers le pare-feu jusqu’à 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 NetScaler utilise le protocole 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 NetScaler les apprend de manière dynamique.

Remarque : Si vous avez configuré votre appliance NetScaler en tant que passerelle transparente utilisant des ports globaux (caractères génériques), vous pouvez activer le mode Edge. Pour plus d’informations, reportez-vous à lasection « Configuration du mode Edge ». «

L’appliance NetScaler tente de localiser des serveurs et des services virtuels en tentant d’abord de trouver 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 NetScaler accepte tout le trafic correspondant au numéro de port et le traite comme du trafic HTTP, en apprenant de manière dynamique et en 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 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