Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

localnet и force_rport. странное (?) поведение

0

Добрый день и с наступающим новым годом.

Что я делаю не так? (с)

кусок sip.conf

[genera]
bindport=5060                           
bindaddr=0.0.0.0 
externip=xxx.xxx.xxx.xxx                 
localnet=192.168.0.0/255.255.0.0
nat=force_rport,comedia

[1322]
 host=dynamic
 type=friend
 qualify=yes 
 nat=force_rport,comedia

грубо говоря, сотрудник может взять телефон и унести его домой, поэтому nat=no ставить нельзя

внутренний ip asterisk: 192.168.50.13

ip телефона в данный момент: 192.168.49.74

между подсетями роутер (без всяких натов и sip alg, обычная cisco 3560)

asterisk 11.20

проблем со слышимостью нет ни в локалке, ни для внешних клиентов.

кусок дебага:

<--- Transmitting (NAT) to 192.168.49.74:5070 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.49.74:5070;branch=z9hG4bK6dad51ea;received=192.168.49.74;rport=5070
From: <sip:1322@sip.firma.ru>;tag=2373541035
To: <sip:1322@sip.firma.ru>;tag=as12e087db
Call-ID: 6a79b895-4b2a111ef4e87355eb880080f0f1dd8b@192.168.49.74
CSeq: 12 REGISTER
Server: sip.firma.ru
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Expires: 150
Contact: <sip:1322@192.168.49.74:5070>;expires=150
Date: Wed, 30 Dec 2015 10:48:21 GMT
Content-Length: 0
 <------------>

<--- SIP read from UDP:192.168.49.74:5070 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.50.13:5060;branch=z9hG4bK68c3240e;rport=5060
To: <sip:1322@192.168.49.74>;tag=418195038
From: "sip.firma.ru" <sip:sip.firma.ru@sip.firma.ru>;tag=as4dde78f3
Call-ID: 0e4f189b17cf93b53f67334d266a9dcb@sip.firma.ru
CSeq: 102 OPTIONS
Contact: <sip:192.168.49.74:5070>
Allow: INVITE,ACK,CANCEL,BYE,OPTIONS,NOTIFY,REFER,UPDATE
Content-Length: 0

<------------->

Когда ставлю nat=no, ожидаемо вижу "Transmitting (no NAT)"

Откуда в дебаге взялся NAT? Если я правильно понимаю, localnet как раз описывает те сети, при работе с которыми не надо зайдействовать механизм NAT. Или nat=force_rport,comedia перекрывает этот список?

Как сделать правильно? Чтобы никакого NAT, когда телефон в нашей сети, и NAT, когда телефон стучится из внешнего мира.

удалить закрыть спам изменить тег редактировать

спросил 2015-12-30 15:53:28 +0400

beginner Gravatar beginner
63 4 4

обновил 2015-12-30 16:16:24 +0400

1 Ответ

0

что не так?

no это вот так

nat=

а у вас comedia, тоесть нат.

что вас беспокоит - непонятно.

а что по вашему nat с точки зрения ip протокола?

ссылка удалить спам редактировать

ответил 2015-12-30 17:24:40 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

В моем понимании нат - это подмена исходного адреса и порта на адрес-порт промежуточного оборудования. Это самое оборудование (как правило, это роутер) шлет пакет от своего имени и со своим портом, а ответные пакеты пересылает оригинальному отправителю, на его адрес и порт.

Вот тут лично я вижу NAT

sip show peer 6219

Addr->IP : 33.33.33.33:12190

Reg. Contact : sip:6219@10.20.30.146:5060

А тут - нет:

sip show peer 1322

Addr->IP : 192.168.49.74:5070

Reg. Contact : sip:1322@192.168.49.74:5070

И почему астер считает что это нат, я просто не понимаю.

beginner ( 2015-12-30 17:49:57 +0400 )редактировать

так и есть. comedia меняет порты rtp траффика.

meral ( 2015-12-31 05:38:44 +0400 )редактировать

нравится вам или не нарвится, а все что не no- отмечается как nat

meral ( 2015-12-31 05:39:32 +0400 )редактировать

прикольно это - пир же в localnet, значение nat должно игнорироваться..

Zavr2008 ( 2016-01-02 14:26:02 +0400 )редактировать

вот и мне так казалось, но астериск считает по своему

beginner ( 2016-01-02 23:08:06 +0400 )редактировать

нет, не должно. во первых там force во вторых localnet не влияет на то, что пишется тут. на процессинг пакетов - влияет. но не скажу влияет ли если стоит force. надо смотреть исходник.

meral ( 2016-01-03 04:55:18 +0400 )редактировать

The 'nat' option has now been been changed to have yes, no, forcerport, and comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the remote side requests it and disables symmetric RTP support. Setting it to forcerport forces RFC 3581 behavior and disables symmetric RTP support. Setting it to comedia enables RFC 3581 behavior if the remote side requests it and enables symmetric RTP support.

meral ( 2016-01-03 04:58:07 +0400 )редактировать

а еще если вы не в курсе они взаимоисключающиеся. вот так вот.

meral ( 2016-01-03 04:58:33 +0400 )редактировать

как срабатывает взаимосиключающие force_rport, comedia сказть можно тоже погадав по исходникам.

meral ( 2016-01-03 05:00:00 +0400 )редактировать

я бы сказал что сработает rport, также нат, но будет выбран как нат адрес локальный адрес а не внешний http://www.voip-info.org/wiki/view/Asterisk+SIP+localnet

meral ( 2016-01-03 05:01:28 +0400 )редактировать

Если force_rport и comedia взаимоисключающие, как же они работают вместе? Одно задает remote port=yes, второе - symmetric rtp=yes

beginner ( 2016-01-03 11:16:41 +0400 )редактировать

meral, спс за разъяснение - т.е. при force_rport localnet просто проигнорируется, верно?

Zavr2008 ( 2016-01-03 19:31:04 +0400 )редактировать

никак они вмести не работают. одно задает symetric rtp а второй asymetric. что каждое значит тоже обьяснить? force_rport пожалуй работает. но не имеет смысла посколько localnet заставляет выдать внешний адрес=адресу на интерфейсе. тоесть добавляется строчка via с rport и на этом все(ибо симетрично включается, адрес тот же, порты те же).

meral ( 2016-01-03 19:40:20 +0400 )редактировать

смотрите страницу 5-6 в основном https://tools.ietf.org/html/rfc3581

meral ( 2016-01-03 19:41:51 +0400 )редактировать

при force_rport,comedia работает симетричный вариант, поскольку он более распространнен( на всех линух, бсд системах и на большинстве роутеров)

meral ( 2016-01-03 19:43:01 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2015-12-30 15:53:28 +0400

Просмотрен: 1,944 раз

Обновлен: Dec 30 '15

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.