Назад | Перейти на главную страницу

Устранение неполадок при сбое SIP-соединения

У меня есть сервер Asterisk Linux, который находится за брандмауэром. Межсетевой экран имеет три интерфейса:

Если я оставлю все как есть, Asterisk без проблем подключится к магистрали SIP. Он будет маршрутизироваться по маршруту по умолчанию через eth2. eth2 ЗАМАСАН.

Если я определю статический маршрут к моему провайдеру SIP через eth3 (ip route add sip.provider.ip via gateway.ip dev eth3), Я могу пинговать провайвер SIP. Брандмауэр разрешает все, что связано с моим SIP-провайдером. Но Asterisk откажется подключаться (одноранговый узел станет недоступен) ...

Я использовал iptables TRACE, чтобы посмотреть пакеты, и они определенно выходят через eth3. Но я не вижу, чтобы пакет вернулся. eth3 также имеет правило MASQUERADE ...

Удаление статического маршрута через eth3 восстанавливает подключение.

Я ищу советы и подсказки, которые помогут устранить проблему.

Я подозреваю, что ваш сервер asterisk настроен на использование UDP без установления соединения, поэтому исходящий SIP-запрос может содержать обратный IP-адрес, который конечный пользователь должен использовать для обратного подключения к вам.

Проверить externip настройка в ваших файлах конфигурации sip:

Также обратите внимание на следующее, в котором есть много хороших вещей http://www.asteriskguru.com/tutorials/sip_nat_oneway_or_no_audio_asterisk.html

Получение сетевой трассировки с помощью wirehark или tcpdump как для eth2, так и для eth3 также прольет больше света на проблему.