Если вы планируете подключить к системе 3CX SIP-транки от операторов связи или удаленных пользователей, и ваша АТС расположена в частной сети — на сетевом экране должна быть выполнена статическая публикация («проброс») портов.

VoIP-приложения используют протокол RTP для передачи мультимедийных потоков (аудио и видео). При прохождении пограничных сетевых устройств (сетевых экранов и маршрутизаторов) в работе протокола могут возникать сложности. Это связано с тем, что RTP использует случайные номера портов для отправки и получения мультимедиа-трафика. Неверная конфигурация сетевого экрана проявляется как односторонняя слышимость или вообще отсутствие звука от VoIP-провайдера и удаленных пользователей.

Проблема VoIP с симметричным NAT (Symmetric NAT)


При использовании симметричного NAT, пограничное сетевое устройство динамически изменяет номер порта, на который принимается аудиопоток. Например, при исходящем вызове через SIP-транк оператора, 3CX сперва делает STUN-запрос для определения своего внешнего IP-адреса и текущего номера порта. Затем этот адрес и порт передаются SIP-серверу оператора для взаимных коммуникаций. Но в это время ваш сетевой экран динамически закрывает этот порт (который уже был передан оператору — указан в заголовке INVITE). Возникает сбой передачи аудио. Очевидно, что из-за этой особенности невозможно обеспечить надежную работу VoIP. В руководствах по настройке сетевых экранов такая технология называется симметричный NAT (Symmetric NAT).

Решение проблемы с односторонней слышимостью в VoIP — Full Cone NAT


Для решения проблемы с односторонней слышимостью (или полной «тишиной») следует настроить так называемый конический NAT (Full Cone NAT), который также известен как NAT «один-в-один». В нем нужные порты на внешнем адресе маршрутизатора маппируются (или «пробрасываются») на определенный внутренний адрес (номер порта сохраняется). Внешний хост обменивается RTP-пакетами с внутренним хостом, отправляя их сперва на внешний адрес маршрутизатора и внешний (маппированный) порт.

На самом деле, подавляющее большинство сетевых устройств поддерживают этот режим. Как правило, он называется «Static port mapping». Статическая публикация гарантирует, что определенный порт всегда остается открытым и никогда не изменяется сетевым экраном. Некоторые очень дешёвые маршрутизаторы некорректно реализуют эту функцию, но большинство, как было сказано, позволяют нормально настроить «проброс» портов. В конце статьи приводятся примеры соответствующей настройки различных сетевых устройств.

Проверка корректности работы сетевого экрана сервисом 3CX Firewall Checker


Хороший способ проверки конфигурации сетевого устройства (выяснения, не находитесь ли вы за Symmetric NAT и других проблем с настройкой) — использование сервиса 3CX Firewall Checker.

3CX Firewall Checker позволяет заранее проверить, что ваше пограничное сетевое устройство корректно обрабатывает VoIP-трафик от SIP-операторов, мостов 3CX, внешних SIP-клиентов и подключений по технологии 3CX Tunnel. Рассмотрим на простом примере, как использовать этот сервис. Для примера примем, что сервер 3CX имеет адрес 192.168.0.100, тестирование проводится на порту 9500, а внешний адрес вашей сети 11.22.33.44.

Как было сказано, корректная публикация порта означает, что любой исходящий пакет UDP от сервера АТС с адресом источника source IP::Port — 192.168.0.100::9500 должен дойти до получателя (обычно это SIP-сервер оператора связи, удаленный IP-телефон или другая АТС 3CX) с «переписанным» адресом источника source IP::Port — 11.22.33.44::9500. Несмотря на то, что происходит трансляция адреса (которая необходима для маршрутизации пакета в публичной сети WAN), порт пакета не изменяется. Кроме того, любой UDP пакет, приходящий из WAN, с адресом получателя destination IP::Port — 11.22.33.44::9500 должен достигнуть сервер 3CX с адресом destination IP::Port — 192.168.0.100::9500. 3CX Firewall Checker как раз и используется для проверки корректного преобразования адресов, а также выясняет другую важную.

Для запуска 3CX Firewall Checker зайдите в интерфейс управления 3CX > раздел Главная > секция Состояние АТС > нажмите Сетевой экран > Запустить.



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

Внимание: Запуск 3CX Firewall Checker останавливает некоторые сервисы 3CX, поэтому в период тестов АТС будет недоступна. Если тестирование порта прошло успешно, оно занимает 1 сек. Неуспешное тестирование порта растягивается на 5-10 сек. По умолчанию, тестируются порты в диапазоне 9000 – 10999. Если изначально все настроено корректно, тестирование займет не более минуты. Если возникнут проблемы — тестирование затягивается на 4-9 мин. Однако в любой момент можно остановить тест.

Сервис использует STUN-сервер компании 3CX, который должен быть установлен в разделе Параметры > Сеть > Публичный IP. Некоторые сетевые экраны эту проверку могут ошибочно квалифицировать как сканирование портов. Если это происходит, 3CX Firewall Checker сообщает о проблеме в самом начале тестирования. Поэтому в сетевом экране следует отключить проверку на сканирование перед началом тестирования.

Тесты 3CX Firewall Checker


Утилита проверяет корректность настройки оборудования, делая различные запросы к STUN-серверам. Проводятся два теста.

Доступность Интернет


Этот тест проверяет доступность серверов STUN с проверяемых портов сервера 3CX. Также проверяется работа DNS (STUN-серверы в 3CX указаны по FQDN).  

Если этот тест не пройден, возможны следующие проблемы:

  • Общая проблема доступа в Интернет. Если на сервере установлен браузер, попробуйте просто зайти на какой-то сайт. Возможно, вам нужно открыть доступ с сервера АТС в интернет по портам, указанных в этом руководстве.
  • Тест может не пройти, если STUN-сервер недоступен. Проверьте настройки в разделе Параметры > Сеть > Публичный IP или используйте резервный сервер.
  • Проверьте, какой порт указан для STUN (по умолчанию 3478)
  • Убедитесь, что сетевой экран на самом сервере 3CX, например брандмауэр Windows, разрешает подключение на тестируемые порты. Антивирусы или другие программы безопасности также могут блокировать порты. Отключите или даже полностью удалите их с сервера на время тестирования (простое отключение не всегда помогает).
  • Блокировать порты могут также на стороне вашего интернет-оператора — стоит исключить эту возможность.

Корректность публикации портов (Full Cone NAT)


Этот тест проверяет способность сервера, находящегося в Интернет, коммуницировать с сервером 3CX во внутренней сети. Тестируется настройка трансляции портов «один в один» (Full Cone NAT).

3CX Firewall Checker отправляет запрос на STUN-сервер с (номера) порта, который проверяется, и запрашивает STUN-сервер создать соединение с сервером АТС по этому порту с внешнего IP-адреса. Если второй тест не прошел, проверьте следующие настройки:

  • Ваш сетевой экран должен иметь статическое правило публикации портов «один в один». Недорогие устройства, как правило, предлагают только такой тип правил.
  • Для некоторых портов требуется правило как для TCP, так и для UDP трафика. См. список портов, необходимых для работы 3CX.

Результаты теста / сообщения об ошибках


Перечислим результаты теста и ошибки, которые возвращает Firewall Checker.

Success – Port forwarding is correctly implemented for this port. VoIP can work. This configuration is supported (Успех — публикация порта выполнена корректно. VoIP-коммуникации будут работать. Данная конфигурация поддерживается 3CX).

Все тесты успешно пройдены. Ваше пограничное устройство разрешает трафик в интернет с тестируемого порта и корректно выполняет преобразование портов один в один. Конфигурация поддерживается.

STUN server has no second address (STUN-сервер не имеет второго адреса).

Сообщение появляется, если в интерфейсе 3CX некорректно настроен STUN-сервер. STUN-сервер должен иметь два адреса. В разделе Параметры > Сеть > Публичный IP укажите следующие STUN-серверы: stun-eu.3cx.com, stun2.3cx.com, stun3.3cx.com.

Failed – No response received or port mapping is closed. Port forwarding not configured correctly (Неуспешно — ответ не получен или порт закрыт. Некорректная настройка публикации порта).

Некорректно настроена публикация проверяемого порта. В этом случае VoIP-операторы и удаленные IP-телефоны не будут работать. Настройте публикацию портов по этим руководствам.

Failed – Firewall check failed. Some errors were detected. Please check your firewall configuration and try the test again (Неуспешно — проверка сетевого экрана не удалась. Обнаружены ошибки. Проверьте конфигурацию сетевого экрана и попробуйте снова).

Это сообщение появляется, если некоторые порты прошли проверку, но некоторые — нет. Обратите внимание, какие конкретно порты не прошли тест и опубликуйте их. Также убедитесь, что эти порты уже не опубликованы на маршрутизаторе для другого внутреннего IP-адреса.

Failed – Malformed response received – (aka Symmetric NAT). Port forwarding not correctly implemented (Неуспешно — получен некорректный ответ (возможно, симметричный NAT). Некорректно настроена публикация портов).

Ответ говорит о том, что у вас некорректно работает Full Cone NAT.

STUN server did not answer or port forwarding is not configured on your firewall (STUN-сервер не ответил или не настроена публикация портов на сетевом экране).

Ваш STUN-сервер не отвечает. Возможные причины:

  • STUN-сервер недоступен с сервера 3CX.
  • STUN-сервер в данный момент отключен.
  • Не настроена публикация портов.

STUN server address cannot be resolved (IP-адрес сервера не разрешается DNS).

Не удалось определить IP-адрес STUN-сервера по его имени. Это может говорить о проблемах с вашим DNS-сервером, но также и о том, что данный STUN-сервер навсегда прекратил работу.

Failed – Malformed or no response received from configured STUN servers. Check your internet connection, DNS settings, or change STUN servers from Settings > Network > External IP Configuration section (Неуспешно — получен некорректный ответ от настроенных STUN-серверов. Проверьте подключение к Интернет, настройки DNS или используйте другой STUN в разделе Параметры > Сеть > Внешний IP).

Ответ говорит, что публикация портов выполнена корректно или ваш сетевой экран блокирует пакеты.

Failed – Port is in use by another application on this computer ИЛИ SIP port is in use by process {0}. The 3CX Firewall checker requires the SIP port to be free (Неуспешно — порт используется другим приложением на этом сервере ИЛИ SIP-порт используется процессом {0}. Сервису 3CX Firewall checker необходим свободный порт SIP.

Тестируемый порт используется другим приложением, установленным на этом сервере. Для определения конкретного процесса запустите команду

netstat -ano | findstr /I /C:"PID" /C:":9500"

где 9500 — номер порта. В колонке PID вы увидите ID процесса. Используете Диспетчер задач для идентификации процесса. Также можно выполнить команду

tasklist /fi "pid eq 4"

где 4 — ID процесса.

STUN servers are not reachable. Cannot perform Firewall check. This configuration is not supported (STUN-серверы недоступны. Невозможно выполнить проверку сетевого экрана. Конфигурация не поддерживается).

Недоступны STUN-серверы, настроенные в интерфейсе 3CX. Как правило, это связано с проблемами с доступом в Интернет. В разделе Параметры > Сеть > Публичный IP укажите следующие STUN-серверы: stun-eu.3cx.com, stun2.3cx.com, stun3.3cx.com.

Дополнительная информация


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