Como balancear a carga e criar serviços SIP e PBX altamente disponíveis

POSTADO POR Zevenet | 6 de março de 2019

Visão geral

VoIP é um anagrama para Voice Over Internet Protocol, que cobre todas as chamadas telefônicas feitas através da Internet, mas para torná-lo real SIP protocolo foi definido.

SIP or Protocolo de iniciação de sessão é o protocolo que gerencia sessões de comunicação multimídia incluindo chamadas (voz e vídeo), então podemos dizer que SIP é um dos protocolos específicos que VoIP depende de.

Em uma sessão de comunicação de mídia, o SIP O protocolo é responsável pelas operações de sinalização, como a inicialização e a finalização de chamadas de voz ou vídeo. As comunicações que SIP pode estabelecer são unicast, com duas partes, ou multicast, várias partes. Através de SIP protocolo, as chamadas existentes podem ser modificadas, por exemplo, convidando outro membro. o SIP é projetado de maneira independente do protocolo da camada de transporte subjacente e pode ser usado com UDP, TCPe SCTP (Protocolo de Transmissão de Controle de Fluxo). SIP também pode trabalhar junto com outros protocolos, que podem especificar o formato da mídia e transportar a mídia após SIP configura a chamada. O encaminhamento de chamadas telefônicas também é possível PBX sistema telefónico para a rede externa, onde PBX (Troca de Filial Privada) é um sistema de comutação telefônica instalado em uma organização privada com vários dispositivos internos.

Este guia é útil para configurar serviços SIP populares, como asterisco, Proxy SIP do Websphere, Fundição SIP, Elastix, FreeSWITCH, OpenPBX por Voicetronix, PBXInAFlash, FreePBX, OpenSIPs, Kamailio, 3CX, Servidor SIP do Office, etc, todos eles em alta disponibilidade e prontos para escalar.

Como o protocolo SIP funciona?

Vamos supor que temos dois chamadores, Bonnie e Clyde. Bonnie está ligando para Clyde. Em primeiro lugar, os telefones de Bonnie e Clyde devem ser registrados em um servidor SIP. O processo de registro entre os clientes e o serviço de registro é:

1. O cliente do softphone envia um REGISTE-SE! mensagem para o servidor SIP.
2. O servidor SIP responde com um 401 não autorizado mensagem incluindo um cabeçalho Autenticar WWW.
3. O cliente então reenviar o REGISTE-SE! pedido ao servidor SIP, incluindo o Autorização cabeçalho.
4. Se a autenticação estiver correta, o servidor SIP retornará um 200 OK resposta ao cliente. Nesse estágio, o cliente pode receber e iniciar chamadas.

Esse processo de registro também estará altamente disponível por meio do balanceador de carga de proxy que estamos propondo neste artigo.

Para entender melhor como uma chamada entre Bonnie e Clyde é realizada, veja abaixo as etapas definidas no protocolo.

1. Bonnie inicia uma ligação para Clyde enviando um CONVITE mensagem
2. Servidor SIP A passa o CONVITE mensagem para o servidor SIP do destinatário B
3. Enquanto isso, o servidor SIP A responde 100 TENTANDO mensagem para Bonnie
4. Servidor SIP B passa o CONVITE mensagem para Clyde
5. Enquanto isso, um 100 TENTANDO mensagem para o servidor SIP A
6. O dispositivo de Clyde é agora 180 RINGING e transmite para o servidor SIP B
7. Servidor SIP B envia isto 180 RINGING para o servidor SIP A
8. Servidor SIP A transmite isso 180 RINGING Bonnie
9. Clyde recebe a chamada e envia 200 OK mensagem
10. E transmite 200 OK mensagem para o servidor SIP B
11. Servidor SIP A transmite isso 200 OK mensagem para Bonnie
12. Uma conexão é estabelecida entre Bonnie e Clyde, onde Bonnie envia diretamente ACK para Clyde, e Bonnie e Clyde se comunicam diretamente entre si
13. Qualquer uma das partes se desconecta da chamada com um BYE
14. A outra parte envia de volta a confirmação 200 OK

Ambiente de balanceamento de carga SIP

Conhecendo as especificidades do protocolo SIP, o cenário que queremos alcançar neste artigo é poder dimensionar os servidores SIP para poder lidar com números maiores de softphones registrados e gerenciar números maiores de chamadas. O diagrama abaixo mostra a arquitetura de serviço em um data center.

Vamos ver a seguir como configurá-lo.

Configuração de balanceamento de carga SIP

Antes de configurar o serviço virtual, precisamos criar um IP virtual, como este endereço IP poderá receber TCP or UDP quadros. Para isso, vá para Rede> Interfaces Virtuais. Então clique em Ação> Criar Interface Virtual.

Em seguida, selecione Interface paiinterface Nome e seu IP Endereço:

Agora é hora de configurar facilmente o serviço virtual SIP nas portas padrão usadas pelos serviços SIP TCP e / ou UDP 5060 or 5061. Porta 5060 é comumente usado para tráfego e porta de sinalização não criptografados 5061 é normalmente usado para tráfego criptografado com TLS (Transport Layer Security).

Com o Zevenet Load Balancer, conseguimos essa configuração criando um LSLB perfil da fazenda L4xNAT com portas 5060 or 5061. No serviço virtual, as comunicações criptografadas e não criptografadas são suportadas ao mesmo tempo, se as portas estiverem listadas no serviço virtual.

Para fazer isso, vá para LSLB> Fazendas e crie um novo como mostrado abaixo.

Depois de criar, clique em Avançado, Selecione SIP as Tipo de Protocolo. Neste estágio, o proxy 4 SIP da camada será habilitado no serviço virtual atual para balancear corretamente o registro e as chamadas dos usuários. Além disso, recomendamos NAT as Tipo NAT mas DTA também pode ser usado para obter o IP de origem do cliente. Finalmente, clique em Atualizar para aplicar as alterações.

Finalmente, configure os backends, clique em Serviçose sob o Backends seção clique em Ação> Adicionar back-end.

Preencha o IP, Porta, Peso e clique no Salvar ação para aplicar as alterações.

Adicione quantos servidores SIP você precisar para dimensionar seu serviço. Agora você pode usar o IP virtual como o serviço virtual SIP em seus softphones e clientes de uma maneira altamente disponível, confiável e escalável.

Verificações de integridade avançadas do SIP

Nas versões mais recentes do Zevenet, você pode usar uma verificação de integridade avançada especificamente para serviços SIP em que o balanceador de carga executa chamadas SIP falsas para todos os servidores SIP configurados como back-end para garantir que os serviços de leitura SIP estejam funcionando corretamente.

Caso já não tenha criado um check_sip Comando Farm Guardian, depois crie-o no Monitorização> Farmguardian seção conforme mostrado abaixo.

Para entender melhor as opções incluídas no check_sip comando, por favor consulte a ajuda do verificador de saúde.

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

Dado nosso exemplo, podemos definir nosso verificador de saúde no Guardião da Fazenda seção conforme mostrado abaixo.

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

Observe que o HOST do token será alterado em tempo de execução com cada backend do SIP configurado no farm.

Cluster de entrega de aplicativos SIP

O Zevenet também fornece a capacidade de definir o serviço de entrega escalável SIP em alta disponibilidade usando um serviço de clustering entre duas unidades redundantes. Por favor implante outra unidade Zevenet e consulte o Sistema> Cluster seção para configurá-lo em alta disponibilidade.

Melhorando a segurança do SIP

Aplicar uma camada de segurança a um serviço SIP público é bastante fácil usando o módulo IPDS que permite listas negras, listas de blackhole em tempo real e proteção DoS entre outros. Por favor, consulte o IPDS seção do menu principal para obter mais detalhes sobre a proteção de um serviço SIP público.

Configuração de clientes de telefone VoIP

Assim que nosso serviço SIP estiver pronto para escalar, configurar alta disponibilidade e com segurança aprimorada, é hora de configurar o novo serviço nos softphones e clientes. Nesse caso, recomendamos configurar uma entrada DNS resolvendo para o endereço VIP ou um endereço IP público para o serviço virtual. Tal DNS or FQDN O nome do nosso serviço SIP virtual será o único a ser usado no lado do cliente, em vez de ter um endereço IP SIP real configurado. Essa configuração fornece a flexibilidade de balancear a carga dos clientes de maneira fácil e automática.

Por outro lado, recomendamos configurar um timeout de keep-alive mais baixo no lado do cliente para forçar o registro mais normalmente, como no caso de qualquer servidor SIP ser detectado como inativo, o cliente avisa e tenta reconectar rapidamente para outro.

Agora, aproveite o seu serviço escalável SIP!

Compartilhar no:

Documentação sob os termos da Licença de Documentação Livre GNU.

Esse artigo foi útil?

Artigos Relacionados