Как сбалансировать нагрузку и создать высокодоступные сервисы SIP и PBX

РАЗМЕЩЕНО 6 марта, 2019

Обзор

VoIP стенды для Голос по интернет-протоколу, который охватывает любые телефонные звонки, сделанные через Интернет, но для того, чтобы сделать его реальным SIP протокол был определен.

SIP or Протокол инициации сеанса это протокол, который управляет мультимедийными сеансами связи, включая вызовы (голосовые и видео), поэтому мы можем сказать, что SIP является одним из конкретных протоколов, которые VoIP опирается на.

В сеансе общения со СМИ SIP Протокол отвечает за операции сигнализации, такие как инициирование и завершение голосовых или видеозвонков. Сообщения, которые SIP Можно установить одноадресную передачу с двумя сторонами или многоадресную передачу с несколькими сторонами. Сквозь SIP Протокол, существующие звонки могут быть изменены, например, приглашая другого участника. SIP разработан таким образом, который не зависит от протокола транспортного уровня и может использоваться с UDP, TCP SCTP (Протокол управления потоком передачи). SIP может также работать вместе с другими протоколами, которые могут указывать формат мультимедиа и переносить мультимедиа после SIP устанавливает вызов. Маршрутизация телефонных звонков также возможна из АТС телефонная сеть к внешней сети, где АТС (Частная Филиал Обмен) - это телефонная коммутационная система, которая устанавливается в частной организации с несколькими внутренними устройствами.

Это руководство полезно для настройки популярных служб SIP, таких как звездочка, Websphere SIP-прокси, SIP Foundry, Elastix, FreeSWITCH, OpenPBX от Voicetronix, PBXInAFlash, FreePBX, OpenSIPS, Kamailio, 3CX, Офисный SIP-сервери т.д., все они в высокой доступности и готовы к масштабированию.

Как работает протокол SIP?

Предположим, у нас есть два звонка, Бонни и Клайд. Бонни звонит Клайду. Прежде всего, телефоны Бонни и Клайда должны быть зарегистрированы на SIP-сервере. Процесс регистрации между клиентами и регистратором:

1. Клиент программного телефона отправляет РЕГИСТРАЦИЯ сообщение на SIP-сервер.
2. SIP-сервер отвечает 401 Несанкционированный сообщение с заголовком WWW-Authenticate.
3. Затем клиент отправляет РЕГИСТРАЦИЯ запрос к SIP-серверу, включая Авторизация заголовка.
4. Если аутентификация правильная, SIP-сервер возвращает 200 ОК ответ клиенту. На этом этапе клиент может принимать и инициировать вызовы.

Этот процесс регистрации также будет доступен через балансировщик нагрузки прокси, который мы предлагаем в этой статье.

Чтобы лучше понять, как выполняется вызов между Бонни и Клайдом, см. Ниже шаги, определенные в протоколе.

1. Бонни начинает звонок Клайду, отправив ПРИГЛАШЕНИЕ сообщение
2. SIP сервер A проходит ПРИГЛАШЕНИЕ сообщение на SIP-сервер получателя B
3. Между тем, SIP-сервер A ответы 100 TRYING сообщение для Бонни
4. SIP сервер B проходит ПРИГЛАШЕНИЕ сообщение Клайду
5. Между тем, 100 TRYING сообщение на SIP-сервер A
6. Устройство Клайда сейчас 180 RINGING и передает его на SIP-сервер B
7. SIP-сервер B отправляет это 180 RINGING на SIP сервер A
8. SIP сервер A передает это 180 RINGING Бонни
9. Клайд принимает звонок и отправляет 200 ОК сообщение
10 И передает это 200 ОК сообщение на SIP-сервер B
11 SIP сервер A передает это 200 ОК сообщение для Бонни
12 Связь устанавливается между Бонни и Клайдом, куда Бонни отправляет прямые ACK Клайду, и Бонни и Клайд общаются друг с другом напрямую
13 Любая из сторон отключается от вызова с ПОКА
14 Другая сторона отправляет обратно подтверждение 200 ОК

Среда балансировки нагрузки SIP

Зная специфику протокола SIP, сценарий, который мы хотим реализовать в этой статье, заключается в том, чтобы иметь возможность масштабировать серверы SIP, чтобы иметь возможность обрабатывать большее количество зарегистрированных программных телефонов и управлять большим количеством вызовов. На диаграмме ниже показана сервисная архитектура в центре обработки данных.

Посмотрим ниже, как его настроить.

Конфигурация балансировки нагрузки SIP

Перед настройкой виртуального сервиса нам нужно создать выделенный виртуальный IP, так как этот IP-адрес сможет получить TCP or UDP кадры. Чтобы достичь этого, перейдите к Сеть> Виртуальные интерфейсы, Затем нажмите Действие> Создать виртуальный интерфейс.

Затем выберите Родительский интерфейсинтерфейс Имя и фамилия и его IP Адрес:

Теперь пришло время легко настроить виртуальную службу SIP в стандартных портах, используемых службами SIP. TCP и / или UDP 5060 or 5061, порт 5060 обычно используется для незашифрованного трафика трафика и порта 5061 обычно используется для трафика, зашифрованного с TLS (Transport Layer Security).

Используя Zevenet Load Balancer, мы достигаем этой конфигурации, создавая LSLB профиль фермы L4xNAT с портами 5060 or 5061, В виртуальной службе поддерживается как зашифрованная, так и незашифрованная связь, если порты указаны в виртуальной службе.

Для этого перейдите к LSLB> Фермы и создайте новый, как показано ниже.

После создания нажмите на Дополнительно, наведите на SIP as Тип протокола, На этом этапе SIP-прокси уровня 4 будет включен в текущем виртуальном сервисе для правильной балансировки нагрузки при регистрации и вызовах пользователей. Также мы рекомендуем NAT as Тип NAT но ДТА также может использоваться для получения IP-адреса источника клиента. Наконец, нажмите на Обновить для того, чтобы применить изменения.

Наконец, настройте бэкэнды, нажмите на Услугии под Backends разделом нажмите на Действие> Добавить серверную часть.

Заполните IP, порт, Вес и нажмите на Сохраните действие, чтобы применить изменения.

Добавьте столько SIP-серверов, сколько вам нужно для масштабирования вашего сервиса. Теперь вы можете использовать Виртуальный IP как виртуальный сервис SIP в ваших программных телефонах и клиентах в доступной, надежной и масштабируемой форме.

Расширенные проверки здоровья SIP

В последних выпусках Zevenet вы можете использовать расширенную проверку работоспособности специально для сервисов SIP, где балансировщик нагрузки выполняет фиктивные SIP-вызовы на все SIP-серверы, которые настроены в качестве бэкэндов, чтобы убедиться, что сервисы чтения SIP работают и работают правильно.

В случае, если нет уже созданного check_sip Ферма Guardian, а затем создать его в Мониторинг> Farmguardian раздел, как показано ниже.

Чтобы лучше понять варианты, включенные в check_sip Команда, пожалуйста, обратитесь к помощи проверки работоспособности.

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

Учитывая наш пример, мы можем определить нашу проверку здоровья в Ферма Страж раздел, как показано ниже.

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

Обратите внимание, что токен HOST будет изменен во время выполнения с каждым SIP-сервером, настроенным в ферме.

Кластеризация доставки приложений SIP

Zevenet также предоставляет возможность настроить масштабируемую службу доставки SIP в режиме высокой доступности, используя службу кластеризации между двумя избыточными модулями. Пожалуйста, разверните другое подразделение Zevenet и обратитесь к Система> Кластер раздел, чтобы настроить его в высокой доступности.

Повышение безопасности SIP

Применить уровень безопасности к общедоступной службе SIP довольно легко, используя модуль IPDS, который позволяет создавать черные списки, списки чёрных дыр в реальном времени и защиту DoS среди других. Пожалуйста, обратитесь к IPDS раздел из главного меню, чтобы получить более подробную информацию о защите публичной службы SIP.

Конфигурация клиентов VoIP телефона

Когда наша служба SIP готова к масштабированию, настройке высокой доступности и повышенной безопасности, пора настроить новую службу в программных телефонах и клиентах. В этом случае мы рекомендуем настроить запись DNS, разрешающую VIP-адрес или общедоступный IP-адрес для виртуальной службы. Такие DNS or Полное доменное имя имя для нашей виртуальной службы SIP будет использоваться на стороне клиента вместо того, чтобы настраивать реальный IP-адрес SIP. Эта конфигурация обеспечивает гибкость для простой и автоматической балансировки нагрузки клиентов.

С другой стороны, мы рекомендуем настроить более низкое время ожидания активности на стороне клиента для более частой принудительной регистрации, так как в случае, если какой-либо SIP-сервер обнаруживается как неработающий, клиент замечает это и повторяет попытку быстрого повторного подключения к другой.

Теперь просто наслаждайтесь масштабируемой услугой SIP!

Поделись:

Документация в соответствии с условиями GNU Free Documentation License.

Была ли эта статья полезна?

Статьи по теме