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

Asterisk и ошибочное определение NAT

Добавлено: 23 ноя 2011, 22:02
ItMan
Добрый день

Предыстория:
Имеем SPA3102 и SPA962 которые находились на упсе, упс умер, заменили и возникла проблема.

Схема:

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

-------------------
| Phone 1         |
| IP 192.168.100.1|              =>
| EXT - 111       |
-------------------          IP 192.168.100.254 (gw)                    -------------------
                                          | ROUTER |                    |IP 192.168.118.10 |
                                         IP 192.168.118.254 (gw)     => | Asterisk         |
-------------------                                                     |                  |
| Phone 2         |                                                     -------------------
| IP 192.168.100.9|              =>
| EXT - 130       |
-------------------

sip show peers

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

asterisk*CLI> sip show peers
Name/username              Host            Dyn Nat ACL Port     Status
111/111                    192.168.100.1    D          5060     OK (19 ms)
130/130                    192.168.100.9    D   N      11659    OK (15 ms)
Оба телефоны были восстановлены в дефолт. Подключены к одному хабу. Менял IP адреса местами.

130 номер работал 2 года и никаких проблем не было до смерти упса. Сравнивал пакеты REGISTER - одинаковые.
111 - таких телефоново около 40 и все работают, один 130 нет.

Re: Asterisk и ошибочное определение NAT

Добавлено: 23 ноя 2011, 22:13
zzuz
Не вижу тут абсолютно никакой проблемы . Если Вас смущает столбец NAT , то уберите для 130-го параметр nat=yes в настройках и будет вам счастье.

Re: Asterisk и ошибочное определение NAT

Добавлено: 23 ноя 2011, 22:20
ItMan
Не вижу тут абсолютно никакой проблемы . Если Вас смущает столбец NAT , то уберите для 130-го параметр nat=yes в настройках и будет вам счастье.
Убираю nat=no и от астериска прилетает 401 Unauthorized
я не понимаю по какому критерию Астериск ставит nat.

Re: Asterisk и ошибочное определение NAT

Добавлено: 23 ноя 2011, 22:23
ded
Но 130 же относительно Астериска 192.168.118.10 находится за НАТом?
И sip show peers показывает по-прежнему его зарегистрированный статус?
В чём тогда неработоспособность?

Re: Asterisk и ошибочное определение NAT

Добавлено: 24 ноя 2011, 07:42
Vlad1983
SIP/2.0 401 Unauthorized это запрос на авторизацию.
отказом регистрации является ответ SIP/2.0 403 Forbidden (Bad auth)

вывод

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

grep -irn localnet /etc/asterisk/sip*
сюда

Re: Asterisk и ошибочное определение NAT

Добавлено: 24 ноя 2011, 08:15
ded
Может Астериск отлупил 401 по АСL
так что sip.conf в области peer 401
permit=
deny=

А вообще увидеть почему Unauthorized - сделать sip set debug peer 401 и посмотреть внимательно на запрос, на который получаем ответ Unauthorized.

Re: Asterisk и ошибочное определение NAT

Добавлено: 24 ноя 2011, 08:36
Vlad1983
ded писал(а):Может Астериск отлупил 401 по АСL
возвращает, но в итоге 403 (по крайней мере SVN-trunk-r341487M так себя ведет при ACL)

Re: Asterisk и ошибочное определение NAT

Добавлено: 24 ноя 2011, 13:46
ItMan
sip set debug peer 130

Запрос с 130

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

<--- SIP read from UDP:192.168.118.254:11659 --->
REGISTER sip:192.168.118.10 SIP/2.0
Via: SIP/2.0/UDP 192.168.100.9:5060;branch=z9hG4bK-965e716e
From: "130" <sip:130@192.168.118.10>;tag=8e16f6f5d3a3256fo0
To: "130" <sip:130@192.168.118.10>
Call-ID: ceebd07f-d72c05ff@192.168.100.9
CSeq: 20098 REGISTER
Max-Forwards: 70
Contact: "130" <sip:130@192.168.100.9:5060>;expires=3600
User-Agent: Linksys/SPA962-6.1.5(a)
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces
Запрос с 111

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

<--- SIP read from UDP:192.168.100.1:5060 --->
REGISTER sip:192.168.118.10 SIP/2.0
Via: SIP/2.0/UDP 192.168.100.1:5060;branch=z9hG4bK-82c983fa
From: "NAME 111" <sip:111@192.168.118.10>;tag=55ad6b2ed31417cfo0
To: "NAME 111" <sip:111@192.168.118.10>
Call-ID: 25b6c1a6-f819eefb@192.168.100.1
CSeq: 6571 REGISTER
Max-Forwards: 70
Contact: "NAME 111" <sip:111@192.168.100.1:5060>;expires=3600
User-Agent: Linksys/SPA942-6.1.5(a)
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces


<------------->
--- (12 headers 0 lines) ---
Sending to 192.168.100.1 : 5060 (no NAT)

<--- Transmitting (no NAT) to 192.168.100.1:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.100.1:5060;branch=z9hG4bK-82c983fa;received=192.168.100.1
From: "NAME 111" <sip:111@192.168.118.10>;tag=55ad6b2ed31417cfo0
To: "NAME 111" <sip:111@192.168.118.10>;tag=as7838730e
Call-ID: 25b6c1a6-f819eefb@192.168.100.1
CSeq: 6571 REGISTER
Server: Asterisk PBX 1.6.2.20
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterix.rfc.local", nonce="73e07785"
Content-Length: 0


<------------>
Scheduling destruction of SIP dialog '25b6c1a6-f819eefb@192.168.100.1' in 32000 ms (Method: REGISTER)

<--- SIP read from UDP:192.168.100.1:5060 --->
REGISTER sip:192.168.118.10 SIP/2.0
Via: SIP/2.0/UDP 192.168.100.1:5060;branch=z9hG4bK-cab1ec5e
From: "NAME 111" <sip:111@192.168.118.10>;tag=55ad6b2ed31417cfo0
To: "NAME 111" <sip:111@192.168.118.10>
Call-ID: 25b6c1a6-f819eefb@192.168.100.1
CSeq: 6572 REGISTER
Max-Forwards: 70
Authorization: Digest username="111",realm="asterix.rfc.local",nonce="73e07785",uri="sip:192.168.118.10",algorithm=MD5,response="79e0d5674ce421d4eb7b0282323b3a18"
Contact: "NAME 111" <sip:111@192.168.100.1:5060>;expires=3600
User-Agent: Linksys/SPA942-6.1.5(a)
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces


<------------->
--- (13 headers 0 lines) ---
Sending to 192.168.100.1 : 5060 (no NAT)
Reliably Transmitting (no NAT) to 192.168.100.1:5060:
OPTIONS sip:111@192.168.100.1:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.118.10:5060;branch=z9hG4bK34450764;rport
Max-Forwards: 70
From: "asterisk" <sip:asterisk@192.168.118.10>;tag=as4a850b6c
To: <sip:111@192.168.100.1:5060>
Contact: <sip:asterisk@192.168.118.10>
Call-ID: 39b046dd18fbbd1b6b7725f377d3a995@192.168.118.10
CSeq: 102 OPTIONS
User-Agent: Asterisk PBX 1.6.2.20
Date: Thu, 24 Nov 2011 09:41:56 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Content-Length: 0


---

<--- Transmitting (no NAT) to 192.168.100.1:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.100.1:5060;branch=z9hG4bK-cab1ec5e;received=192.168.100.1
From: "NAME 111" <sip:111@192.168.118.10>;tag=55ad6b2ed31417cfo0
To: "NAME 111" <sip:111@192.168.118.10>;tag=as7838730e
Call-ID: 25b6c1a6-f819eefb@192.168.100.1
CSeq: 6572 REGISTER
Server: Asterisk PBX 1.6.2.20
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Expires: 3600
Contact: <sip:111@192.168.100.1:5060>;expires=3600
Date: Thu, 24 Nov 2011 09:41:56 GMT
Content-Length: 0


<------------>
Scheduling destruction of SIP dialog '25b6c1a6-f819eefb@192.168.100.1' in 32000 ms (Method: REGISTER)

<--- SIP read from UDP:192.168.100.1:5060 --->
SIP/2.0 200 OK
To: <sip:111@192.168.100.1:5060>;tag=d91209dae6122913i0
From: "asterisk" <sip:asterisk@192.168.118.10>;tag=as4a850b6c
Call-ID: 39b046dd18fbbd1b6b7725f377d3a995@192.168.118.10
CSeq: 102 OPTIONS
Via: SIP/2.0/UDP 192.168.118.10:5060;branch=z9hG4bK34450764
Server: Linksys/SPA942-6.1.5(a)
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces


<------------->
--- (10 headers 0 lines) ---
[Nov 24 13:41:56] NOTICE[4188]: chan_sip.c:18912 handle_response_peerpoke: Peer '111' is now Reachable. (18ms / 2000ms)
grep -irn localnet /etc/asterisk/sip*
/etc/asterisk/sip.conf:583:localnet=192.168.100.0/255.255.255.0
/etc/asterisk/sip.conf:584:localnet=192.168.118.0/255.255.255.0

permit=
deny=

Не заполнены.

Re: Asterisk и ошибочное определение NAT

Добавлено: 24 ноя 2011, 13:52
ItMan
Начинаю грешить на роутер =(

Re: Asterisk и ошибочное определение NAT

Добавлено: 24 ноя 2011, 14:09
ded
А я - на вас.
Согласно схемы - Интерфейс Астериска 192.168.118.10
Он находится за НАТом, который делает рутер. Из этого мира прибегает Register
<--- SIP read from UDP:192.168.100.1:5060 --->
REGISTER sip:192.168.118.10 SIP/2.0
Via: SIP/2.0/UDP 192.168.100.1:5060;branch=z9hG4bK-82c983fa
From: "NAME 111" <sip:111@192.168.118.10>;

и согласно Вашим указаниям nat=no (??) Астериск посылает
Sending to 192.168.100.1 : 5060 (no NAT)

И, в общем то похоже, рутер "слишком умный", это ALG router.
Искать в Гугле по этим словам причину и как её разрулить.