Comment équilibrer la charge et créer des services SIP et PBX à haute disponibilité

PUBLIÉ LE 6 mars, 2019

Aperçu

VoIP peuplements pour Voice Over Internet Protocol, qui couvre tous les appels téléphoniques passés via Internet, mais afin de le rendre réel, le SIP le protocole a été défini.

SIP or séance d'initiation au protocoles est le protocole qui gère les sessions de communication multimédia incluant les appels (voix et vidéo), on peut donc dire que SIP est l'un des protocoles spécifiques VoIP repose sur.

Lors d’une session de communication avec les médias, le SIP protocole est responsable des opérations de signalisation, telles que l’initiation et la terminaison d’appels vocaux ou vidéo. Les communications qui SIP peuvent établir sont unicast, avec deux parties, ou multicast, plusieurs parties. À travers le SIP protocole, les appels existants peuvent être modifiés, par exemple en invitant un autre membre. le SIP est conçu de manière indépendante du protocole de la couche de transport sous-jacent et peut être utilisé avec UDP, TCP et SCTP (Protocole de transmission de contrôle de flux). SIP peut également fonctionner avec d'autres protocoles, qui peuvent spécifier le format du support et transporter le support après SIP établit l'appel. Le routage des appels téléphoniques est également possible à partir d’un PBX système téléphonique vers le réseau externe, où PBX (Échange de succursale privé) est un système de commutation téléphonique installé dans une entreprise privée dotée de plusieurs périphériques internes.

Ce guide est utile pour configurer des services SIP populaires tels que astérisque, Proxy Websphere SIP, Fonderie SIP, Elastix, FreeSWITCH, OpenPBX de Voicetronix, PBXInAFlash, FreePBX, OpenSIPs, Kamailio, 3CX, Serveur SIP Office, etc., tous en haute disponibilité et prêts à évoluer.

Comment fonctionne le protocole SIP?

Supposons que nous ayons deux appelants, Bonnie et Clyde. Bonnie appelle Clyde. Tout d'abord, les téléphones de Bonnie et de Clyde doivent être enregistrés sur un serveur SIP. Le processus d'inscription entre les clients et le service d'enregistrement est:

1. Le client du logiciel de téléphonie envoie un S'INSCRIRE message au serveur SIP.
2. Le serveur SIP répond par un 401 non autorisé message avec en-tête WWW-Authenticate.
3. Le client renvoie alors le S'INSCRIRE demande au serveur SIP, y compris le Autorisation en-tête.
4. Si l'authentification est correcte, le serveur SIP renvoie un 200 OK réponse au client. À ce stade, le client peut recevoir et lancer des appels.

Ce processus d'inscription sera également hautement disponible via l'équilibreur de charge proxy que nous proposons dans cet article.

Afin de mieux comprendre comment un appel entre Bonnie et Clyde est effectué, voir ci-dessous les étapes définies dans le protocole.

1. Bonnie lance un appel vers Clyde en envoyant un message. INVITER message
2. Serveur SIP A passe le INVITER message au serveur SIP destinataire B
3. En attendant, serveur SIP A réponses ESSAI DE 100 message à Bonnie
4. Serveur SIP B passe le INVITER message à Clyde
5. Pendant ce temps, un ESSAI DE 100 message au serveur SIP A
6. L'appareil de Clyde est maintenant SONNERIE 180 et le transmet au serveur SIP B
7. Serveur SIP B envoie ceci SONNERIE 180 au serveur SIP A
8. Serveur SIP A transmet ce SONNERIE 180 à Bonnie
9. Clyde reçoit l'appel et envoie 200 OK message
10. Et le transmet 200 OK message au serveur SIP B
11. Serveur SIP A transmet ce 200 OK message à Bonnie
12. Une connexion est établie entre Bonnie et Clyde, où Bonnie envoie directement ACK à Clyde, et Bonnie et Clyde communiquent directement l'un avec l'autre
13. L’une ou l’autre partie se déconnecte de l’appel avec un ADIEU
14. L'autre partie renvoie l'accusé de réception 200 OK

Environnement d'équilibrage de charge SIP

Connaissant les spécificités du protocole SIP, le scénario que nous souhaitons réaliser dans cet article consiste à pouvoir redimensionner les serveurs SIP afin de pouvoir gérer un plus grand nombre de softphones enregistrés et de gérer un plus grand nombre d'appels. Le diagramme ci-dessous illustre l'architecture de service dans un centre de données.

Voyons ci-dessous comment le configurer.

Configuration d'équilibrage de charge SIP

Avant de configurer le service virtuel, nous devons créer un environnement dédié. IP virtuelle, car cette adresse IP pourra recevoir TCP or UDP cadres. Pour y parvenir, allez à Réseau> Interfaces virtuelles. Puis cliquez sur Action> Créer une interface virtuelle.

Ensuite, sélectionnez Interface parent, interface Nom et son IP Adresse:

Il est maintenant temps de configurer facilement le service virtuel SIP dans les ports standard utilisés par les services SIP. TCP (facultatif) UDP 5060 or 5061. Port 5060 est couramment utilisé pour le trafic de signalisation et le port non chiffrés 5061 est généralement utilisé pour le trafic crypté avec TLS (Transport Layer Security).

Avec Zevenet Load Balancer, nous réalisons cette configuration en créant un LSLB profil de la ferme L4xNAT avec des ports 5060 or 5061. Dans le service virtuel, les communications chiffrées et non chiffrées sont prises en charge simultanément si les ports sont répertoriés dans le service virtuel.

Pour ce faire, allez à LSLB> Fermes et créez-en un nouveau comme indiqué ci-dessous.

Après la création, cliquez sur Avancé, Sélectionnez SIP as Type de protocole. À ce stade, le proxy 4 SIP de couche sera activé dans le service virtuel actuel afin de permettre un équilibrage correct de l'enregistrement et des appels des utilisateurs. Aussi, nous recommandons NAT as Type de NAT Mais DNAT peut également être utilisé pour obtenir l'adresse IP source du client. Enfin, cliquez sur Mises à jour afin d'appliquer les modifications.

Enfin, configurez les backends, cliquez sur Serviceset sous la Backends section cliquez sur Action> Ajouter un backend.

Rempli le IP, Port, Poids et cliquez sur le Épargnez action pour appliquer les modifications.

Ajoutez autant de serveurs SIP que vous avez besoin pour faire évoluer votre service. Vous pouvez maintenant utiliser le IP virtuelle en tant que service virtuel SIP dans vos softphones et vos clients d’une manière hautement disponible, fiable et évolutive.

Vérifications approfondies de l'état de santé SIP

Dans les dernières versions de Zevenet, vous pouvez utiliser une vérification de l’état de santé avancée spécialement pour les services SIP dans lesquels l’équilibreur de charge effectue des appels SIP factices vers tous les serveurs SIP configurés en tant que backends afin de garantir que les services de lecture SIP fonctionnent correctement.

Au cas où il n’y aurait pas déjà créé un check_sip Ferme Gardien, puis créez-le dans le dossier Surveillance> Farmguardian section comme indiqué ci-dessous.

Afin de mieux comprendre les options incluses dans le check_sip commande, reportez-vous à l'aide du vérificateur de santé.

usage: ./check_sip [ options ] FROM TO
Makes SIP call from FROM to TO, sends voice from multiple
files to peer. Content in files need to be PCMU/8000 and
could be recorded with samples/invite_and_recv.pl

Options:
  -d|--debug                   Enable debugging
  -h|--help                    Help (this info)
  -P|--proxy host[:port]       use outgoing proxy, register there unless registrar given
  -R|--registrar host[:port]   register at given address
  -S|--send filename           send content of file, can be given multiple times
  -L|--leg ip[:port]           use given local ip[:port] for outgoing leg
  -T|--timeout T               timeout and cancel invite after T seconds, default 30
  --username name              username for authorization
  --password pass              password for authorization

Examples:
  ./check_sip -T 10 -S welcome.data -S announce.data sip:30@192.168.178.4 sip:31@192.168.178.1
  ./check_sip --username 30 --password secret --proxy=192.168.178.3
     -S holy.data sip:30@example.com 31

Compte tenu de notre exemple, nous pouvons définir notre vérificateur de santé dans le Gardien de ferme section comme indiqué ci-dessous.

./check_sip -T 9 -S welcome.data -S announce.data sip:Bonnie@192.168.56.201 sip:Clyde@HOST

Notez que le jeton HOST sera modifié lors de l'exécution avec chaque moteur SIP configuré dans la batterie.

Regroupement de la livraison d'applications SIP

Zevenet permet également de définir le service de livraison évolutif SIP en haute disponibilité à l'aide d'un service de mise en cluster entre deux unités redondantes. Veuillez déployer une autre unité Zevenet et vous reporter au Système> Cluster section afin de le configurer en haute disponibilité.

Améliorer la sécurité SIP

Appliquer une couche de sécurité à un service SIP public est très simple grâce au module IPDS, qui permet notamment la liste noire, les listes de trous noirs en temps réel et la protection DoS. S'il vous plaît se référer à la IPDS section du menu principal afin d’avoir plus de détails sur la protection d’un service SIP public.

Configuration des clients de téléphone VoIP

Une fois que notre service SIP est prêt à évoluer, à configurer la haute disponibilité et avec une sécurité renforcée, il est temps de configurer le nouveau service dans les softphones et les clients. Dans ce cas, nous vous recommandons de configurer une entrée DNS résolvant l'adresse VIP ou une adresse IP publique pour le service virtuel. Tel DNS or FQDN Le nom de notre service SIP virtuel sera celui qui sera utilisé côté client, au lieu d’avoir une adresse IP SIP réelle configurée. Cette configuration offre la flexibilité nécessaire pour équilibrer la charge des clients facilement et automatiquement.

D'autre part, nous vous recommandons de configurer un délai d'expiration persistant inférieur du côté des clients afin de forcer l'enregistrement plus généralement, comme dans le cas où un serveur SIP est détecté comme étant en panne, le client le notifie et réessaie de se reconnecter rapidement à un autre.

Profitez maintenant de votre service évolutif SIP!

Partager sur:

Documentation sous les termes de la licence de documentation libre GNU.

Cet article a-t-il été utile?

Articles Relatifs