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

asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-08 22:11:46
daggerok
Доброго времени суток, уважаемые!

кто-то настраивал подключение на телефонах linksys spa921 / spa922, находящихся за НАТом к pbx proxy (asterisk на fedora 12), который так же находиться за НАТом?

Код: Выделить всё

[root@pbx ~]# uname -srim
Linux 2.6.32.12-115.fc12.i686.PAE i686 i386
[root@pbx ~]# asterisk -V
Asterisk 1.6.1.20

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-08 22:38:37
daggerok
вычитал в гугле что нужно
1. сделать редирект портов UPD 5060,10000-20000 внутрь локалки на pbx, на котором крутиться астериск:

в natd.conf такое:

Код: Выделить всё

# nat asterisk:
redirect_port udp 192.168.0.7:5060 5061
redirect_port udp 192.168.0.7:10000-20000 10000-20000
в фаерволе такие правила:

Код: Выделить всё

pbx2="192.168.0.7"
# sip nat me:5060 -> pbx:5061:
${ipfw} add pass udp from me 5061 to any out via ${oif}
${ipfw} add pass udp from any to ${pbx2} 5060 in via ${oif}
${ipfw} add pass udp from me 5061 to any out via ${oif2}
${ipfw} add pass udp from any to ${pbx2} 5060 in via ${oif2}
${ipfw} add pass udp from any to ${pbx2} 5060 out via ${iif}
${ipfw} add pass udp from ${pbx2} 5060 to any in via ${iif}
# sip nat 10000-20000:
${ipfw} add pass udp from me 10000-20000 to any out via ${oif}
${ipfw} add pass udp from any to ${pbx2} 10000-20000 in via ${oif}
${ipfw} add pass udp from me 10000-20000 to any out via ${oif2}
${ipfw} add pass udp from any to ${pbx2} 10000-20000 in via ${oif2}
${ipfw} add pass udp from any to ${pbx2} 10000-20000 out via ${iif}
${ipfw} add pass udp from ${pbx2} 10000-20000 to any in via ${iif}
2. а так же включить опции NAT Mapping Enable и NAT Keep Alive Enable на ip-фоне:

это я тоже сделал, установив SIP Port в 5061 как тот, который я пробрасываю на шлюзе, за которым астериск.
но к сожалению телефон не регистрируется.

у кого-то есть идеи где я ошибся или как нужно делать это правильно?

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-10 12:46:58
Al
нат=ес в астериске.
+смтреть, где пакеты режутся тспдампом.

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-10 13:04:17
daggerok
Al писал(а):нат=ес в астериске.
в конфиге самого астерикса? или же только как секьюрити опция для конкретного sip аккаунта моего ip-фона?
или и там и там?

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-10 14:27:55
skeletor
В общем конфиге - это для всех пиров. Лучше указывать в настройках конкретного пира.

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-12 0:35:10
daggerok
skeletor писал(а):В общем конфиге - это для всех пиров. Лучше указывать в настройках конкретного пира.
в общем так...

порты пробрасываю так:

Код: Выделить всё

05301 allow udp from any to me dst-port 5060,10000-20000 via oif
05302 allow udp from any to pbx dst-port 5060,10000-20000 via oif
05304 allow udp from any to pbx dst-port 5060,10000-20000 via iif
05306 allow udp from pbx 5060,10000-20000 to any via iif
на астериксе в sip.conf для учетной записи настройки такие:

Код: Выделить всё

[401]
type=friend
regexten=401
secret=password
context=internal
host=dynamic
callerid="Operator 401" <401>
disallow=all
allow=alaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=no
nat = yes
bindport = 5060
bindaddr = 0.0.0.0
allowquest = yes
при попытке регистрации телефона на удаленном сервере вот что показывает tcpdump на астериксе:

Код: Выделить всё

[root@pbx ~]# tcpdump host home and port 5060
00:21:45.238212 IP home.34284 > pbx.sip: SIP, length: 538
00:21:45.238364 IP pbx.sip > home.34284: SIP, length: 552
00:21:45.740938 IP home.34284 > pbx.sip: SIP, length: 538
00:21:45.741026 IP pbx.sip > home.34284: SIP, length: 552
т.е. тут пакеты ходят в обе стороны
но из шлюзов видно что пакеты только приходят, но не возвращаются:

на фре (за которой астериск):

Код: Выделить всё

# tcpdump host frebsdgw and host home and port ! 22 and port ! hpssd
00:22:21.085014 IP home.34284 > frebsdgw.sip: SIP, length: 538
00:22:21.587949 IP home.34284 > frebsdgw.sip: SIP, length: 538
00:22:22.593871 IP home.34284 > frebsdgw.sip: SIP, length: 538
00:22:24.605681 IP home.34284 > frebsdgw.sip: SIP, length: 538
на шлюзе за которым сип-фон:

Код: Выделить всё

# tcpdump host frebsdgw and port ! 22 and port ! hpssd
00:18:26.059922 IP 10.8.3.146.34284 > frebsdgw.sip: SIP, length: 538
00:18:26.562568 IP 10.8.3.146.34284 > frebsdgw.sip: SIP, length: 538
00:18:27.568453 IP 10.8.3.146.34284 > frebsdgw.sip: SIP, length: 538
00:18:29.580220 IP 10.8.3.146.34284 > frebsdgw.sip: SIP, length: 538
на телефоне ошибка реквест таймаут...
выходит из-за чего-то пакеты от астерикса к сип-фону не проходят через фаер?
подскажите что ж тут не так? :st:

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-12 0:52:11
daggerok
добавил правило

Код: Выделить всё

ipfw add pass udp from me to any out via oif
пакеты вроде как стали ходить в обе стороны:

Код: Выделить всё

[root@pbx ~]# tcpdump host home and port 5060
00:21:45.238212 IP home.34284 > pbx.sip: SIP, length: 538
00:21:45.238364 IP pbx.sip > home.34284: SIP, length: 552
00:21:45.740938 IP home.34284 > pbx.sip: SIP, length: 538
00:21:45.741026 IP pbx.sip > home.34284: SIP, length: 552
[root@frebsdgw ~]# tcpdump host frebsdgw and host home and port ! 22 and port ! hpssd
00:45:10.683562 IP home.61732 > frebsdgw.sip: SIP, length: 538
00:45:10.684296 IP frebsdgw.sip > home.61732: SIP, length: 552
00:45:11.186513 IP home.61732 > frebsdgw.sip: SIP, length: 538
00:45:11.187023 IP frebsdgw.sip > home.61732: SIP, length: 552
[root@home ~]# tcpdump host frebsdgw and port ! 22 and port ! hpssd
00:41:15.670671 IP 10.8.3.146.61732 > frebsdgw.sip: SIP, length: 538
00:41:15.684755 IP frebsdgw.sip > 10.8.3.146.61732: SIP, length: 552
00:41:16.173356 IP 10.8.3.146.61732 > frebsdgw.sip: SIP, length: 538
00:41:16.187522 IP frebsdgw.sip > 10.8.3.146.61732: SIP, length: 552
но сип-фон так и не регистрируется - реквест таймаут =\

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 11:54:13
skeletor
А попробуй запустить tcpdump в режиме verbose

Код: Выделить всё

tcpdump -vvv ...
может так что-то проясниться. У меня была похожая ситуация: с телефона нельзя было набрать номер. На него можно позвонить, а него - нельзя. Контексты в порядке, регистрация тоже. Посмотрел tcpdump (а там это классно видно; странно, почему в логах астера это не отображалось) - так набираются не все цифры. Заменили аппарат, заработало.

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 12:36:33
Al
skeletor писал(а):А попробуй запустить tcpdump в режиме verbose

Код: Выделить всё

tcpdump -vvv ...
может так что-то проясниться. У меня была похожая ситуация: с телефона нельзя было набрать номер. На него можно позвонить, а него - нельзя. Контексты в порядке, регистрация тоже. Посмотрел tcpdump (а там это классно видно; странно, почему в логах астера это не отображалось) - так набираются не все цифры. Заменили аппарат, заработало.
Жесть....))))
Вербос=дебуг отображают набираемые цифры в астериске.
Выруби фаер, поставь тупой нат и посмотри. pf +pflog.

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 13:14:24
skeletor
Точнее должен отображать! У меня почему-то не отображал.

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 13:26:58
daggerok
2 skeletor

в астериксе есть свой дубуг

Код: Выделить всё

asterisk -rvvvd
там все видно, кто что набрал и куда оно звонит. (по крайней мере у меня)
в моем же случае телефон даже не регистрируется, если я и в ключу дебуг на тисипидампе, то фиг чего я замечу в нем (очень много лишней инфы - так как шлюз не тестовый).
вычитал в нете что типа с портами 5060 все ок, а вот с диапазоном 10000-20000 и есть все траблы, почему плохо работает нат...
вот подумываю, поможет ли если проначю внешний ип на пбх, и буду всех кто из-за ната конектиться на него заворачивать - или же будет тот же эффект...


Al писал(а):
skeletor писал(а):А попробуй запустить tcpdump в режиме verbose

Код: Выделить всё

tcpdump -vvv ...
может так что-то проясниться. У меня была похожая ситуация: с телефона нельзя было набрать номер. На него можно позвонить, а него - нельзя. Контексты в порядке, регистрация тоже. Посмотрел tcpdump (а там это классно видно; странно, почему в логах астера это не отображалось) - так набираются не все цифры. Заменили аппарат, заработало.
Жесть....))))
Вербос=дебуг отображают набираемые цифры в астериске.
Выруби фаер, поставь тупой нат и посмотри. pf +pflog.
вырубить фаер не могу, а вот разрешающее правило pass all from any to any поставить могу
нат и так включен
если что-то денится на фаере оно у меня в /var/log/security отображается, так как все deny-правила с занесением в лог, но там ничего такого нет.

читал еще что можно уменьшить диапазон

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 13:29:17
Al
Телефон за натом или астериск за натом?
ЗЫ, тяжко все заново прочитать(

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 13:29:42
daggerok
Al писал(а):Телефон за натом или астериск за натом?
ЗЫ, тяжко все заново прочитать(
да

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 13:30:27
Al
Так. Стоп. Они оба за натом, штоль? Всмысле, клиент- нат - сеть - нат - астерикс?

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 13:33:43
daggerok
Al писал(а):Так. Стоп. Они оба за натом, штоль? Всмысле, клиент- нат - сеть - нат - астерикс?
именно
client-PC-soft-phone <---> freebsd-NAT <---> INTERNET <---> FreeBSD-NAT <---> pbx
или
Cisco-SPA921 <---> freebsd-NAT <---> INTERNET <---> FreeBSD-NAT <---> pbx

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 13:57:25
Al
stun не пробовал?
На обоих редиректы стоят 5060 и 10000-20000 во внутрь на соотв хосты?
нат=йес норм работает если только клиент за натом. Остальное утверждать не берусь

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-15 17:04:34
daggerok
Al писал(а):stun не пробовал?
на cisco-sp921/922 нет stun-a
Al писал(а):На обоих редиректы стоят 5060 и 10000-20000 во внутрь на соотв хосты?
5060,10000-20000 редиректится на pbx
на другой стороне для ip-фона разрешены udp 5060,10000-20000
Al писал(а): нат=йес норм работает если только клиент за натом. Остальное утверждать не берусь
вот именно это и интерисует
и клиентский телефони и астериск за натом..

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-16 7:05:30
Al
Тогда смею предположить, что работать не будет.
Ну,или попробуйте туннели.

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-16 9:15:39
daggerok
Al писал(а):Тогда смею предположить, что работать не будет.
так оно и не работает, и поэтому я создал эту тему.
Al писал(а):Ну,или попробуйте туннели.
на удаленном офисе все решается IPSec-ом, а вот что делать с домашними абонентами - незнаю... разве что софт-фон + стун, ну или купить ip-фоны с поддержкой стуна.
по поводу последнего, Вы его использовали? если да, то посоветуйте какой-то, у меня астериск поднят на fedora 12. спасибо.

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-16 9:28:23
Al
Я говорю, что дело не в настройках, не в фаерволе и т.п.. Оно в принципе так работать не будет.
stun не юзал. Не было необходимости. Зато юзал софтфоны. На тех, что пробовал - качество звука отстой. Независимо от кодеков. Может, дело в компе, конечно, или гарнитуре.
А чем не вариант выставить астериск напрямую в интернет?

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-16 10:29:01
daggerok
Al писал(а):Я говорю, что дело не в настройках, не в фаерволе и т.п.. Оно в принципе так работать не будет.
stun не юзал. Не было необходимости. Зато юзал софтфоны. На тех, что пробовал - качество звука отстой. Независимо от кодеков. Может, дело в компе, конечно, или гарнитуре.
ну я с софт-фонами уже имел дела и довольно долго - знаю что есть траблы со звуком, но как правило причина либо звуковушка, либо процессор/память, гарнитура особо роли не играет
Al писал(а):А чем не вариант выставить астериск напрямую в интернет?
ip один, и он занят роутером, вешать астериск на тот же сервер не выйдет из-за нагрузки.

Re: asterisk (nat) + linksys spa921 (nat)

Добавлено: 2010-06-16 10:43:00
Al
Что-то слышал про сип-прокси.... Но, может, это и не то. Загугли на эту тему, вдруг, поможет.