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 un parc 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 de commutation de demandes et constitue le cœur des fonctionnalités de Citrix ADC. La commutation de demandes permet à une appliance de multiplexer et de décharger les connexions TCP, de maintenir des connexions persistantes et de gérer le trafic au niveau de la demande (couche application). Cela est possible car l’appliance peut séparer la demande HTTP de la connexion TCP sur laquelle la demande est envoyée.

Selon la configuration, une appliance peut traiter le trafic avant de transmettre 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 le trafic vers le 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 de base 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 présentes sur vos serveurs.

Comprendre les adresses IP appartenant à Citrix ADC

Pour fonctionner en tant que proxy, une appliance Citrix ADC utilise diverses adresses IP. Les principales adresses IP appartenant à Citrix ADC sont les suivantes :

  • Adresse IP Citrix ADC (NSIP)

    L’adresse NSIP est l’adresse IP utilisée 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 (VIP) du serveur virtuel

    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. Une appliance gérant un large éventail de trafic peut avoir de nombreux VIP configurés.

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

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

  • Ensemble d’adresses IP

    Un ensemble 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 ensemble d’adresses IP. Un profil réseau peut être lié à des serveurs virtuels, à des services, à des groupes de services ou à des moniteurs d’équilibrage de charge ou de commutation de contenu. 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

Comme 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 un serveur virtuel

image

En l’absence de serveur virtuel, lorsqu’une appliance reçoit une demande, elle la transmet 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 traduit les adresses IP source des demandes clientes entrantes en 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 réelle du client, l’appliance peut être configurée pour modifier l’en-tête HTTP en insérant l’adresse IP du client sous forme de champ supplémentaire, ou configurée pour utiliser l’adresse IP du client au lieu d’une adresse SNIP pour les connexions aux serveurs.

Éléments constitutifs de la gestion du trafic

La configuration d’une appliance Citrix ADC est généralement constituée d’une série d’entités virtuelles qui servent de base à la gestion du trafic. L’approche modulaire permet de séparer les flux de trafic. Les entités virtuelles sont des abstractions qui représentent généralement des adresses IP, des ports et des gestionnaires de protocoles pour le traitement du trafic. Les clients accèdent aux applications et aux ressources par le biais de ces entités virtuelles. Les entités les plus couramment utilisées sont les serveurs et les services virtuels. Les serveurs virtuels représentent des groupes de serveurs au sein d’une batterie de serveurs ou d’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 un dispositif 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 fournir. La plupart des fonctionnalités sont fournies par le biais d’une cascade d’entités virtuelles 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 fonctionnalités. La figure suivante montre les concepts abordés dans cette section.

Figure 2. Comment fonctionnent les éléments constitutifs de la gestion du trafic

image

Une configuration d’équilibrage de charge simple

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 classique sont les services et les serveurs virtuels d’équilibrage de charge. Les services représentent les applications présentes sur les serveurs. Les serveurs virtuels font abstraction des serveurs en fournissant une adresse IP unique à laquelle les clients se connectent. Pour garantir que les demandes des clients sont envoyées à un serveur, vous devez lier chaque service à un serveur virtuel. En d’autres termes, vous devez créer des services pour chaque serveur et les lier à un serveur virtuel. Les clients utilisent l’adresse VIP pour se connecter à une appliance Citrix ADC. Lorsque l’appliance reçoit des demandes clients 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 vérifier si un service configuré spécifique (serveur plus application) est disponible pour recevoir des demandes.

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

image

Outre la configuration de l’algorithme d’équilibrage de charge, vous pouvez configurer plusieurs paramètres qui influent sur 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.

Comprendre les 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 au serveur virtuel et utilise sa propre connexion avec le serveur pour le compte 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 définis respectivement sur 80 et HTTP. Plusieurs serveurs virtuels peuvent utiliser la même adresse VIP mais des protocoles et des ports différents.

Les serveurs virtuels sont des points de fourniture de 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é en fonction du port sur lequel la demande a été reçue et de 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 qui s’exécutent sur les serveurs physiques d’une batterie de serveurs. Une fois que l’appliance a traité 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 des protocoles différents. Deux services sont liés à chacun des serveurs virtuels. 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 requête HTTP à l’adresse VIP, elle traite la demande conformément aux 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 conformément aux paramètres de VS_SSL et 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 utilisant des caractères génériques plutôt que des adresses VIP et des numéros de port, l’appliance intercepte et traite tout le trafic conformément 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é dépend de la méthode d’équilibrage de charge configurée par l’utilisateur.

  • Serveur virtuel de redirection de cache

    Redirige les demandes de contenu dynamique des clients 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 conjointement avec des serveurs virtuels d’équilibrage de charge.

  • Serveur virtuel de commutation de contenu

    Dirige le trafic vers un serveur en fonction 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 des clients vers un serveur qui diffuse uniquement des images. Les serveurs virtuels de commutation de contenu fonctionnent souvent conjointement avec des serveurs virtuels d’équilibrage de charge.

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

    Déchiffre le trafic tunnelisé et l’envoie aux applications intranet.

  • Serveur virtuel SSL

    Reçoit et déchiffre le trafic SSL, puis le redirige vers un serveur approprié. Le choix du serveur approprié est similaire au choix d’un serveur virtuel d’équilibrage de charge.

Comprendre les services

Les services représentent des applications sur un serveur. Bien que les services soient normalement associés à 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 comme un proxy. Il met fin aux connexions client, utilise une adresse SNIP pour établir une connexion au serveur et traduit les adresses IP source des demandes clientes entrantes en une adresse SNIP. Bien que les clients envoient des requêtes directement à l’adresse IP du serveur, celui-ci les considère 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 de fonctionnalité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 d’un service uniquement.

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

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