ADC

Configuration de l’équilibrage de charge de diamètre

Le protocole Diameter est un protocole de signalisation AAA (Authentication, Authorization, and Accounting) de nouvelle génération utilisé principalement sur les appareils mobiles tels que les ordinateurs portables et les téléphones portables. Il s’agit d’un protocole peer-to-peer, par opposition au modèle client-serveur traditionnel utilisé par la plupart des autres protocoles. Toutefois, dans la plupart des déploiements de Diameter, les clients sont à l’origine de la demande et le serveur y répond.

Lorsque des messages Diameter sont échangés, le serveur Diameter effectue généralement beaucoup plus de traitement que le client Diameter. Avec l’augmentation du volume de signalisation du plan de contrôle, le serveur Diameter devient un goulot d’étranglement. Par conséquent, la charge des messages Diameter doit être répartie entre plusieurs serveurs. Un serveur virtuel effectuant un équilibrage de charge des messages Diameter offre les avantages suivants :

  • Allègement de la charge sur les serveurs Diameter, ce qui se traduit par un temps de réponse plus rapide pour les utilisateurs finaux.
  • Surveillance de l’état du serveur et meilleures fonctionnalités de basculement.
  • Meilleure évolutivité en termes d’ajout de serveurs sans modification de la configuration du client.
  • Haute disponibilité.
  • Déchargement au Diameter SSL.

La figure suivante montre un système Diameter dans un déploiement Citrix ADC :

diameter-system

Un système Diameter comprend les composants suivants :

  • Client Diameter. Prend en charge les applications clientes Diameter en plus du protocole de base. Les clients Diameter sont souvent implémentés dans des appareils situés à la périphérie d’un réseau et fournissent des services de contrôle d’accès pour ce réseau. Des exemples typiques de clients Diameter sont un serveur d’accès réseau (NAS) et l’agent étranger (FA) Mobile IP.
  • Agent Diameter. Fournit des services de relais, de proxy, de redirection ou de traduction. L’appliance Citrix ADC (configurée avec un serveur virtuel d’équilibrage de charge Diameter) joue le rôle d’un agent Diameter.
  • Serveur Diameter. Gère les demandes d’authentification, d’autorisation et de comptabilité pour un domaine particulier. Un serveur Diameter doit prendre en charge les applications du serveur Diameter en plus du protocole de base.

Dans une topologie Diameter classique, lorsqu’un appareil utilisateur final (tel qu’un téléphone portable) a besoin d’un service, il envoie une demande à un client Diameter. Chaque client Diameter établit une connexion unique (connexion TCP, le protocole SCTP n’est pas encore pris en charge) avec un serveur Diameter tel que spécifié par le protocole de base Diameter RFC 6733. La connexion est de longue durée et tous les messages entre les deux nœuds Diameter (client et serveur) sont échangés via cette connexion. Le Citrix ADC utilise un équilibrage de charge basé sur les messages.

Exemple :

Un fournisseur de services mobiles utilise Diameter pour son système de facturation. Lorsqu’un abonné utilise un numéro prépayé, le client Diameter envoie à plusieurs reprises des demandes au serveur pour vérifier le solde disponible. Le protocole Diameter établit une connexion entre le client et le serveur, et toutes les demandes sont échangées via cette connexion. L’équilibrage de charge basé sur les connexions serait inutile, car il n’existe qu’une seule connexion. Toutefois, compte tenu du grand nombre de messages sur la connexion, l’équilibrage de charge basé sur les messages accélère le processus de facturation de l’abonné mobile prépayé.

Comment fonctionne l’équilibrage de la charge en diamètre

Un client Diameter ouvre une connexion à l’appliance NetScaler et envoie un message Diameter Capability Exchange Request (CER). Le NetScaler sélectionne un serveur Diameter, ouvre une connexion avec le serveur et transmet le message CER au serveur. Le serveur lit l’identité du client et détermine qu’il est directement connecté au client.

Le serveur Diameter prépare la réponse à la poignée de main Diameter et l’envoie à l’appliance NetScaler. L’appliance modifie la poignée de main et insère sa propre identité. À ce stade, le client Diameter détermine qu’il est directement connecté à NetScaler (l’agent).

Remarque :

Tous les messages de demande Diameter envoyés par le client sont placés en file d’attente sur le serveur sélectionné jusqu’à ce que la poignée de contact Diameter soit terminée. Les paquets sont transférés au serveur lorsque la poignée de main est terminée.

Trafic de Diameter d’équilibrage de charge

Lorsqu’un client envoie une demande à l’appliance Citrix ADC, l’appliance analyse la demande et l’équilibre contextuel de la charge vers un serveur Diameter basé sur un AVP persistant. L’appliance a annoncé l’identité du client sur le serveur, de sorte qu’elle n’ajoute pas d’entrées de routage, car le serveur attend des messages directement du client.

Les demandes initiées par le serveur ne sont pas aussi fréquentes que les demandes des clients. Les demandes initiées par le serveur sont similaires aux demandes initiées par le client, sauf que :

  • Étant donné que les messages sont reçus de plusieurs serveurs, l’appliance conserve l’état de la transaction en ajoutant un numéro HbyH (Hop by Hop) unique à chaque message de demande transféré. Lorsque la réponse au message arrive (avec le même numéro HByH), l’appliance traduit ce numéro HByH en numéro HByH reçu sur le serveur lorsque la demande est arrivée.
  • L’appliance Citrix ADC ajoute une entrée de route en indiquant son identité, car le client considère l’appliance comme un agent relais.

Remarque : Si un message Diameter couvre plusieurs paquets, l’appliance accumule les paquets dans une file d’en-tête incomplète et les transmet au serveur lorsque le message complet est accumulé. De même, si un paquet contient plusieurs messages Diameter, l’appliance divise le paquet et transmet les messages aux serveurs selon les instructions du serveur virtuel d’équilibrage de charge.

Déconnecter une session

Une demande DPR (Disconnect Peer Request) indique l’intention du pair de fermer la connexion, ainsi que la raison de la fermeture de la connexion. L’homologue répond par un DPA (TCP fournit toujours un DPA réussi).

  • Lorsque l’appliance Citrix ADC reçoit un DPR du client, il diffuse le DPR à tous les serveurs et répond immédiatement par un DPA au client. Les serveurs répondent par des DPA, mais l’appliance les ignore. Le client envoie un FIN, que l’appliance diffuse à tous les serveurs.
  • Lorsque l’appliance reçoit un DPR du serveur, elle répond par un DPA uniquement à ce serveur et ne supprime pas le serveur du pool de réutilisation. Lorsque le serveur envoie un FIN, l’appliance répond par FIN/ACK et supprime les connexions du pool de réutilisation.
  • Si l’appliance reçoit un FIN du client, elle envoie un FIN/ACK au client, diffuse le FIN et supprime immédiatement la connexion au serveur du pool de réutilisation.
  • Si l’appliance reçoit un FIN du serveur, elle envoie un FIN/ACK et le supprime du pool de réutilisation. Tout nouveau message destiné à ce serveur est envoyé lors d’une nouvelle connexion.

Configurer l’équilibrage de charge pour le trafic de diamètre

Pour configurer l’appliance Citrix ADC afin d’équilibrer la charge du trafic Diameter, vous devez d’abord définir les paramètres Diameter sur l’appliance, puis ajouter le moniteur Diameter, ajouter les services Diameter, lier les services au moniteur, ajouter le serveur virtuel d’équilibrage de charge Diameter et lier les services au serveur virtuel.

Pour configurer l’équilibrage de charge pour le trafic de diamètre à l’aide de l’interface de ligne de commande

Configurez les paramètres de diamètre.

set ns diameter -identity <string> -realm <string> -serverClosePropagation <YES|NO>
<!--NeedCopy-->

Exemple :

set ns diameter -identity mydomain.org -realm org -serverClosePropagation YES
<!--NeedCopy-->

Ajoutez un moniteur Diameter.

add lb monitor <monitorName> DIAMETER -originHost <string> -originRealm <string>
<!--NeedCopy-->

Exemple :

add lb monitor diameter_mon DIAMETER -originHost mydomain.org -originRealm org
<!--NeedCopy-->

Créez les services Diameter.

add service <name> <IP> DIAMETER <port>
<!--NeedCopy-->

Exemple :

add service diameter_svc0 10.102.82.86 DIAMETER 3868

add service diameter_svc1 10.102.82.87 DIAMETER 3868

add service diameter_svc2 10.102.82.88 DIAMETER 3868

add service diameter_svc3 10.102.82.89 DIAMETER 3868
<!--NeedCopy-->

Liez les services Diameter au moniteur Diameter.

bind service <name>@ monitorName <monitorName>
<!--NeedCopy-->

Exemple :

bind service diameter_svc0 -monitorName diameter_mon

bind service diameter_svc1 -monitorName diameter_mon

bind service diameter_svc2 -monitorName diameter_mon

bind service diameter_svc3 -monitorName diameter_mon
<!--NeedCopy-->

Ajoutez un serveur virtuel d’équilibrage de charge Diameter avec persistance Diameter.

add lb vserver <name> DIAMETER <IPAddress> <port> -persistenceType DIAMETER -persistAVPno <positive_integer>
<!--NeedCopy-->

Exemple :

add lb vserver diameter_vs DIAMETER 10.102.112.152 3868 -persistenceType DIAMETER -persistAVPno 263
<!--NeedCopy-->

Liez les services Diameter au serveur virtuel d’équilibrage de charge Diameter.

bind lb vserver <name> <serviceName>
<!--NeedCopy-->

Exemple :

bind lb vserver diameter_vs diameter_svc0

bind lb vserver diameter_vs diameter_svc1

bind lb vserver diameter_vs diameter_svc2

bind lb vserver diameter_vs diameter_svc3
<!--NeedCopy-->

Enregistrez la configuration.

save ns config
<!--NeedCopy-->

Remarque : Vous pouvez également configurer l’équilibrage de charge du trafic Diameter via SSL à l’aide du type de service SSL_DIAMETER .

Pour configurer l’équilibrage de charge pour le trafic Diameter à l’aide de l’utilitaire de configuration

  1. Accédez à Système > Paramètres > Modifier les paramètres de Diameter et définissez les paramètres de diamètre.
  2. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuelset créez un serveur virtuel d’équilibrage de charge de type Diameter.
  3. Créez un service de type Diameter.
  4. Créez un moniteur de type Diameter. Dans Paramètres spéciaux, définissez l’hôte d’origine et le domaine d’origine.
  5. Liez le moniteur au service et liez le service au serveur virtuel Diameter.
  6. Dans Paramètres avancés, cliquez sur Persistance, spécifiez le diamètre et entrez un numéro AVP de persistance.
  7. Cliquez sur Enregistrer, puis sur Terminé.
Configuration de l’équilibrage de charge de diamètre