|
Версия 6.3 |
|
| |||||||||||||||||||||||||||||||||
Задачи Реального ВремениPBX Задачи в CommuniGate Pro взаимодействуют при помощи отправки событий в описатели задач. Описатель задачи - это объект-ссылка, описывающий PBX Задачу, Сессию или Сигналы Реального Времени. В Кластерной среде CommuniGate Pro Описатель задачи содержит также адрес сервера - члена Кластера, на котором обрабатывается PBX Задача, Сессия или Сигнал. Когда событие должно быть передано другому члену кластера, оно доставляется при помощи внтутрикластерного протокола CLI/API. Получатель события может ответить, используя описатель задачи отправителя; в этом случае снова будет задействован внутрикластерный протокол CLI/API для доставки события-ответа. PBX Задачи обычно задействуют Медиа Каналы. Чтобы обеспечить возможность обмена медиа с внешними участникам, Задачи PBX должны запускаться только на тех членах Кластера, которые имеют непосредственный доступ к Интернет. Плечи Звонков XIMSSКогда сессия XIMSS инициирует звонок, она создаёт объект Плечо Звонка. Эти Плечи Звонков управляют медиа каналами XIMSS пользователя, и они должны быть в состоянии обмениваться медиа данными с внешними участниками, поэтому они должны запускаться только на тех членах Кластера, которые имеют непосредственный доступ к Интернет. Когда компонент Сигнал направляет входящий звонок в сессию XIMSS, он создаёт объект Плечо Звонка на том же члене Кластера, который обрабатывает Сигнал с запросом на входящий звонок. Объект Плечо Звонка затем "присоединяется" к сессии XIMSS (запущенной на каком-либо Бэкенд-Сервере, который может быть другим членом Кластера). Если сессия XIMSS и её Плечо Звонка запущено на другом члене Кластера, то они взаимодействуют через специальные события, доставляемые при помощи внутрикластерного протокола CLI/API. Сигналы
Обработка Сигналов Реального Времени требует обращения к DNS Клиенту, создания запросов SIP and XMPP.
Когда Кластер настроен так, что только фронтенды имеют соединения с публичной сетью, некоторые услуги могут осуществляться только через фронтенды. Даже когда Приложения Реального Времени и Плечи Звонков настроены для обработки только на Фронтенд-Серверах, Сигналы Реального Времени могут генерироваться ми на других членах кластера: Сессии XIMSS и XMPP, Автоматические Правила и другие компоненты могут отправлять Мгновенные сообщения, Наборы Событий могут создавать Сигналы уведомлений и так далее. Когда Сигнал Реального Времени обрабатывается на Фронтенд-Сервере, он использует внутрикластерный протокол CLI/API для получения данных Пользователя (например, регистрации SIP) или для выполнения запрошенных действий (по доставки запроса SUBSCRIBE или XMPP IQ, или для начала звонка). Настройка Обработки Сигналов и Плеч ЗвонковДля настройки Создания Плечей Звонков откройте через Веб Интерфейс Администратора в области Установки страницу Общее и нажмите на ссылку Кластеры:
SIPВозможности SIP Farm® CommuniGate Pro позволяют нескольким членам Кластера обрабатывать пакеты с SIP запросами, распределяемыми для них случайным образом Балансировщиком Нагрузки. Настройте Балансировщик Нагрузки на распределение входящих SIP UDP пакетов (по умолчанию, порт номер 5060) на порты SIP выбранных членов Кластера, входящих в SIP-Ферму. Настройте членов SIP-Фермы: через Веб Интерфейс Администратора откройте в области Установки страницу Общее и нажмите на ссылку Кластеры:
Кластер CommuniGate Pro учитывает информацию обо всех своих Серверах, у которых опция SIP-Ферма установлена в значение Участник. Входящие UDP пакеты и TCP соединения распределяются по этим Серверам при помощи обычных Балансировщиков Нагрузки. Получающий Сервер определяет, должен ли полученный пакет обрабатываться на конкретном Сервере Фермы: он проверяет, не содержит ли пакет ответ или подтверждением (ACK) существующей транзакции и не направляется ли он на Узел, созданный на конкретном Сервере. В этом случае пакет ретранслируется правильному члену Кластера: Пакеты, не направленные конкретным членам Кластера при помощи алгоритмов SIP-Фермы CommuniGate Pro, распределяются по всем доступным в настоящее время Членам Фермы. Для обработки Сигнала членам Кластера может потребоваться получение определённой информации Пользователя (регистрация, настройки и т.п.). Если член Кластера не может открыть Пользователя (из-за того, что этот член Кластера является Фронтенд-Сервером или по причине того, что Пользователь открыт другим Бэкенд-Сервером), то он использует Внутри-Кластерный Интерфейс Командной Строки CLI/API для получения информации от соответствующего Бэкенд-Сервера. Для реализации SIP-Фермы могут использоваться различные конфигурации сети и Балансировщиков Нагрузки: Балансировщик Нагрузки - NAT с Одним IPЭтот метод используется для небольших внедрений Кластеров в ситуациях, когда Фронтенд-Серверы не имеют прямого доступа к Интернет, и Трансляцию Сетевых Адресов для них выполняет сам Балансировщик Нагрузки. Сначала выберите "виртуальный" IP адрес (VIP) - это единственный адрес, который будут "видеть" пользователи SIP вашего Кластера:
Фронтенд-Серверы имеют IP адреса F1,F2, F3, ... Настройте Балансировщик Нагрузки на обработку входящих UDP пакетов, получаемых на этот VIP адрес и порт номер 5060:
Специфические для SIP техники, реализованные в некоторых Балансировщиках Нагрузки, позволяют им отправлять "связанные" между собой запросы на один сервер. Обычно такие техники основываются на поле запроса Call-ID и очень часто работают некорректно. Технология SIP-Фермы, используемая в CommuniGate Pro, гарантирует правильную обработку запросов, если запрос или пакет с ответом получены любым из членов SIP-Фермы. Следовательно, CommuniGate Pro не требует использования в Балансировщике Нагрузки специфических для SIP техник. Многие Балансировщики Нагрузки, даже если они и не используют никакую специфичную SIP технику, создают "привязку к сессии" для входящих UDP запросов, точно также, как они обрабатывают входящие TCP соединения.Таблица Привязки для произвольного порта Балансировщика Нагрузки v (и VIP адреса Балансировщик Нагрузки) содержит пару из IP адреса и порта: X:x <-> F1:f Где X:x является IP адресом удалённого (отправляющего) устройства, а F1:f является IP адресом и номером порта Фронтенд-Сервера, на которые направляется входящий пакет. Когда удалённое устройство пересылает запрос, эта запись в таблице позволяет Балансировщику Нагрузки отправлять запрос на тот же Фронтенд-Сервер (обратите внимание, что это не требуется для SIP-Фермы CommuniGate Pro). Эти Балансировщики Нагрузки обычно создают "привязку к сессии" также и для исходящих UDP запросов: когда пакет отправляется с адреса/порта какого-либо Фронтенд-Сервера F2:f на какой-нибудь удалённый адрес/порт Y:y, в таблице Привязки Балансировщика Нагрузки создаётся запись: Y:y <-> F2:f
Когда удалённое устройство отправляет пакет с ответом, эта запись в таблице позволяет Балансировщику Нагрузки отправить ответ на "правильный" Фронтенд-Сервер (обратите внимание, что это не требуется для SIP-Фермы CommuniGate Pro). SIP-Ферма CommuniGate Pro распределяет пакеты SIP запросов, ретранслируя их между Фронтенд-Серверами в соответствии с алгоритмами работы SIP-Фермы; такие алгоритмы перенаправляют пакеты с ответами SIP на Фронтенд-Сервер, отправивший соответствующий SIP запрос.
Для того, чтобы избежать появления вышеописанных проблем, уточните у производителя вашего Балансировщика Нагрузки что Балансировщик Нагрузки действительно не использует "привязку к сессии" для UDP порта 5060. Балансировщик нагрузки - NAT с Несколькими IPВ этой конфигурации Фронтенд-Серверы имеют прямой доступ к Интернет (у них есть IP адреса, напрямую "видимые" из Интернет).
Балансировщики Нагрузки с "привязкой к сессии" UDP будут иметь такие же проблемы, как описано выше. Балансировщик Нагрузки DSRDSR (Direct Server Response, Прямой Ответ Сервера) является наиболее предпочтительным методом Балансировки Нагрузки при крупных установках. Для использования DSR метода создайте "псевдоним" для сетевого интерфейса "внутренней петли" (loopback network interface) каждого Фронтенд-Сервера. Стандартным адресом для внутренней петли является 127.0.0.1; создайте для неё псевдоним с VIP адресом и маской сети 255.255.255.255:
Обратите внимание: Из-за того, что для перенаправления входящих пакетов используются MAC адреса, Балансировщик Нагрузки и все Фронтенд-Серверы должны входить в один сегмент сети; между Балансировщиком Нагрузки и Фронтенд-Серверами не должно быть Маршрутизатора. Обратите внимание: при создании сетевого "псевдонима", откройте через Веб Интерфейс Администратора CommuniGate Pro в разделе Общее страницу Информация и нажмите на кнопку Обновить, чтобы сервер мог обнаружить добавленный IP адрес. DSR метод прозрачен для всех сервисов, работающих через TCP (включая SIP через TCP/TLS) и для него не требуются никакие дополнительные настройки Сервера CommuniGate Pro: когда на локальный VIP адрес принимается TCP соединение, исходящие пакеты для такого соединения будут всегда иметь в качестве адреса источника тот же самый VIP адрес. Для того, чтобы использовать DSR метод для SIP UDP, конфигурация Фронтенд-Серверов CommuniGate Pro должна быть изменена:
Повторите эти изменения в настройке для всех Фронтенд-Серверов. RTP МедиаКаждый Медиа поток, терминируемый CommuniGate Pro (поток, ретранслируемый при помощи медиа прокси или поток, обрабатываемый в канале медиа миксера) связывается с конкретным членом Кластера. Балансировщик Нагрузки должен гарантировать, что все входящие Медиа пакеты доставляются надлежащему члену Кластера. Метод с Одним IPМетод "с Одним IP" целесообразно применять при небольших и средних установках.Члены Кластера имеют внутренние адреса L1, L1, L3 и т.д. Балансировщик Нагрузки имеет внешний адрес G0. Сетевые Настройки каждого Члена Кластера изменяются таким образом, чтобы Медиа Порты, используемые каждым Членом, были различны: порты 10000-19999 у Члена L1, порты 20000-29999 у Члена L2, порты 30000-39999 у Члена L2 и т.д. Все пакеты, приходящие на адрес G0 на стандартный порт (5060 для SIP) распределяются по адресам L1, L2, L3, на эти же порты. Все пакеты, приходящие на адрес G0 на медиа порты распространяются в соответствии с диапазоном портов:
Настойка Общесерверного Адреса WAN IP должна быть пустой у всех Членов Кластера. Этот метод не должен использоваться при больших установках (за исключением случаев, когда сервер не терминирует медиа вообще или терминирует очень в небольших количествах): он позволяет вам разместить только 64000 портов для всех медиа потоков Кластера (каждый AVP поток забирает 2 порта, так что общее число аудио потоков ограничено 32000, а если используется видео (вместе с аудио), то такой Кластер не сможет обслуживать более чем 16000 одновременных аудио/видео сессий. Балансировщик Нагрузки с Несколькими IP без NATМетод "с Несколькими IP" полезен в случае крупных установок. Каждый Фронтенд-Сервер имеет свой собственный IP адрес и при создании на Фронтенд-Сервере Медиа Канала или Медиа Прокси, этот уникальный IP адрес используется для прямой коммуникации между Сервером и клиентским устройством (или удалённым сервером). Сетевые Настройки каждого Члена Кластера могут использовать одинаковые диапазоны Медиа Портов, и, таким образом, число одновременных потоков не ограничивается 64000 портами. В простейшем случае все Фронтенд-Серверы имеют "реальные" IP адреса, то есть они соединены непосредственно с Интернет. Если Балансировщик Нагрузки использует DSR метод (смотрите выше), то он не должен заботится о пакетах, отправляемых не с VIP адресов Фронтенд-Серверов: эти пакеты должны либо проходить мимо Балансировщика Нагрузки, либо он не должен модифицировать их и должен доставлять "как есть". Если Балансировщик Нагрузки использует "нормальный" метод, то он должен быть настроен на обработку только тех портов, по которым производится "балансировка нагрузки"; пакеты, поступающие от/на "других портов" (такие, как порты из диапазона Медиа Портов) должны передаваться Балансировщиком Нагрузки без каких бы то ни было модификаций. Метод с Несколькими IP с NATМожно использовать метод с Несколькими IP даже если Фронтенд-Серверы не имеют "реальных" IP адресов, а используют адреса "локального типа" L1, L1, L3 и т.д.Настройте Балансировщик Нагрузки на использование реальных адресов G1, G2, G3, ... - в дополнение к VIP IP адресу, используемому для доступа к сервисам CommuniGate Pro. Настройте Балансировщик Нагрузки на "отображение" его внешнего IP адреса G1 на адрес Фронтенд-Сервера L1, так, чтобы все пакеты, приходящие на IP адрес G1, порт g (G1:g) направлялись на Фронтенд-Сервер с адресом L1 и тот же самый порт g (L1:g). Балансировщик Нагрузки может изменять пакеты для адреса назначения на L1 или оставлять их как есть (G1); когда Балансировщик Нагрузки получает пакет от адреса L1, порт l (L1:l) и этот порт не используется в операциях, по которым балансируется нагрузка (SMTP, POP, IMAP, SIP и т.д), то Балансировщик Нагрузки должен перенаправлять этот пакет наружу, заменяя адрес источника L1 на G1: L1:l->G1:l. Настройте Балансировщик Нагрузки аналогичным образом на "отображение" его внешних IP адресов G2, G3, ... на другие IP адреса Фронтенд-Серверов L2, L3, ... В разделе Установки в Веб Интерфейсе Администратора произведите соответствующие настройки Фронтенд-Серверов CommuniGate Pro. Откройте страницы Сеть, и укажите там "отображаемые" IP адреса как Общесерверные WAN IP Адреса: G1 для Фронтенд-Сервера, имеющего IP адрес L1, G2 для Фронтенд-Сервера, имеющего IP адрес L2 и т.д. |