Équilibrer la charge d’un groupe de serveurs SIP
Le protocole SIP (Session Initiation Protocol) est conçu pour initier, gérer et mettre fin à des sessions de communication multimédia. Il est devenu la norme pour la téléphonie Internet (VoIP). Les messages SIP peuvent être transmis via TCP ou UDP. Les messages SIP sont de deux types : les messages de demande et les messages de réponse.
Le trafic dans un système de communication basé sur SIP est acheminé par des périphériques et des applications (entités) dédiés. Dans une session de communication multimédia, ces entités échangent des messages. La figure suivante montre un système de communication basé sur SIP de base :
Figure 1. Système de communication basé sur SIP
Un Citrix ADC vous permet d’équilibrer la charge des messages SIP sur UDP ou sur TCP (y compris TLS). Vous pouvez configurer Citrix ADC pour équilibrer la charge des demandes SIP vers un groupe de serveurs proxy SIP. Pour ce faire, vous créez un serveur virtuel d’équilibrage de charge avec la méthode d’équilibrage de charge et le type de persistance défini sur l’une des combinaisons suivantes :
- Méthode d’équilibrage de la charge de hachage d’ID d’appel sans paramètre de persistance
- Persistance basée sur l’ID d’appel avec la méthode d’équilibrage de charge de connexion minimale ou d’arrondi
- Persistance basée sur des règles avec une méthode d’équilibrage de charge de connexion minimale ou d’arrondi
De plus, par défaut, Citrix ADC ajoute RPORT via l’en-tête de la demande SIP, de sorte que le serveur renvoie la réponse à l’adresse IP source et au port d’où provient la demande.
Remarque : Pour que l’équilibrage de charge fonctionne, vous devez configurer les proxys SIP afin qu’ils n’ajoutent pas d’adresses IP privées ou de domaines privés à l’en-tête/charge utile SIP. Les proxys SIP doivent ajouter à l’en-tête SIP un nom de domaine qui se résout à l’adresse IP du serveur virtuel SIP. En outre, les mandataires SIP doivent communiquer avec une base de données commune pour partager les informations d’inscription.
Trafic initié par le serveur
倒乐的马路sortant initie le serveur SIP,configurez RNAT sur Citrix ADC de sorte que les adresses IP privées utilisées par les clients soient traduites en adresses IP publiques.
Si vous avez configuré des paramètres SIP qui incluent le port source ou de destination RNAT, l’appliance compare les valeurs des ports source et destination des paquets de requête avec le port source RNAT et le port de destination RNAT. Si l’une des valeurs correspond, l’appliance met à jour l’en-tête VIA avec RPORT. La réponse SIP du client traverse ensuite le même chemin que la demande.
倒勒内部SSL initie par le serveur CitrixDC utilise une paire de clés de certificat intégrée. Si vous souhaitez utiliser une paire de clés certificat-clé personnalisée, liez la paire certificat-clé personnalisée au service interne Citrix ADC nomménsrnatsip - 127.0.0.1 - 5061.
Prise en charge des stratégies et expressions
Le langage des expressions par défaut Citrix ADC contient plusieurs expressions qui fonctionnent sur des connexions SIP (Session Initiation Protocol). Ces expressions peuvent être liées uniquement aux serveurs virtuels SIP (sip_udp, sip_tcp ou sip_ssl) et aux points de liaison globaux. Vous pouvez utiliser ces expressions dans les stratégies de commutation de contenu, de limitation de débit, de répondeur et de réécriture.
Configuration de l’équilibrage de charge pour le trafic de signalisation SIP sur TCP ou UDP
Citrix ADC peut équilibrer la charge des serveurs SIP qui envoient des demandes via UDP ou TCP, y compris le trafic TCP sécurisé par TLS. ADC fournit les types de service suivants pour équilibrer la charge des serveurs SIP :
- SIP_UDP — Utilisé lorsque les serveurs SIP envoient des messages SIP via UDP.
- SIP_TCP — Utilisé lorsque les serveurs SIP envoient des messages SIP via TCP.
- SIP_SSL — Utilisé pour sécuriser le trafic de signalisation SIP sur TCP à l’aide de SSL ou TLS. Le Citrix ADC prend en charge les modes suivants :
- Connexion TLS de bout en bout entre le client, ADC et le serveur SIP.
- Connexion TLS entre le client et ADC, et connexion TCP entre ADC et le serveur SIP.
- Connexion TCP entre le client et ADC, et connexion TLS entre ADC et le serveur SIP.
La figure suivante illustre la topologie d’un programme d’installation configuré pour équilibrer la charge d’un groupe de serveurs SIP envoyant des messages SIP via TCP ou UDP.
Figure 2. Topologie d’équilibrage de charge SIP
Type d’entité | Nom | Adresse IP | Port | Type de service/Protocole |
---|---|---|---|---|
Serveur virtuel | Vserver-LB-1 | 10.102.29.65 | 80 | SIP_UDP / SIP_TCP / SIP_SSL |
Services | Service-SIP-1 | 192.168.1.6 | 80 | SIP_UDP / SIP_TCP / SIP_SSL |
Service-SIP-2 | 192.168.1.5 | 80 | SIP_UDP / SIP_TCP / SIP_SSL | |
Moniteurs | Valeur par défaut | Aucune | 80 | SIP_UDP / SIP_TCP / SIP_SSL |
Voici une vue d’ensemble de la configuration de l’équilibrage de charge de base pour le trafic SIP :
Configurez les services et configurez un serveur virtuel pour chaque type de trafic SIP que vous souhaitez équilibrer la charge :
- SIP_UDP— Si vous équilibrez la charge du trafic SIP sur UDP.
- SIP_TCP— Si vous équilibrez la charge du trafic SIP sur TCP.
- SIP_SSL— Si vous êtes en train d’équilibrer la charge et de sécuriser le trafic SIP sur TCP.
Remarque : Si vous utilisez SIP_SSL, veillez à créer une paire de clés de certificat SSL. Pour plus d’informations, voir Ajout d’une paire de clés de certificat.
Liez les services aux serveurs virtuels.
Si vous souhaitez surveiller les états des services avec un moniteur autre que le moniteur par défaut (tcp-default), créez un moniteur personnalisé et liez-le aux services. Le Citrix ADC fournit deux types de moniteurs personnalisés,SIP-UDPetSIP-TCP, pour la surveillance des services SIP.
Si vous utilisez un serveur virtuel SIP_SSL, liez une paire de clés de certificat SSL au serveur virtuel.
Si vous utilisez Citrix ADC comme Gateway pour les serveurs SIP dans votre déploiement, configurez RNAT.
Si vous souhaitez ajouter RPORT aux messages SIP initiés à partir du serveur SIP, configurez les paramètres SIP.
Pour configurer une configuration d’équilibrage de charge de base pour le trafic SIP à l’aide de l’interface de ligne de commande
Créez un ou plusieurs services. À l’invite de commandes, tapez :
add service (SIP_UDP | SIP_TCP | SIP_SSL)
Exemple :
add service Service-SIP-UDP-1 192.0.2.5 SIP_UDP 80
Créez autant de serveurs virtuels que nécessaire pour gérer les services que vous avez créés. Le type de serveur virtuel doit correspondre au type de services que vous lui liez. À l’invite de commandes, tapez :
add lb vserver (SIP_UDP | SIP_TCP | SIP_SSL)
Exemple :
add lb vserver Vserver-LB-1 SIP_UDP 10.102.29.60 80
Liez chaque service à un serveur virtuel. À l’invite de commandes, tapez :
bind lb vserver
Exemple :
bind lb vserver Vserver-LB-1 Service-SIP-UDP-1
(Facultatif) Créez un moniteur personnalisé de type SIP-UDP ou SIP-TCP et liez le moniteur au service. À l’invite de commandes, tapez :
add lb monitor [] bind lb monitor
Exemple :
add lb monitor mon1 sip-UDP -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200 bind monitor mon1 Service-SIP-UDP-1
Si vous avez créé un serveur virtuel SIP_SSL, liez une paire de clés de certificat SSL au serveur virtuel. À l’invite de commandes, tapez : À l’invite de commandes, tapez :
bind ssl vserver -certkeyName -CA –skipCAName
Exemple :
bind ssl vserver Vserver-LB-1 -certkeyName CertKey-SSL-1
Configurez RNAT像requis par la topologie de votre réseau. À l’invite de commandes, tapez l’une des commandes suivantes pour créer respectivement une entrée RNAT qui utilise une adresse réseau comme condition et SNIP comme adresse IP NAT, une entrée RNAT qui utilise une adresse réseau comme condition et une adresse IP unique comme adresse IP NAT, une entrée RNAT qui utilise une ACL comme la condition et un SNIP comme adresse IP NAT, ou une entrée RNAT qui utilise une ACL comme condition et une adresse IP unique comme adresse IP NAT :
add rnat ( | ( [-redirectPort ])) bind rnat @ … show rnat
Exemple :
add rnat RNAT-1 192.168.1.0 255.255.255.0 bind rnat RNAT-1 -natip 10.102.29.50
Si vous souhaitez utiliser une paire de clés certificat-clé personnalisée, liez la paire certificat-clé personnalisée au service interne Citrix ADC nommé nsrnatsip-127.0.0.1-5061.
add ssl certKey -cert [-key ] bind ssl service -certkeyName
Exemple :
add ssl certKey c1 -cert cert.epm -key key.ky bind ssl service nsrnatsip-127.0.0.1-5061 -certkeyName c1
Si vous souhaitez ajouter RPORT aux messages SIP initiés par le serveur SIP, tapez la commande suivante à l’invite de commandes :
set lb sipParameters -rnatSrcPort -rnatDstPort -retryDur -addRportVip - sip503RateThreshold
Exemple de configuration pour l’équilibrage de charge du trafic SIP sur UDP
add service service-UDP-1 10.102.29.5 SIP_UDP 80 Done add lb vserver vserver-LB-1 SIP_UDP 10.102.29.60 80 Done bind lb vserver vserver-LB-1 service-UDP-1 Done add lb mon mon1 sip-udp -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200 Done bind mon mon1 service-UDP-1 Done add rnat RNAT-1 192.168.1.0 255.255.255.0 Done set lb sipParameters -rnatSrcPort 5060 -rnatDstPort 5060 -retryDur 1000 -addRportVip ENABLED -sip503RateThreshold 1000 Done
Exemple de configuration pour l’équilibrage de charge du trafic SIP sur TCP
add service service-TCP-1 10.102.29.5 SIP_TCP 80 Done add lb vserver vserver-LB-1 SIP_TCP 10.102.29.60 80 Done bind lb vserver vserver-LB-1 service-TCP-1 Done add lb mon mon1 sip-tcp -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200 Done bind mon mon1 service-TCP-1 Done add rnat RNAT-1 192.168.1.0 255.255.255.0 Done set lb sipParameters -rnatSrcPort 5060 -rnatDstPort 5060 -retryDur 1000 -addRportVip ENABLED -sip503RateThreshold 1000 Done
Exemple de configuration pour l’équilibrage de charge et la sécurisation du trafic SIP sur TCP
add service service-SIP-SSL-1 10.102.29.5 SIP_SSL 80 Done add lb vserver vserver-LB-1 SIP_SSL 10.102.29.60 80 Done bind lb vserver vserver-LB-1 service-SIP-SSL Done add lb mon mon1 sip-tCP -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200 Done bind mon mon1 service-SIP-SSL Done bind ssl vserver Vserver-LB-1 -certkeyName CertKey-SSL-1 Done add rnat RNAT-1 192.168.1.0 255.255.255.0 Done set lb sipParameters -rnatSrcPort 5060 -rnatDstPort 5060 -retryDur 1000 -addRportVip ENABLED -sip503RateThreshold 1000 Done
Pour configurer une configuration d’équilibrage de charge de base pour le trafic SIP à l’aide de l’interface graphique
Accédez àGestion du trafic > Équilibrage de charge > Serveurs virtuelset ajoutez un serveur virtuel de type SIP_UDP, SIP_TCP ou SIP_SSL.
Cliquez sur la sectionServiceet ajoutez un service de type SIP_UDP, SIP_TCP ou SIP_SSL.
(Facultatif) Cliquez sur la section Moniteur et ajoutez un moniteur du type SIP-UDP ou SIP-TCP.
Liez le moniteur au service et liez le service au serveur virtuel.
Si vous avez créé un serveur virtuel SIP_SSL, liez une paire de clés de certificat SSL au serveur virtuel. Cliquez sur la section Certificats et liez une paire de clés de certificat au serveur virtuel.
Configurez RNAT像requis par la topologie de votre réseau. Pour configurer RNAT :
- Accédez àSystème > Réseau > Routes.
- Sur la page Routes, cliquez sur l’ongletRNAT.
- Dans le volet d’informations, cliquez surConfigurer le RNAT.
- Dans la boîte de dialogue Configurer RNAT, effectuez l’une des opérations suivantes :
- Si vous souhaitez utiliser l’adresse réseau comme condition pour créer une entrée RNAT, cliquez surRéseauet définissez les paramètres suivants :
- Réseau
- Masque réseau
- Si vous souhaitez utiliser une ACL étendue comme condition pour créer une entrée RNAT, cliquez surACLet définissez les paramètres suivants :
- Nom ACL
- Port de redirection
- Si vous souhaitez utiliser l’adresse réseau comme condition pour créer une entrée RNAT, cliquez surRéseauet définissez les paramètres suivants :
- Pour définir une adresse SNIP en tant qu’adresse IP NAT, passez à l’étape 7.
- Pour définir une adresse IP unique comme IP NAT, dans la liste IP NAT disponible (s), sélectionnez l’adresse IP que vous souhaitez définir comme IP NAT, puis cliquez sur Ajouter. L’IP NAT que vous avez sélectionnée apparaît dans la liste IP NAT configurée.
- Cliquez sur Créer, puis sur Fermer.
Si vous souhaitez utiliser une paire de clés certificat-clé personnalisée, liez la paire certificat-clé personnalisée au service interne Citrix ADC nomménsrnatsip - 127.0.0.1 - 5061. Pour lier la paire :
- Accédez àGestion du trafic > Équilibrage de charge > Services, puis cliquez sur l’onglet Services internes.
- Sélectionnez nsrnatsip-127.0.0.1-5061 et cliquez surModifier.
- Cliquez sur la sectionCertificatset liez une paire de clés de certificat au service interne.
Si vous souhaitez ajouter RPORT aux messages SIP initiés par le serveur SIP, configurez les paramètres SIP. Accédez àGestion du trafic > Équilibrage de charge, puis cliquez sur Modifier les paramètres SIP, définissez les différents paramètres SIP.
Exemple d’expression et de stratégie SIP : compression activée dans les demandes client
Un Citrix ADC ne peut pas traiter les demandes SIP client compressées, de sorte que la demande SIP client échoue.
Vous pouvez configurer une stratégie de répondeur qui intercepte le message SIP NEGOTIATE du client et recherche l’en-tête de compression. Si le message inclut un en-tête de compression, la stratégie répond avec « 400 Bad Request », de sorte que le client renvoie la demande sans la compresser.
À l’invite de commandes, tapez les commandes suivantes pour créer la stratégie de répondeur :
add responder action sipaction1 respondwith q{"SIP/2.0 400 Bad Requestrnrn"} Done add responder policy sippol1 add responder policy sippol1 "SIP.REQ.METHOD.EQ("NEGOTIATE")&&SIP.REQ.HEADER("Compression").EXISTS" sipaction1
Dans cet article
- Trafic initié par le serveur
- Prise en charge des stratégies et expressions
- Configuration de l’équilibrage de charge pour le trafic de signalisation SIP sur TCP ou UDP
- Pour configurer une configuration d’équilibrage de charge de base pour le trafic SIP à l’aide de l’interface de ligne de commande
- Exemple de configuration pour l’équilibrage de charge du trafic SIP sur UDP
- Exemple de configuration pour l’équilibrage de charge du trafic SIP sur TCP
- Exemple de configuration pour l’équilibrage de charge et la sécurisation du trafic SIP sur TCP
- Pour configurer une configuration d’équilibrage de charge de base pour le trafic SIP à l’aide de l’interface graphique
- Exemple d’expression et de stratégie SIP : compression activée dans les demandes client