Страница 1 из 2

Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 15:49
diwiz
Коллеги, подскажите куда смотреть - Астериск регистрирует клиента из локальных сетей, но не отвечает клиенту снаружи, порт UDP 4569 проброшен двумя роутерами (Один за другим). Входящие пакеты IAX видны на машинке с Астером, но ответные не формируются. Астер делает вид, что ничего не происходит.

Re: Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 16:18
ded
requirecalltoken=no

Re: Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 18:11
diwiz
ded писал(а):requirecalltoken=no


Ничего не изменилось. В консоли Астериска пусто.

tcpdump - в одну сторону пакеты идут, обратно - нет (1.2.3.4 - внешний адрес):
Код: выделить все
1.2.3.4.iax > 192.168.77.45.iax: [udp sum ok] UDP, length 45
17:06:41.731657 IP (tos 0x0, ttl 120, id 4684, offset 0, flags [none], proto UDP (17), length 73)
    1.2.3.4.iax > 192.168.77.45.iax: [udp sum ok] UDP, length 45
17:06:42.153293 IP (tos 0x0, ttl 120, id 4685, offset 0, flags [none], proto UDP (17), length 73)
    1.2.3.4.iax > 192.168.77.45.iax: [udp sum ok] UDP, length 45
17:06:42.943035 IP (tos 0x0, ttl 120, id 4686, offset 0, flags [none], proto UDP (17), length 73)

Re: Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 18:16
diwiz
tcpdump из локальной сети - пакеты бегут в обе стороны:

Код: выделить все
17:13:52.462965 IP (tos 0x0, ttl 126, id 8096, offset 0, flags [none], proto UDP (17), length 73)
    192.168.11.130.iax > 192.168.77.45.iax: [udp sum ok] UDP, length 45
17:13:52.464124 IP (tos 0xb8, ttl 64, id 20116, offset 0, flags [none], proto UDP (17), length 93)
    192.168.77.45.iax > 192.168.11.130.iax: [bad udp cksum b2c0!] UDP, length 65
17:13:52.502395 IP (tos 0x0, ttl 126, id 8098, offset 0, flags [none], proto UDP (17), length 124)
    192.168.11.130.iax > 192.168.77.45.iax: [udp sum ok] UDP, length 96
17:13:52.502712 IP (tos 0xb8, ttl 64, id 20117, offset 0, flags [none], proto UDP (17), length 59)
    192.168.77.45.iax > 192.168.11.130.iax: [bad udp cksum 244f!] UDP, length 31

Re: Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 19:32
ded
Явно не всё хорошо, верно?
1.2.3.4.iax > 192.168.77.45. - при чём тут внешний адрес 1.2.3.4, если он обращается к внутреннему 192.168.77.45? Как-то это неправильно. Если
промерить трассу c сервера 1.2.3.4
mtr 192.168.77.45
это же никуда не уедёт?

[bad udp cksum b2c0!] - это точно должно как-то насторожить! :)

Смотреть конечно на двух уровнях: tcpdump и
CLI> iax2 set debug on

Re: Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 20:11
diwiz
192.168.77.45 - адрес Астреиска, находится за NAT в локалке
192.168.11.130 - адрес клиента (софтфон) IAX2 в одной из локалок (несколько подсеток объединены VPNами)

192.168.77.45.iax > 192.168.11.130.iax
192.168.11.130.iax > 192.168.77.45.iax - это двухсторонний обмен пакетами Астериска и софтфона, тут всё хорошо
софтфон из локалки работает несмотря на bad cheksum

1.2.3.4 - условный адрес снаружи, тот же софтфон.

1.2.3.4.iax > 192.168.77.45 - а тут только в одну сторону трафик идёт. В дебаге IAX2 Астериска при этом абсолютно пусто, не воспринимает он эти пакеты совсем. Как будто хочет видеть пакеты только из локалок...

Самое интересное, что у меня есть ещё один Астреиск и на нём внешний клиент работает! А разницу понять не могу...
Там, где работает, выглядит так:
1.2.3.4.iax > 192.168.77.45.iax
192.168.77.45.iax > 1.2.3.4.iax

Re: Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 20:17
ded
А клиент на 1.2.3.4 прописан на Астериске как host=dynamic?
Он регистрируется (пытается) на Астериске?
Иногда помогало растолкать
CLI> module unload chan_iax2.so
CLI> module load chan_iax2.so

delayreject= что стоит?

Re: Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 21:00
diwiz
Да, прописан host=dynamic

Из локалки регистрирутся без проблем. IAX2 debug на астериске чудесно всё кажет. Снаружи - пытается, но не может. Отваливается по таймауту. На астериске в IAX2 debug в это время ничего не происходит, абсолютно пусто. tcmdump показывает приходящие с клиента пакеты, но не кажет исходящие.

Перезагрузка модулей ничего не изменила.

delayreject не установлен совсем

Re: Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 21:06
ded
diwiz писал(а): tcdump показывает приходящие с клиента пакеты, но не кажет исходящие
= Firewall
iptables-save ??

Re: Почему Asterisk не отвечает клиенту IAX2 снаружи?

СообщениеДобавлено: 12 фев 2018, 21:18
diwiz
В правилах пусто. Отрыто всё?

Код: выделить все
[root@astdomus asterisk]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination