Come bilanciare il carico e creare servizi SIP e PBX altamente disponibili

Visualizza categorie

Come bilanciare il carico e creare servizi SIP e PBX altamente disponibili

6 min letto

Panoramica #

VoIP è l'acronimo di Voice Over Internet Protocol , che si riferisce a tutte le chiamate telefoniche effettuate tramite Internet, ma per renderle effettive è stato definito il protocollo SIP.

SIP , o Session Initiation Protocol , è il protocollo che gestisce le sessioni di comunicazione multimediale, comprese le chiamate (vocali e video); possiamo quindi affermare che SIP è uno dei protocolli specifici su cui si basa il VoIP .

In una sessione di comunicazione multimediale, il protocollo SIP si occupa delle operazioni di segnalazione, come l'avvio e la terminazione di chiamate vocali o video. Le comunicazioni che SIP può stabilire sono unicast, tra due partecipanti, o multicast, tra più partecipanti. Tramite il protocollo SIP , è possibile modificare le chiamate esistenti, ad esempio invitando un altro partecipante. SIP è progettato in modo da essere indipendente dal protocollo di trasporto sottostante e può essere utilizzato con UDP , TCP e SCTP ( Stream Control Transmission Protocol ). SIP può anche funzionare insieme ad altri protocolli, che possono specificare il formato multimediale e trasportare i contenuti multimediali dopo che SIP ha stabilito la chiamata. È inoltre possibile instradare le chiamate telefoniche da un sistema telefonico PBX verso la rete esterna, dove PBX ( Private Branch Exchange ) è un sistema di commutazione telefonica installato presso un'organizzazione privata con diversi dispositivi interni.

Questa guida è utile per configurare i servizi SIP più diffusi come Asterisk , Websphere SIP Proxy , SIP Foundry , Elastix , FreeSWITCH , OpenPBX di Voicetronix , PBXInAFlash , FreePBX , OpenSIPs , Kamailio , 3CX , Office SIP Server , ecc., tutti caratterizzati da elevata disponibilità e scalabilità.

Come funziona il protocollo SIP? #

Supponiamo di avere due chiamanti, Bonnie e Clyde. Bonnie sta chiamando Clyde. Prima di tutto, sia i telefoni di Bonnie che quelli di Clyde devono essere registrati su un server SIP. Il processo di registrazione tra i client e il servizio di registrazione è:

1. Il client softphone invia un REGISTRATI messaggio al server SIP.
2. Il server SIP risponde con a 401 Non autorizzato messaggio che include un'intestazione WWW-Authenticate.
3. Il client quindi invia nuovamente il REGISTRATI richiesta al server SIP incluso il Autorizzazione intestazione.
4. Se l'autenticazione è corretta, il server SIP restituisce a 200 OK risposta al cliente. In questa fase, il cliente è in grado di ricevere e avviare chiamate.

Questo processo di registrazione sarà anche altamente disponibile tramite il bilanciatore del carico proxy che proponiamo in questo articolo.

Per capire meglio come viene eseguita una chiamata tra Bonnie e Clyde, vedere sotto i passaggi definiti nel protocollo.

1. Bonnie inizia una chiamata a Clyde inviando un messaggio INVITARE messaggio
2. Server SIP A passa il INVITARE messaggio al server SIP del destinatario B
3. Nel frattempo, server SIP A risposte 100 TRYING messaggio a Bonnie
4. Server SIP B passa il INVITARE messaggio a Clyde
5. Nel frattempo, un 100 TRYING messaggio al server SIP A
6. Il dispositivo di Clyde è ora 180 RINGING e lo trasmette al server SIP B
7. Server SIP B invia questo 180 RINGING al server SIP A
8. Server SIP A trasmette questo 180 RINGING a Bonnie
9. Clyde riceve la chiamata e invia 200 OK messaggio
10 E lo trasmette 200 OK messaggio al server SIP B
11 Server SIP A trasmette questo 200 OK messaggio a Bonnie
12 Viene stabilita una connessione tra Bonnie e Clyde, dove Bonnie invia direttamente ACK a Clyde, e sia Bonnie che Clyde comunicano direttamente tra loro
13 Qualsiasi parte si disconnette dalla chiamata con a ADDIO
14 L'altra parte restituisce il riconoscimento 200 OK

Ambiente di bilanciamento del carico SIP #

Conoscendo le specifiche del protocollo SIP, lo scenario che vogliamo raggiungere in questo articolo è quello di essere in grado di scalare i server SIP in modo da essere in grado di gestire un numero maggiore di softphone registrati e gestire un maggior numero di chiamate. Lo schema seguente mostra l'architettura di servizio in un centro dati.

Vediamo di seguito come configurarlo.

Configurazione del bilanciamento del carico SIP #

Prima di configurare il servizio virtuale, è necessario creare un indirizzo IP virtuale dedicato , poiché questo indirizzo IP sarà in grado di ricevere frame TCP o UDP . Per farlo, vai su Rete > Interfacce virtuali . Quindi fai clic su Azione > Crea interfaccia virtuale.

Successivamente, selezionare Interfaccia principale , Nome interfaccia e relativo indirizzo IP :

Ora è il momento di configurare facilmente il servizio virtuale SIP sulle porte standard utilizzate dai servizi SIP, ovvero TCP e/o UDP 5060 o 5061. La porta 5060 è comunemente utilizzata per il traffico di segnalazione non crittografato, mentre la porta 5061 è tipicamente utilizzata per il traffico crittografato con TLS ( Transport Layer Security ).

Con RELIANOID Load Balancer, otteniamo questa configurazione creando un file LSLB profilo della fattoria L4xNAT con le porte 5060 or 5061. Nel servizio virtuale, le comunicazioni crittografate e non crittografate sono supportate contemporaneamente se le porte sono elencate nel servizio virtuale.

Per farlo, vai su LSLB > Farms e creane una nuova come mostrato di seguito.

Dopo la creazione, clicca su Avanzate e seleziona SIP come Tipo di protocollo . A questo punto, il proxy SIP di livello 4 verrà abilitato nel servizio virtuale corrente per bilanciare correttamente il carico delle registrazioni e delle chiamate degli utenti. Inoltre, consigliamo NAT come tipo di NAT , ma è possibile utilizzare anche DNAT per ottenere l'indirizzo IP di origine del client. Infine, clicca su Aggiorna per applicare le modifiche.

Infine, configura i backend: fai clic su Servizi e, nella sezione Backend , fai clic su Azione > Aggiungi backend.

Inserisci IP , Porta e Peso e fai clic su Salva per applicare le modifiche.

Aggiungi tutti i server SIP necessari per scalare il tuo servizio. Ora puoi utilizzare l' IP virtuale come servizio virtuale SIP nei tuoi softphone e client in modo altamente disponibile, affidabile e scalabile.

Controlli sanitari avanzati SIP #

Al più tardi RELIANOID versioni, è possibile utilizzare un controllo di integrità avanzato specifico per i servizi SIP in cui il sistema di bilanciamento del carico esegue chiamate SIP fittizie a tutti i server SIP configurati come backend per garantire che i servizi di lettura SIP siano attivi e funzionanti correttamente.

Nel caso in cui non esista già un comando check_sip Farm Guardian, createlo nella sezione Monitoraggio > Farmguardian, come mostrato di seguito.

Per comprendere meglio le opzioni incluse nel comando check_sip , si prega di consultare la guida dello strumento di verifica dello stato di salute.

utilizzo: ./check_sip [ opzioni ] DA A Effettua chiamate SIP da DA a A, invia voce da più file al peer. Il contenuto dei file deve essere PCMU/8000 e può essere registrato con sample/invite_and_recv.pl Opzioni: -d|--debug Abilita debug -h|--help Aiuto (queste informazioni) -P|--proxy host[:port ] usa il proxy in uscita, registrati lì a meno che non venga fornito il registrar -R|--registrar host[:porta] registra all'indirizzo specificato -S|--invia nome file invia il contenuto del file, può essere fornito più volte -L|--leg ip[ :port] usa l'ip locale fornito[:port] per la tratta in uscita -T|--timeout T timeout e annulla l'invito dopo T secondi, default 30 --username nome nome utente per l'autorizzazione --password passa password per l'autorizzazione Esempi: ./check_sip -T 10 -S benvenuti.dati -S annuncia.dati sip:30@192.168.178.4 sip:31@192.168.178.1 ./check_sip --username 30 --password secret --proxy=192.168.178.3 -S santi.dati sorso:30@esempio.com 31

Considerando il nostro esempio, possiamo definire il nostro sistema di controllo dello stato di salute nella sezione Farm Guardian , come mostrato di seguito.

./check_sip -T 9 -S benvenuti.dati -S annuncia.dati sip:Bonnie@192.168.56.201 sip:Clyde@HOST

Si noti che l'HOST del token verrà modificato in runtime con ogni backend SIP configurato nella farm.

Cluster di consegna applicazioni SIP #

RELIANOID prevede inoltre la possibilità di impostare il servizio di consegna scalabile SIP in alta disponibilità utilizzando un servizio di clustering tra due unità ridondanti. Per favore distribuiscine un altro RELIANOID unità e fare riferimento a Sistema> Cluster sezione per configurarlo in alta disponibilità.

Miglioramento della sicurezza SIP #

Applicare un livello di sicurezza a un servizio SIP pubblico è piuttosto semplice grazie al modulo IPDS, che consente, tra le altre cose, la creazione di blacklist, la gestione di blackhole list in tempo reale e la protezione dagli attacchi DoS. Per maggiori dettagli sulla protezione di un servizio SIP pubblico, consultare la sezione IPDS nel menu principale.

Configurazione dei client telefonici VoIP #

Una volta che il nostro servizio SIP è pronto per la scalabilità, con alta disponibilità e sicurezza avanzate, è il momento di configurarlo nei softphone e nei client. In questo caso, consigliamo di impostare una voce DNS che si risolva all'indirizzo VIP o a un indirizzo IP pubblico per il servizio virtuale. Tale nome DNS o FQDN per il nostro servizio SIP virtuale sarà quello utilizzato lato client, al posto di un indirizzo IP SIP reale. Questa configurazione offre la flessibilità di bilanciare il carico dei client in modo semplice e automatico.

D'altra parte, si consiglia di configurare un timeout keep-alive inferiore nel lato client per forzare la registrazione più spesso, come nel caso in cui qualsiasi server SIP venga rilevato come down, il client lo noti e riprovare a riconnettersi rapidamente a un altro.

Ora, goditi il ​​tuo servizio scalabile SIP!

📄 Scarica questo documento in formato PDF #

    EMAIL: *

    Offerto da BetterDocs