Citrix ADC

Comment une appliance Citrix ADC communique avec les clients et les serveurs

Une appliance Citrix ADC est généralement déployée devant une batterie de serveurs et fonctionne comme un proxy TCP transparent entre les clients et les serveurs, sans nécessiter de configuration côté client. Ce mode de fonctionnement de base est appelé technologie Request Switching et est le cœur de la fonctionnalité de Citrix ADC. Le changement de demande permet à une appliance de multiplexer et de décharger les connexions TCP, de maintenir les connexions persistantes et de gérer le trafic au niveau de la demande (couche d’application). Ceci est possible car l’appliance peut séparer la requête HTTP de la connexion TCP sur laquelle la requête est remise.

Selon la configuration, une appliance peut traiter le trafic avant de transférer la demande à un serveur. Par exemple, si le client tente d’accéder à une application sécurisée sur le serveur, l’appliance peut effectuer le traitement SSL nécessaire avant d’envoyer du trafic au serveur.

Pour faciliter un accès efficace et sécurisé aux ressources du serveur, une appliance utilise un ensemble d’adresses IP collectivement appelées adresses IP appartenant à Citrix ADC. Pour gérer votre trafic réseau, vous attribuez des adresses IP appartenant à Citrix ADC à des entités virtuelles qui deviennent les éléments constitutifs de votre configuration. Par exemple, pour configurer l’équilibrage de charge, vous créez des serveurs virtuels pour recevoir les demandes des clients et les distribuer aux services, qui sont des entités représentant les applications sur vos serveurs.

Présentation des adresses IP détenues par Citrix ADC

Pour fonctionner en tant que proxy, une appliance Citrix ADC utilise une variété d’adresses IP. Les principales adresses IP détenues par Citrix ADC sont les suivantes :

  • Adresse IP Citrix ADC (NSIP)

    L’adresse NSIP est l’adresse IP pour la gestion et l’accès général au système à l’appliance elle-même, ainsi que pour la communication entre les appliances dans une configuration haute disponibilité.

  • Adresse IP du serveur virtuel (VIP)

    Une adresse VIP est l’adresse IP associée à un serveur virtuel. Il s’agit de l’adresse IP publique à laquelle les clients se connectent. De nombreux VIP peuvent être configurés pour une appliance qui gère un large éventail de trafic.

  • Adresse IP du sous-réseau (SNIP)

    Une adresse SNIP est utilisée dans la gestion des connexions et la surveillance du serveur. Vous pouvez spécifier plusieurs adresses SNIP pour chaque sous-réseau. Les adresses SNIP peuvent être liées à un VLAN.

  • Jeu d’adresses IP

    Un jeu d’adresses IP est un ensemble d’adresses IP configurées sur l’appliance en tant que SNIP. Un ensemble d’adresses IP est identifié avec un nom significatif qui aide à identifier l’utilisation des adresses IP qu’il contient.

  • Profil net

    Un profil réseau (ou profil réseau) contient une adresse IP ou un jeu d’adresses IP. Un profil réseau peut être lié à l’équilibrage de charge ou au changement de contenu de serveurs virtuels, de services, de groupes de services ou de moniteurs. Lors de la communication avec des serveurs physiques ou des homologues, l’appliance utilise les adresses spécifiées dans le profil comme adresses IP source.

Comment les flux de trafic sont gérés

Étant donné qu’une appliance Citrix ADC fonctionne comme un proxy TCP, elle traduit les adresses IP avant d’envoyer des paquets à un serveur. Lorsque vous configurez un serveur virtuel, les clients se connectent à une adresse VIP sur l’appliance Citrix ADC au lieu de se connecter directement à un serveur. Selon les paramètres du serveur virtuel, l’appliance sélectionne un serveur approprié et envoie la demande du client à ce serveur. Par défaut, l’appliance utilise une adresse SNIP pour établir des connexions avec le serveur, comme illustré dans la figure suivante.

Figure 1. Connexions basées sur le serveur virtuel

image

En l’absence d’un serveur virtuel, lorsqu’une appliance reçoit une demande, elle transmet la demande de manière transparente au serveur. C’est ce qu’on appelle le mode de fonctionnement transparent. Lorsqu’elle fonctionne en mode transparent, une appliance convertit les adresses IP source des demandes de clients entrantes vers l’adresse SNIP mais ne modifie pas l’adresse IP de destination. Pour que ce mode fonctionne, le mode L2 ou L3 doit être configuré de manière appropriée.

Dans les cas où les serveurs ont besoin de l’adresse IP du client réelle, l’appliance peut être configurée pour modifier l’en-tête HTTP en insérant l’adresse IP du client comme champ supplémentaire ou configurée pour utiliser l’adresse IP du client au lieu d’une adresse SNIP pour les connexions aux serveurs.

Blocs de construction de la gestion du trafic

La configuration d’une appliance Citrix ADC est généralement construite avec une série d’entités virtuelles qui servent de blocs de construction pour la gestion du trafic. L’approche par bloc de construction permet de séparer les flux de trafic. Les entités virtuelles sont des abstractions, représentant généralement des adresses IP, des ports et des gestionnaires de protocole pour le traitement du trafic. Les clients accèdent aux applications et aux ressources via ces entités virtuelles. Les entités les plus couramment utilisées sont les serveurs et services virtuels. Les serveurs virtuels représentent des groupes de serveurs dans une batterie de serveurs ou un réseau distant, et les services représentent des applications spécifiques sur chaque serveur.

La plupart des fonctionnalités et des paramètres de trafic sont activés via des entités virtuelles. Par exemple, vous pouvez configurer une appliance pour compresser toutes les réponses du serveur à un client connecté à la batterie de serveurs via un serveur virtuel particulier. Pour configurer l’appliance pour un environnement particulier, vous devez identifier les fonctionnalités appropriées, puis choisir la bonne combinaison d’entités virtuelles pour les distribuer. La plupart des fonctionnalités sont fournies via une cascade d’entités virtuelles qui sont liées les unes aux autres. Dans ce cas, les entités virtuelles sont comme des blocs assemblés dans la structure finale d’une application livrée. Vous pouvez ajouter, supprimer, modifier, lier, activer et désactiver les entités virtuelles pour configurer les entités. La figure suivante illustre les concepts abordés dans cette section.

Figure 2. Fonctionnement des blocs de construction de la gestion du trafic

image

Une configuration simple d’équilibrage de charge

Dans l’exemple illustré dans la figure suivante, l’appliance Citrix ADC est configurée pour fonctionner comme un équilibreur de charge. Pour cette configuration, vous devez configurer des entités virtuelles spécifiques à l’équilibrage de charge et les lier dans un ordre spécifique. En tant qu’équilibreur de charge, une appliance distribue les demandes des clients sur plusieurs serveurs et optimise ainsi l’utilisation des ressources.

Les éléments de base d’une configuration d’équilibrage de charge standard sont les services et les serveurs virtuels d’équilibrage de charge. Les services représentent les applications sur les serveurs. Les serveurs virtuels abstraits les serveurs en fournissant une adresse IP unique à laquelle les clients se connectent. Pour vous assurer que les demandes client sont envoyées à un serveur, vous devez lier chaque service à un serveur virtuel. Autrement dit, vous devez créer des services pour chaque serveur et lier les services à un serveur virtuel. Les clients utilisent l’adresse VIP pour se connecter à une appliance Citrix ADC. Lorsque l’appliance reçoit des demandes client envoyées à l’adresse VIP, elle les envoie à un serveur déterminé par l’algorithme d’équilibrage de charge. L’équilibrage de charge utilise une entité virtuelle appelée moniteur pour déterminer si un service configuré spécifique (serveur et application) est disponible pour recevoir des demandes.

Figure 3. Serveur virtuel, services et moniteurs d’équilibrage de charge

image

Outre la configuration de l’algorithme d’équilibrage de charge, vous pouvez configurer plusieurs paramètres qui affectent le comportement et les performances de la configuration d’équilibrage de charge. Par exemple, vous pouvez configurer le serveur virtuel pour maintenir la persistance en fonction de l’adresse IP source. L’appliance dirige ensuite toutes les demandes provenant d’une adresse IP spécifique vers le même serveur.

Présentation des serveurs virtuels

Un serveur virtuel est une entité Citrix ADC nommée que les clients externes peuvent utiliser pour accéder aux applications hébergées sur les serveurs. Il est représenté par un nom alphanumérique, une adresse IP virtuelle (VIP), un port et un protocole. Le nom du serveur virtuel n’a qu’une signification locale et est conçu pour faciliter l’identification du serveur virtuel. Lorsqu’un client tente d’accéder à des applications sur un serveur, il envoie une demande au VIP au lieu de l’adresse IP du serveur physique. Lorsque l’appliance reçoit une demande à l’adresse VIP, elle met fin à la connexion sur le serveur virtuel et utilise sa propre connexion avec le serveur au nom du client. Les paramètres de port et de protocole du serveur virtuel déterminent les applications que le serveur virtuel représente. Par exemple, un serveur Web peut être représenté par un serveur virtuel et un service dont le port et le protocole sont respectivement définis sur 80 et HTTP. Plusieurs serveurs virtuels peuvent utiliser la même adresse VIP mais différents protocoles et ports.

Les serveurs virtuels sont des points pour fournir des fonctionnalités. La plupart des fonctionnalités, telles que la compression, la mise en cache et le déchargement SSL, sont normalement activées sur un serveur virtuel. Lorsque l’appliance reçoit une demande à une adresse VIP, elle choisit le serveur virtuel approprié par le port sur lequel la demande a été reçue et son protocole. L’appliance traite ensuite la demande en fonction des fonctionnalités configurées sur le serveur virtuel.

Dans la plupart des cas, les serveurs virtuels fonctionnent en tandem avec les services. Vous pouvez lier plusieurs services à un serveur virtuel. Ces services représentent les applications exécutées sur des serveurs physiques dans une batterie de serveurs. Une fois que l’appliance traite les demandes reçues à une adresse VIP, elle les transmet aux serveurs conformément à l’algorithme d’équilibrage de charge configuré sur le serveur virtuel. La figure suivante illustre ces concepts.

Figure 4. Plusieurs serveurs virtuels avec une seule adresse VIP

image

La figure précédente montre une configuration composée de deux serveurs virtuels avec une adresse VIP commune mais des ports et protocoles différents. Chacun des serveurs virtuels a deux services qui lui sont liés. Les services s1 et s2 sont liés à VS_HTTP et représentent les applications HTTP sur les serveurs 1 et 2. Les services s3 et s4 sont liés à VS_SSL et représentent les applications SSL sur les serveurs 2 et 3 (le serveur 2 fournit à la fois des applications HTTP et SSL). Lorsque l’appliance reçoit une demande HTTP à l’adresse VIP, elle traite la demande comme spécifié par les paramètres de VS_HTTP et l’envoie au serveur 1 ou au serveur 2. De même, lorsque l’appliance reçoit une demande HTTPS à l’adresse VIP, elle la traite comme spécifié par les paramètres de VS_SSL et elle l’envoie au serveur 2 ou au serveur 3.

Les serveurs virtuels ne sont pas toujours représentés par des adresses IP, des numéros de port ou des protocoles spécifiques. Ils peuvent être représentés par des caractères génériques, auquel cas ils sont appelés serveurs virtuels génériques. Par exemple, lorsque vous configurez un serveur virtuel avec un caractère générique au lieu d’un VIP, mais avec un numéro de port spécifique, l’appliance intercepte et traite tout le trafic conforme à ce protocole et destiné au port prédéfini. Pour les serveurs virtuels comportant des caractères génériques au lieu de VIP et de numéros de port, l’appliance intercepte et traite tout le trafic conforme au protocole.

Les serveurs virtuels peuvent être regroupés dans les catégories suivantes :

  • Serveur virtuel d’équilibrage de charge

    Reçoit et redirige les demandes vers un serveur approprié. Le choix du serveur approprié est basé sur la méthode d’équilibrage de charge que l’utilisateur configure.

  • Serveur virtuel de redirection de cache

    Redirige les demandes client de contenu dynamique vers les serveurs d’origine et les demandes de contenu statique vers les serveurs de cache. Les serveurs virtuels de redirection de cache fonctionnent souvent en conjonction avec les serveurs virtuels d’équilibrage de charge.

  • Serveur virtuel de commutation de contenu

    Dirige le trafic vers un serveur sur la base du contenu demandé par le client. Par exemple, vous pouvez créer un serveur virtuel de commutation de contenu qui dirige toutes les demandes d’images client vers un serveur qui ne sert que les images. Les serveurs virtuels de commutation de contenu fonctionnent souvent en conjonction avec des serveurs virtuels d’équilibrage de charge.

  • Serveur virtuel de réseau privé virtuel (VPN)

    Décrypte le trafic qui transite via un tunnel et l’envoie aux applications intranet.

  • Serveur virtuel SSL

    Reçoit et déchiffre le trafic SSL, puis redirige vers un serveur approprié. Choisir le serveur approprié est similaire à choisir un serveur virtuel d’équilibrage de charge.

Présentation des services

Les services représentent des applications sur un serveur. Bien que les services soient normalement combinés avec des serveurs virtuels, en l’absence d’un serveur virtuel, un service peut toujours gérer le trafic spécifique à l’application. Par exemple, vous pouvez créer un service HTTP sur une appliance Citrix ADC pour représenter une application de serveur Web. Lorsque le client tente d’accéder à un site Web hébergé sur le serveur Web, l’appliance intercepte les requêtes HTTP et crée une connexion transparente avec le serveur Web.

En mode service uniquement, une appliance fonctionne en tant que proxy. Il met fin aux connexions client, utilise une adresse SNIP pour établir une connexion au serveur et traduit les adresses IP source des requêtes client entrantes en une adresse SNIP. Bien que les clients envoient des demandes directement à l’adresse IP du serveur, le serveur les voit comme provenant de l’adresse SNIP. L’appliance traduit les adresses IP, les numéros de port et les numéros de séquence.

Un service est également un point d’application d’entités. Prenons l’exemple de l’accélération SSL. Pour utiliser cette fonctionnalité, vous devez créer un service SSL et lier un certificat SSL au service. Lorsque l’appliance reçoit une demande HTTPS, elle déchiffre le trafic et l’envoie, en texte clair, au serveur. Seul un ensemble limité de fonctionnalités peut être configuré dans le cas du service uniquement.

Les services utilisent des entités appelées moniteurs pour suivre l’état des applications. Chaque service a un moniteur par défaut, qui est basé sur le type de service, qui lui est lié. Comme spécifié par les paramètres configurés sur le moniteur, l’appliance envoie des sondes à l’application à intervalles réguliers afin de déterminer son état. Si les sondes échouent, l’appliance marque le service comme étant hors service. Dans de tels cas, l’appliance répond aux demandes des clients avec un message d’erreur approprié ou réachemine la demande selon les stratégies d’équilibrage de charge configurées.

Comment une appliance Citrix ADC communique avec les clients et les serveurs