LINUX.ORG.RU
ФорумAdmin

SIP Одинаковые src и dst в пакетах


0

0

Подскажите пожалуйста. Пытаюсь настроить SIP телефон, через НАТ. В качестве НАТ сервера используется ПК с генту. Телефон не подключается к сип серверу. tcpdump видно, что 1 пакет адресван правильному сип шлюзу, второй пакет - самому телефону.При этом на внешнем интерфейсе пакетов не видно, тоесть не работает форвардинг. Цепочки INPUT, OUTPUT, FORWARD - ACCEPT. Пробовал останавливать iptables - тоже самое. После перезагрузки ПК, была до следующей перезагрузки такая ситуация: включен СНАТ по сорсу телефона (192.168.100.100) на телефоне прописаны внешние ИП днс серверов, по счетчикам iptables и по tcpdump обнаружено что пакеты днс - обрабатывались успешно, в это время сип все таки доходил до сип сервера но с локальными не транслированными адресами! После замены ДНС серверов в телефоне на локальный, в правило снат не попал ни 1 пакет, судя по счетчикам iptables. Снат включал так iptables -t nnat -A POSTROUTING -o ppp0 -j SNAT --to-source ext_if IP. После перезагрузки сервера, эта глюч прекратилась, теперь просто не форвардятся пакеты никуда., в это время через СНАТ помимо компа с виндой нормально работает ДНС , и пр. внешние сервисы, КРОМЕ сип телефона. Мысли кончились . Прошу помощи разобраться в ситуации. Непонятно КАК может получиться пакет с сорс и дст одинаковыми? ЗЫ пробовал настроить через сип прокси, тоже самое. в логе ниже телефон имеет ип 192.168.100.100 195.3.254.9 - ИП сип сервра. ЗЫЗЫ Сервер пингуется, по хттап на него заходится и пр. вещи с ним работают.:

1) 00:34:20.958463 IP (tos 0x68, ttl 250, id 287, offset 0, flags [none], proto UDP (17), length 516) 192.168.100.100.5060 > 195.3.254.9.5060: [udp sum ok] SIP, length: 488
REGISTER sip:sip.aksinet.net SIP/2.0
Via: SIP/2.0/UDP 192.168.100.100:5060;branch=z9hG4bK-8e7ff776
From: "0448" <sip:0448@sip.aksinet.net>;tag=c960c7dc6439add3o0
To: "0448" <sip:0448@sip.aksinet.net>
Call-ID: 99bd2c48-34cb4ca@192.168.100.100
CSeq: 63233 REGISTER
Max-Forwards: 70
Contact: "0448" <sip:0448@192.168.100.100:5060>;expires=3600
User-Agent: Linksys/SPA921-5.1.8
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces
2) 00:34:20.958543 IP (tos 0x68, ttl 249, id 287, offset 0, flags [none], proto UDP (17), length 516) 192.168.100.100.1024 > 192.168.100.100.5060: [bad udp cksum 41b8!] SIP, length: 488
REGISTER sip:sip.aksinet.net SIP/2.0
Via: SIP/2.0/UDP 192.168.100.100:1024;branch=z9hG4bK-8e7ff776
From: "0448" <sip:0448@sip.aksinet.net>;tag=c960c7dc6439add3o0
To: "0448" <sip:0448@sip.aksinet.net>
Call-ID: 99bd2c48-34cb4ca@192.168.100.100
CSeq: 63233 REGISTER
Max-Forwards: 70
Contact: "0448" <sip:0448@192.168.100.100:1024>;expires=3600
User-Agent: Linksys/SPA921-5.1.8
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces

PS Провел дополнительное тестирование. Подключил телефон к венде, wireshark посмотрел - пакеты с телефона валятся карректные, тоесть дестинэйшн правильный 195.3.*. Заметил закономерность, идет 1 правильный пакет, затем 2 неправильных, потом опять правильный, и т.д. По макам видно, что первый правильный пакет приходит с телефона, а неправильные пакеты - уже с сервера.

Linux home.advizzzor.org 2.6.28-gentoo-r5-05 #1 SMP Fri May 1 21:03:40 MSD 2009i686 Intel(R) Pentium(R) Dual CPU E2140 @ 1.60GHz GenuineIntel GNU/Linux

Ответ на: комментарий от dimon555

Этот модуль был у меня включен в ядре. Сейчас попробовал пересобрать , ядро псвежее 2.6.29-gentoo-r3-01, ни с включенным коннтрэком ни с выключенным, ситуация не меняется.

AdviZzzor
() автор топика
Ответ на: комментарий от no-dashi

я не отрицаю что он работает, но у меня в его логах даже попыток регистрации не было. Претензий к нему нет. ФИшка в одинаковых сорсах, дестинэйшнах. + к этому только что перестал работать днс на телефоне, постоянно пишет Checking DNS . На сервере пакеты на 53 порт вижу, ответов на них нет вообще. Телефон с сервера естественно пингуется, теперь даже сиппакеты не шлет, т.к. не может разрезолвить хост с сип сервером. я в шоке. Надеюсь на помощь....

AdviZzzor
() автор топика

Только что попробовал на новом ядре собрать nf_conntrack_sip и nf_nat_sip модулями, modprobe, rmmod вообще на ситуацию никак не влияют. от днс отказался, прописал ИПы. Таже хрень, 1 пакет с телефона правильный, следующие 2 уже с мака сервера, имеют неверный дст. припопытке набора номера на телефоне улетает 1 пакет, и моментально короткие гудки.

AdviZzzor
() автор топика

Сменил ИП на телефоне из другой подсети поставил, на сетевухе второй ип прописал.
На сетевухе ИП 200.1 на телефоне 200.2
прописал правило НАТ с канкретного сорса. по прежнему форвард, инпут и аутпут - аццепт.
Тыкаю набрать номер на телефоне вижу теперь такое:

tcpdump -i eth1 -evs65535 host sip.aksinet.net
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes

21:57:44.740869 00:0e:08:d0:54:66 (oui Unknown) > 00:15:17:71:40:91 (oui Unknown), ethertype IPv4 (0x0800), length 524: (tos 0x68, ttl 250, id 941, offset 0, flags [none], proto UDP (17), length 510) 192.168.200.2.5060 > rabbit.aksinet.net.5060: SIP, length: 482
REGISTER sip:sip.aksinet.net SIP/2.0
Via: SIP/2.0/UDP 192.168.200.2:5060;branch=z9hG4bK-7f4bb615
From: "0448" <sip:0448@sip.aksinet.net>;tag=1750c0671075b87fo0
To: "0448" <sip:0448@sip.aksinet.net>
Call-ID: 99bd2c48-34cb4ca@192.168.200.2
CSeq: 64726 REGISTER
Max-Forwards: 70
Contact: "0448" <sip:0448@192.168.200.2:5060>;expires=3600
User-Agent: Linksys/SPA921-5.1.8
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces


21:57:47.750855 00:15:17:71:40:91 (oui Unknown) > 00:0e:08:d0:54:66 (oui Unknown), ethertype IPv4 (0x0800), length 552: (tos 0xc8, ttl 64, id 60814, offset 0, flags [none], proto ICMP (1), length 538) rabbit.aksinet.net > 192.168.200.2: ICMP host rabbit.aksinet.net unreachable, length 518
(tos 0x68, ttl 249, id 941, offset 0, flags [none], proto UDP (17), length 510) 192.168.200.2.5060 > rabbit.aksinet.net.5060: SIP, length: 482
REGISTER sip:sip.aksinet.net SIP/2.0
Via: SIP/2.0/UDP 192.168.200.2:5060;branch=z9hG4bK-7f4bb615
From: "0448" <sip:0448@sip.aksinet.net>;tag=1750c0671075b87fo0
To: "0448" <sip:0448@sip.aksinet.net>
Call-ID: 99bd2c48-34cb4ca@192.168.200.2
CSeq: 64726 REGISTER
Max-Forwards: 70
Contact: "0448" <sip:0448@192.168.200.2:5060>;expires=3600
User-Agent: Linksys/SPA921-5.1.8
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces

Во втором пакете видно что ICMP host rabbit.aksinet.net unreachable, ответ с мака внутренней сетевухи. на внешнем интерфейсе по прежнему тихо. Пробовал с этим же ипом на этом же патчкорде наутом прицепиться. Инет работает, натится все номрмально, днс работает, вобщем все отлично. ЗЫ Программная звонилка не работает таким же образом, с абсолютно другого хоста. вот что получается:

home ~ # tcpdump -i eth1 -evs65535 host sip.aksinet.net
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
22:06:07.970153 00:1e:8c:4a:51:45 (oui Unknown) > 00:15:17:71:40:91 (oui Unknown), ethertype IPv4 (0x0800), length 918: (tos 0x0, ttl 128, id 28569, offset 0, flags [none], proto UDP (17), length 904) 192.168.100.3.5070 > rabbit.aksinet.net.5060: SIP, length: 876
INVITE sip:1@sip.aksinet.net SIP/2.0
Via: SIP/2.0/UDP 195.3.254.129:5060;rport;branch=z9hG4bK2493684
To: <sip:1@sip.aksinet.net>
From: "0448" <sip:0448@sip.aksinet.net>;tag=5288
Call-ID: 1242398887-3684-ADVIZZZOR@195.3.254.129
CSeq: 404 INVITE
Max-Forwards: 20
User-Agent: NCH Software Express Talk 3.10
Contact: <sip:0448@195.3.254.129:5060>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, INFO, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: 386

v=0
o=NCHSoftware-Talk 1242398911 1242398916 IN IP4 195.3.254.129
s=Express Talk Call
c=IN IP4 195.3.254.129
t=0 0
m=audio 8000 RTP/AVP 0 8 96 3 13 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 G726-32/8000
a=rtpmap:3 GSM/8000
a=rtpmap:13 CN/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv
a=local:192.168.100.3 8000
a=domain:195.3.254.129

22:06:08.483352 00:1e:8c:4a:51:45 (oui Unknown) > 00:15:17:71:40:91 (oui Unknown), ethertype IPv4 (0x0800), length 918: (tos 0x0, ttl 128, id 28577, offset 0, flags [none], proto UDP (17), length 904) 192.168.100.3.5070 > rabbit.aksinet.net.5060: SIP, length: 876
INVITE sip:1@sip.aksinet.net SIP/2.0
Via: SIP/2.0/UDP 195.3.254.129:5060;rport;branch=z9hG4bK2493684
To: <sip:1@sip.aksinet.net>
From: "0448" <sip:0448@sip.aksinet.net>;tag=5288
Call-ID: 1242398887-3684-ADVIZZZOR@195.3.254.129
CSeq: 404 INVITE
Max-Forwards: 20
User-Agent: NCH Software Express Talk 3.10
Contact: <sip:0448@195.3.254.129:5060>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, INFO, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: 386

v=0
o=NCHSoftware-Talk 1242398911 1242398916 IN IP4 195.3.254.129
s=Express Talk Call
c=IN IP4 195.3.254.129
t=0 0
m=audio 8000 RTP/AVP 0 8 96 3 13 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 G726-32/8000
a=rtpmap:3 GSM/8000
a=rtpmap:13 CN/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv
a=local:192.168.100.3 8000
a=domain:195.3.254.129

22:06:08.997300 00:1e:8c:4a:51:45 (oui Unknown) > 00:15:17:71:40:91 (oui Unknown), ethertype IPv4 (0x0800), length 918: (tos 0x0, ttl 128, id 28586, offset 0, flags [none], proto UDP (17), length 904) 192.168.100.3.5070 > rabbit.aksinet.net.5060: SIP, length: 876
INVITE sip:1@sip.aksinet.net SIP/2.0
Via: SIP/2.0/UDP 195.3.254.129:5060;rport;branch=z9hG4bK2493684
To: <sip:1@sip.aksinet.net>
From: "0448" <sip:0448@sip.aksinet.net>;tag=5288
Call-ID: 1242398887-3684-ADVIZZZOR@195.3.254.129
CSeq: 404 INVITE
Max-Forwards: 20
User-Agent: NCH Software Express Talk 3.10
Contact: <sip:0448@195.3.254.129:5060>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, INFO, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: 386

v=0
o=NCHSoftware-Talk 1242398911 1242398916 IN IP4 195.3.254.129
s=Express Talk Call
c=IN IP4 195.3.254.129
t=0 0
m=audio 8000 RTP/AVP 0 8 96 3 13 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 G726-32/8000
a=rtpmap:3 GSM/8000
a=rtpmap:13 CN/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv
a=local:192.168.100.3 8000
a=domain:195.3.254.129
Тут видно, что пакеты только исходящие, на внешнем интерфейсе по прежнему тихо. Ошибок как видно не видно (я ошибась?).
ЗЫ. Товарищи! ОЧЕНЬ жду помощи, уже отношу это все дело к мистике.... а сделать все таки нужно...

AdviZzzor
() автор топика
Ответ на: комментарий от AdviZzzor

>s=Express Talk Call

кривит эта хрень и неправильно посылает rtp поток
на астериске лечил только nat=yes, для того сип клиента у которого этот телефон

в этом express talk можно включить полный лог пакетов, смотри с каких адресов rtp потоки уходят

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

до ртп пакетов не доходит же. Пакеты сип даже не внешнюю сетевуху не форвардятся, тоесть даже натить нечего ....

AdviZzzor
() автор топика
Ответ на: комментарий от AdviZzzor

Всем спасибо, разобрался. Косяк был в неверном правиле ДНАТ, и кэшировании коннтрэйков.

AdviZzzor
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.