Отказоустойчивый кластер 3CX представляет собой два реплицируемых сервера АТС. Когда основной сервер выходит из строя, в работу включается сервер-реплика, минимизируя время отказа телефонии. В этой статье мы рассмотрим, как правильно конфигурировать отказоустойчивость АТС 3CX.

Лицензирование


Для использования отказоустойчивости вам потребуется одна лицензия Enterprise (ENT) или Professional (PRO). В лицензии ENT установлено время жизни (TTL) А-записи FQDN сервера 3CX в 5 минут. В лицензии PRO TTL А-записи установлено в 6 часов. Это значит, что в редакции PRO время аварийного переподключения IP-телефонов, клиентов 3CX, 3CX SBC и веб-клиента будет значительно выше.

Реализация отказоустойчивости


В 3CX используется принцип активного-пассивного кластера с репликацией конфигурации раз в минимум 24 часа. Основной (активный) узел выполняет обработку VoIP вызовов, а резервный (пассивный) узел мониторит активный хост. При выходе из строя активного хоста (независимо от причины), пассивный хост включается в работу примерно с того же состояния. Механизм определения выхода из строя активного хоста зависит от настроек на пассивном хосте и рассматривается ниже.

Поддерживаемые топологии сети


Отказоустойчивый кластер 3CX рассчитан на работу в следующих топологиях:

  • Локальный сервер (NAT)
  • Облако (публичный сервер)


Отказоустойчивость между локальным и облачным узлом официально не поддерживается. Также предполагается, что FQDN сервера 3CX предоставлено и поддерживается компанией 3CX. Разумеется, вы можете использовать более сложную топологию и собственное FQDN имя, но в этом случае управление DNS записями и переконфигурированием устройств является зоной ответственности системного администратора.
 

Предварительные требования


Перед запуском отказоустойчивого кластера на 2 серверах должен быть установлен сервер 3CX следующим образом:

  • Одна 3CX в облаке (первый публичный IP) и другая АТС в облаке (второй публичный IP) с FQDN именем от компании 3CX
  • Оба сервера устанавливаются с идентичными настройками — одинаковые FQDN, SSL сертификат и порты SIP, туннеля и веб-сервера.
  • Во вкладке автонастройки IP-телефонов необходимо указывать интерфейс как FQDN, а не как IP-адрес (см. ниже).

В других топологиях, например, одном узле в частной сети, а другом — в облаке, необходимо использовать скрипты для обновления DNS А-записей. Скрипты должны выполняться в момент аварийного переключения. Ниже мы поговорим об этом подробнее.

Настройка основного узла


Предположим, что на основном (активном) сервере уже установлена и настроена 3CX v15.5.



Для всех добавочных номеров укажите вариант автонастройки IP-телефонов через FQDN (вкладка Автонастройка телефона, опция Выберите интерфейс).


В разделе Резервирование нажмите кнопку Расположение и выберите Google Drive. Вы можете выбрать другое расположение, доступное с обоих серверов. В нашем примере кластер хранит конфигурацию в папке SIP3CXCOMBackups на Google Drive.



Нажмите кнопку План резервного копирования и выберите данные, которые необходимо синхронизировать в кластере, а также время синхронизации. Рекомендуется настроить ежедневную ночную синхронизацию, как показано выше. Имя файла резервной копии 3CXScheduledBackup.zip разерезвировано в 3CX для последней выгруженной конфигурации и используется обоими узлами кластера.



В этом же разделе нажмите кнопку Отказоустойчивость, включите опцию Включить резервное копирование и выберите Режим резервного переключения — Основной.
На этом настройка активного узла кластера завершена.

Настройка резервного узла


На резервном сервере установите 3CX, учитывая предварительные требования, перечисленные выше. Обратите внимание — если у вас основной и резервный сервер используют разные публичные IP-адреса, после установки резервного сервера общее FQDN имя кластера будет резолвится на резервный узел (а вначале, после установки основного сервера, оно резолвится на его IP). Для того, чтобы снова связать FQDN с IP-адресом основного сервера, на основном сервере в разделе Главная кликните на ссылке Лицензия, а затем нажмите Изменить и OK. Теперь FQDN снова начнет указывать на IP основного сервера.
 

Перейдите в раздел Резервирование и нажмите кнопку План восстановления. Включите восстановление и укажите время восстановления (разумеется, оно должно быть немного позже времени резервного копирования). Затем установите опцию Не запускать сервисы после восстановления.


В этом же разделе нажмите кнопку Отказоустойчивость, включите опцию Включить резервное копирование и выберите Режим резервного переключения — Резервный. Укажите IP адрес основного сервера (в нашем примере 1.1.1.1) и сервисы, которые следует мониторить: SIP Server, Web Server или Tunnel Server. Установите интервал проверки и логику срабатывания переключения — при «падении» только одного сервиса или всех сервисов.

Если резервный сервер обнаруживает отказ основного, он включается в работу, используя данные последней восстановленной резервной копии. Кроме того, он уведомляет DNS 3CX (который расположен в инфраструктуре Google) об изменении A-записи FQDN на IP-адрес резервного узла.

Важно, чтобы «упавший» основной сервер был полностью выключен, поскольку если на нем остались работающие сервисы 3CX, возможен конфликт с аналогичными сервисами на резервном узле.

Стоит отметить, что 3CX официально не поддерживает работу FXO или FXS шлюзов в отказоустойчивом кластере, поскольку взаимодействие шлюзов и сервера в такой топологии зависит от особенностей вендора, конкретной модели и версии прошивки.

Скрипты в сложной топологии


Если у вас используется собственное FQDN в топологии LAN-LAN или топология LAN-Cloud, необходимо использовать специальные скрипты (в Windows это Powershell скрипты отказоустойчивости для Active Directory), запускаемые с определенными привилегиями.
По умолчанию, скрипты, которые могут выполняться в процессе резервного переключения, выполняются с привилегиями сервиса 3CX Event Notification Manager (по умолчанию Local System). Как правило, для выполнения скрипта нужны привилегии управления DNS сервером (dnscmd или psexec).



Кликните по сервису в соответствующей оснастке Windows и на вкладке Log On измените учетную запись с Local System на ту, которая имеет соответствующие привилегии для конфигурирования DNS, и перезапустите сервис. Рекомендуется создать отдельного пользователя с данной привилегией и задать ему неизменяемый пароль.

Комментарии (5)


  1. Shaz
    01.05.2018 12:34

    Лицензия определяет TTL А-записи? Серьезно?


  1. Minipyh
    02.05.2018 19:05

    судя по тексту далее, осмелюсь предположить что у них и NS свой



  1. bravo-ej
    03.05.2018 11:09

    Вы решили переплюнуть Avaya в способе лицензировать всё подряд? :) пора писать про отечественные софт свичи без этого идиотизма


    1. snezhko Автор
      03.05.2018 16:30

      Данная статья расположена в корпоративном блоге компании 3CX. А про отечественные софтсвитчи информация доступна в соотвествующих корпоративных блогах разработчиков.