URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90448
[ Назад ]

Исходное сообщение
"Как пробросить sip-трафик в локальную сеть?"

Отправлено aos , 30-Ноя-10 16:19 
Добрый день.
В локальной сети есть мини-АТС Panasonic TDE200. К ней внутри сети подключены пользователи по sip. Нужно подключить внешних sip-юзеров.
На шлюзе(FreeBSD) пробросил порт 5060 и 10000-20000 на АТС.
Оказалось не достаточно. Установил siproxd.
И то ли настроить его не могу правильно то ли он заточен выполнять обратную операцию - внутренних СИП-клиентов наружу выпускать.
Еще слышал что есть следующие сиппрокси: OpenSER, Asterisk. Решал ли кто подобную задачу? Если да то чем и как? Посоветуйте. Помогите. Спасибо.

Содержание

Сообщения в этом обсуждении
"Как пробросить sip-трафик в локальную сеть?"
Отправлено senimore , 30-Ноя-10 17:37 
> Добрый день.
> В локальной сети есть мини-АТС Panasonic TDE200. К ней внутри сети подключены
> пользователи по sip. Нужно подключить внешних sip-юзеров.
> На шлюзе(FreeBSD) пробросил порт 5060 и 10000-20000 на АТС.
> Оказалось не достаточно. Установил siproxd.
> И то ли настроить его не могу правильно то ли он заточен
> выполнять обратную операцию - внутренних СИП-клиентов наружу выпускать.
> Еще слышал что есть следующие сиппрокси: OpenSER, Asterisk. Решал ли кто подобную
> задачу? Если да то чем и как? Посоветуйте. Помогите. Спасибо.

Можно, конечно,и Asterisk использовать в качестве прокси. Только это стрельба из пушки по воробьям. А что не проходит: SIP-сигнализация или RTP трафик? Можете ли вы это выяснить?


"Как пробросить sip-трафик в локальную сеть?"
Отправлено aos , 30-Ноя-10 18:35 
> Можно, конечно,и Asterisk использовать в качестве прокси. Только это стрельба из пушки
> по воробьям. А что не проходит: SIP-сигнализация или RTP трафик? Можете
> ли вы это выяснить?

Думаю что даже сигнализация не проходит. Иначе на АТС было бы отмечено IP регистрации клиента. Не так ли? Да и tcpdump на внутреннем интерфейсе пустой.

Играюсь с siproxd.
Схема следующая у меня:

SIP-клиент(SJPhone)[w.x.y.z] --- Интернет --- [W.X.Y.Z]Шлюз(FreeBSD,PF,siproxd)[192.168.11.2] --- [192.168.11.61]АТС(TDE-200)

Как указать siproxd слать весь трафик извне на АТС?


"Как пробросить sip-трафик в локальную сеть?"
Отправлено senimore , 30-Ноя-10 23:05 
То, что не проходит сигнализация, странно. Обычно она работает без проблем. Посмотрите, может вы TCP пробрасываете, а SIP по  UDP идет?
P.S. Есть хорошая информация по Asteriks`у за NAT`ом http://www.voip-info.org/wiki/view/Asterisk+SIP+NAT+solutions. Посмотрите, может чего и для вашего случая пригодится.



"Как пробросить sip-трафик в локальную сеть?"
Отправлено aos , 01-Дек-10 11:33 
А нужно ли редиректить (пробрасывать) трафик с наружи на внутренний IP-адрес АТС с помощью PF или нужно просто его принимать а sip-прокси уже сам должен его перенаправить на АТС?..

За ссылку спасибо. Сейчас попробую изучить.


"Как пробросить sip-трафик в локальную сеть?"
Отправлено senimore , 01-Дек-10 12:17 
> А нужно ли редиректить (пробрасывать) трафик с наружи на внутренний IP-адрес АТС
> с помощью PF или нужно просто его принимать а sip-прокси уже
> сам должен его перенаправить на АТС?..
> За ссылку спасибо. Сейчас попробую изучить.

Надо либо пробрасывать порты на шлюзе на внутренний адрес АТС, либо ставить какой-то прокси, который будет принимать звонки на внешнем интерфейсе, и переводить их на АТС. Попробуйте сначала первый вариант. Как это будет в PF не скажу, но для iptables правило следующее:
iptables -t nat -A PREROUTING -p udp -m multiport --dport 5060,10000:20000 -j DNAT --to-destination $SIP_SRV_LAN_IP , где $SIP_SRV_LAN_IP - внутренний адрес АТС. Сначала надо добиться, чтобы работала сигнализация. Далее могут быть проблемы с прохождением RTP. Но это уже будет другая история.

А второй вариант - использование прокси (например, Asterisk).


"Как пробросить sip-трафик в локальную сеть?"
Отправлено AP , 01-Дек-10 13:32 
AOS ты из Киева, Ved****


"Как пробросить sip-трафик в локальную сеть?"
Отправлено aos , 01-Дек-10 15:13 
> AOS ты из Киева, Ved****

Да, а что?


"Как пробросить sip-трафик в локальную сеть?"
Отправлено AP , 01-Дек-10 15:47 
Кажется работали вместе.



"Как пробросить sip-трафик в локальную сеть?"
Отправлено aos , 01-Дек-10 16:30 
> Кажется работали вместе.

прикольно. и где же?


"Как пробросить sip-трафик в локальную сеть?"
Отправлено AP , 01-Дек-10 16:40 
>> Кажется работали вместе.
> прикольно. и где же?

Я во Львовском филиале, ты в Киевском.


"Как пробросить sip-трафик в локальную сеть?"
Отправлено aos , 01-Дек-10 15:12 

> iptables -t nat -A PREROUTING -p udp -m multiport --dport 5060,10000:20000 -j
> DNAT --to-destination $SIP_SRV_LAN_IP , где $SIP_SRV_LAN_IP - внутренний адрес АТС. Сначала
> надо добиться, чтобы работала сигнализация. Далее могут быть проблемы с прохождением
> RTP. Но это уже будет другая история.
> А второй вариант - использование прокси (например, Asterisk).

Я под АТС выделял отдельный ip адрес и пробрасывал весь трафик на АТС.
pf.conf:
nat on $ext_if from $voip_int -> $voip_ext
rdr on $ext_if proto udp to $voip_ext -> $voip_int
Это мне не помогло.
Что значит "работает сигнализация" это значит что клиент может регистрироваться на АТС?


"Как пробросить sip-трафик в локальную сеть?"
Отправлено senimore , 01-Дек-10 15:39 
> Что значит "работает сигнализация" это значит что клиент может регистрироваться на АТС?

Хотя бы.
Попробуйте зарегистрироваться на АТС каким-либо софтовым клиентом, посмотрите логи.



"Как пробросить sip-трафик в локальную сеть?"
Отправлено AP , 01-Дек-10 15:50 
Поднимите statik nat, транслироватся должно 1 в 1, тогда посмотрите сигнализацию,
RTP пакеты сильно не любят когда ему меняют заголовок.

"Как пробросить sip-трафик в локальную сеть?"
Отправлено AP , 01-Дек-10 15:53 
Вот тут еще немного.
http://users.i.com.ua/~sipnet/NAT0.htm

"Как пробросить sip-трафик в локальную сеть?"
Отправлено aos , 01-Дек-10 17:20 
> Вот тут еще немного.
> http://users.i.com.ua/~sipnet/NAT0.htm

Упростил конфиг до минимального по части VoIP:
===========================
nat on $ext_if from $voip_int -> $voip_ext static-port    #натим АТС на внешний IP
nat on $ext_if from $lan_net -> $voip_ext         #вся локальная сетка тоже натится на этот внешний IP

rdr on $ext_if proto udp to $voip_ext port { 5060 10000:20000 } -> $voip_int    # перенаправляем Voip-трафик на АТС

pass on {$int_if $ext_if} proto {tcp udp} from any to any port {5060 10000:20000} разрешаем ходить Voip-трафику в любую сторону.
==========================
Вроде все правильно. Но внешний сип-клиент (даже с честным IP) все же не может регистрироваться на АТС... И должен ли? Может без прокси никак?


"Как пробросить sip-трафик в локальную сеть?"
Отправлено senimore , 02-Дек-10 09:37 

> Вроде все правильно. Но внешний сип-клиент (даже с честным IP) все же
> не может регистрироваться на АТС... И должен ли? Может без прокси
> никак?

Если ваш свитч поддерживает зеркалирование портов, настройте зеркалирование с порта
АТС на ваш и посмотрите вывод tcpdump. Пакеты извне вообще до АТС доходят?


"Как пробросить sip-трафик в локальную сеть?"
Отправлено aos , 02-Дек-10 12:22 
> Если ваш свитч поддерживает зеркалирование портов, настройте зеркалирование с порта
> АТС на ваш и посмотрите вывод tcpdump. Пакеты извне вообще до АТС
> доходят?

Зеркалирование портов это сложновато в моем случае. Я и АТС воткнуты в разные свичи. Да и один из них не "умный".
Я запустил tcpdump на внутреннем интерфейсе:
[root@hq-gate ~]$ tcpdump -i bge0 src or dst host 192.168.11.61 and port 5060
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bge0, link-type EN10MB (Ethernet), capture size 96 bytes
11:05:07.072987 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:07.084084 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 349
11:05:07.274346 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:07.284354 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 348
11:05:07.554450 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:07.564455 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 349
11:05:27.690520 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:27.700525 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 349
11:05:27.930172 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:27.940212 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 349


"Как пробросить sip-трафик в локальную сеть?"
Отправлено aos , 02-Дек-10 12:23 
или более-расширено:
[root@hq-gate ~]$ tcpdump -n -vvv -X -i bge0 src or dst host 192.168.11.61 and port 5060
tcpdump: listening on bge0, link-type EN10MB (Ethernet), capture size 96 bytes
11:11:03.359694 IP (tos 0x0, ttl 120, id 342, offset 0, flags [none], proto UDP (17), length 433, bad cksum 0 (->4dad)!) 178.92.115.247.5060 > 192.168.11.61.5060: SIP, length: 405
        REGISTER sip:W.X.Y.Z SIP/2.0
        Via: SIP/2.0/UDP \000\000\247b\367L\243\244\005\000`\000\000\000\207\001\000\000\022\000\000\015\235\232\336X\000\200\360?\305\212\010\000E\000\001y\006\270\000\000@\021\200\203\300\250\013=\262\s\367\023\304\023\304\001eA\212SIP/2.0 403 Forbidden
        Via: SIP/2.0/UDP 178.92.115.247\000\000\247b\367L\006#\011\000`\000\000\000\277\001\000\000\022\000\000\200\360?\305\212\000\015\235\232\336X\010\000E\000\001\261\001W\000\000x\021\000\000\262\s\367\300\250\013=\023\304\023\304\001\235\265\341REGISTER sip:W.X.Y.Z SIP/2.0
        Via: SIP/2.0/UDP \000\000\247b\367L9J\011\000`\000\000\000\207\001\000\000\022\000\000\015\235\232\336X\000\200\360?\305\212\010\000E\000\001y\006\271\000\000@\021\200\202\300\250\013=\262\s\367\023\304\023\304\001e8\206SIP/2.0 403 Forbidden
        Via: SIP/2.0/UDP 178.92.115.247\000\000\000
        0x0000:  5245 4749 5354 4552 2073 6970 3a39 332e
        0x0010:  3138 332e 3139 392e 3133 3020 5349 502f
        0x0020:  322e 300d 0a56 6961 3a20 5349 502f 322e
        0x0030:  302f 5544 5020
        0x0000:  4500 01b1 0156 0000 7811 0000 b25c 73f7  E....V..x....\s.
        0x0010:  c0a8 0b3d 13c4 13c4 019d b5e1 5245 4749  ...=........REGI
        0x0020:  5354 4552 2073 6970 3a39 332e 3138 332e  STER.sip:W.X.
        0x0030:  3139 392e 3133 3020 5349 502f 322e 300d  Y.Z.SIP/2.0.
        0x0040:  0a56 6961 3a20 5349 502f 322e 302f 5544  .Via:.SIP/2.0/UD
        0x0050:  5020                                     P.
11:11:03.369827 IP (tos 0x0, ttl 64, id 1720, offset 0, flags [none], proto UDP (17), length 377) 192.168.11.61.5060 > 178.92.115.247.5060: SIP, length: 349
        SIP/2.0 403 Forbidden
        Via: SIP/2.0/UDP 178.92.115.247\000\000\247b\367L\006#\011\000`\000\000\000\277\001\000\000\022\000\000\200\360?\305\212\000\015\235\232\336X\010\000E\000\001\261\001W\000\000x\021\000\000\262\s\367\300\250\013=\023\304\023\304\001\235\265\341REGISTER sip:W.X.Y.Z SIP/2.0
        Via: SIP/2.0/UDP \000\000\247b\367L9J\011\000`\000\000\000\207\001\000\000\022\000\000\015\235\232\336X\000\200\360?\305\212\010\000E\000\001y\006\271\000\000@\021\200\202\300\250\013=\262\s\367\023\304\023\304\001e8\206SIP/2.0 403 Forbidden
        Via: SIP/2.0/UDP 178.92.115.247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000
        0x0000:  5349 502f 322e 3020 3430 3320 466f 7262
        0x0010:  6964 6465 6e0d 0a56 6961 3a20 5349 502f
        0x0020:  322e 302f 5544 5020 3137 382e 3932 2e31
        0x0030:  3135 2e32 3437
        0x0000:  4500 0179 06b8 0000 4011 8083 c0a8 0b3d  E..y....@......=
        0x0010:  b25c 73f7 13c4 13c4 0165 418a 5349 502f  .\s......eA.SIP/
        0x0020:  322e 3020 3430 3320 466f 7262 6964 6465  2.0.403.Forbidde
        0x0030:  6e0d 0a56 6961 3a20 5349 502f 322e 302f  n..Via:.SIP/2.0/
        0x0040:  5544 5020 3137 382e 3932 2e31 3135 2e32  UDP.178.92.115.2
        0x0050:  3437                                     47
11:11:03.598790 IP (tos 0x0, ttl 120, id 343, offset 0, flags [none], proto UDP (17), length 433, bad cksum 0 (->4dac)!) 178.92.115.247.5060 > 192.168.11.61.5060: SIP, length: 405
        REGISTER sip:W.X.Y.Z SIP/2.0
        Via: SIP/2.0/UDP \000\000\247b\367L9J\011\000`\000\000\000\207\001\000\000\022\000\000\015\235\232\336X\000\200\360?\305\212\010\000E\000\001y\006\271\000\000@\021\200\202\300\250\013=\262\s\367\023\304\023\304\001e8\206SIP/2.0 403 Forbidden
        Via: SIP/2.0/UDP 178.92.115.247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000
        0x0000:  5245 4749 5354 4552 2073 6970 3a39 332e
        0x0010:  3138 332e 3139 392e 3133 3020 5349 502f
        0x0020:  322e 300d 0a56 6961 3a20 5349 502f 322e
        0x0030:  302f 5544 5020
        0x0000:  4500 01b1 0157 0000 7811 0000 b25c 73f7  E....W..x....\s.
        0x0010:  c0a8 0b3d 13c4 13c4 019d b5e1 5245 4749  ...=........REGI
        0x0020:  5354 4552 2073 6970 3a39 332e 3138 332e  STER.sip:W.X.
        0x0030:  3139 392e 3133 3020 5349 502f 322e 300d  Y.Z.SIP/2.0.
        0x0040:  0a56 6961 3a20 5349 502f 322e 302f 5544  .Via:.SIP/2.0/UD
        0x0050:  5020                                     P.
11:11:03.608825 IP (tos 0x0, ttl 64, id 1721, offset 0, flags [none], proto UDP (17), length 377) 192.168.11.61.5060 > 178.92.115.247.5060: SIP, length: 349
        SIP/2.0 403 Forbidden
        Via: SIP/2.0/UDP 178.92.115.247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000
        0x0000:  5349 502f 322e 3020 3430 3320 466f 7262
        0x0010:  6964 6465 6e0d 0a56 6961 3a20 5349 502f
        0x0020:  322e 302f 5544 5020 3137 382e 3932 2e31
        0x0030:  3135 2e32 3437
        0x0000:  4500 0179 06b9 0000 4011 8082 c0a8 0b3d  E..y....@......=
        0x0010:  b25c 73f7 13c4 13c4 0165 3886 5349 502f  .\s......e8.SIP/
        0x0020:  322e 3020 3430 3320 466f 7262 6964 6465  2.0.403.Forbidde
        0x0030:  6e0d 0a56 6961 3a20 5349 502f 322e 302f  n..Via:.SIP/2.0/
        0x0040:  5544 5020 3137 382e 3932 2e31 3135 2e32  UDP.178.92.115.2
        0x0050:  3437                                     47

"Как пробросить sip-трафик в локальную сеть?"
Отправлено aos , 02-Дек-10 12:41 
это была запись tcpdump в момент попытки регистрации клиента на АТС.

W.X.Y.Z - Это внешний адрес шлюза (и АТС)
192,168,11,61 - внутренний адрес АТС
178.92.115.247 - адрес внешнего клиента, что пытался зарегистрироваться на АТС

Видимо все же АТС передает клиенту свой внутренний IP. В результате имеем какую-то "bad cksum ":
11:11:03.598790 IP (tos 0x0, ttl 120, id 343, offset 0, flags [none], proto UDP (17), length 433, bad cksum 0 (->4dac)!) 178.92.115.247.5060 > 192.168.11.61.5060: SIP, length: 405
        REGISTER sip:W.X.Y.Z SIP/2.0

И потом АТС отвечает(Forbidden..):

E..y....@......=
.\s......e8.SIP/
2.0.403.Forbidde
n..Via:.SIP/2.0/
UDP.178.92.115.2


"Как пробросить sip-трафик в локальную сеть?"
Отправлено senimore , 08-Дек-10 10:31 
>[оверквотинг удален]
> 11:11:03.598790 IP (tos 0x0, ttl 120, id 343, offset 0, flags [none],
> proto UDP (17), length 433, bad cksum 0 (->4dac)!) 178.92.115.247.5060 >
> 192.168.11.61.5060: SIP, length: 405
>         REGISTER sip:W.X.Y.Z SIP/2.0
> И потом АТС отвечает(Forbidden..):
> E..y....@......=
> .\s......e8.SIP/
> 2.0.403.Forbidde
> n..Via:.SIP/2.0/
> UDP.178.92.115.2

А В АТС есть возможность логи посмотреть?