Подскажите пожалуйста. Пытаюсь настроить 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
А есть echo "1" > /proc/sys/net/ipv4/ip_forward ?
>А есть echo "1" > /proc/sys/net/ipv4/ip_forward ?Конечно есть. СОтальное то кроме сип через нат работает.
PS Провел дополнительное тестирование. Подключил телефон к венде, wireshark посмотрел - пакеты с телефона валятся карректные, тоесть дестинэйшн правильный 195.3.*. Заметил закономерность, идет 1 правильный пакет, затем 2 неправильных, потом опять правильный, и т.д. По макам видно, что первый правильный пакет приходит с телефона, а неправильные пакеты - уже с сервера.
Может это поможет
>Может это поможет
>
>http://www.iptel.org/sipalg/Этот патч содержится в gentoo-sources, был у меня включен, настройки точно такие же делал, не помогло. Ситуация не изменилась вообще никак. Я считаю, что дело до ната пока что не доходит, т.к. пакеты даже не форвардит. и ктото втихаря подделывает дст в пакетах сип. Пересобрал ядро, собрал щас Linux home.advizzzor.org 2.6.29-gentoo-r3-01. Попробовал отключить conntrack в ядре. Ни с включенным ни с отключенным ситуация не меняется. Ребуты соответственно тоже не помогают.
Дополнительная пролема. Перестал работать днс на телефоне. после очередного ребута сервера. Пакеты с телефона на сервере вижу, только входящие, сервер типа не отвечает на днс вообще, ни ошибкой, никак. Телефон с сервера пингуется... ЗЫ, грешил на аппарат, но он нормально работал недели 2 назад с локальным астериском (на этом серваке), и в другой сети.
Только что попробовал на новом ядре собрать nf_conntrack_sip и nf_nat_sip модулями, modprobe, rmmod вообще на ситуацию никак не влияют. от днс отказался, прописал ИПы. Таже хрень, 1 пакет с телефона правильный, следующие 2 уже с мака сервера, имеют неверный дст. припопытке набора номера на телефоне улетает 1 пакет, и моментально короткие гудки.
>Только что попробовал на новом ядре собрать nf_conntrack_sip и nf_nat_sip модулями,A SIP телефон если дать белый ИП работает?
попробуй программными SIP клиентами через НАТ и без него.
Как настроен DSL модем?
Попробуй это.
http://siproxd.sourceforge.net/
если ничего не помогает то пинай прова.
>>Только что попробовал на новом ядре собрать nf_conntrack_sip и nf_nat_sip модулями,
>
>A SIP телефон если дать белый ИП работает?
>попробуй программными SIP клиентами через НАТ и без него.
>Как настроен DSL модем?
>Попробуй это.
>http://siproxd.sourceforge.net/
>если ничего не помогает то пинай прова.Дать белый ип не получится, телефон не умеет пппое, Программным клиентом попробовать вариант, спасибо за идею. Прова пинать бессмысленно, т.к. любой трабл , могу подстроиь сам. Но до прова дело пока не доходит, даже форвардинга нету. сипроксд пробовал,в настоящее время стоит, НО включал дебаг на нем, даже попыток регистрации нет в логах. Топология у меня такая телефон-> NAT-> ethernet -> ppp0 -> sipserver, тоесть дсл модема нет.
Сменил ИП на телефоне из другой подсети поставил, на сетевухе второй ип прописал.
На сетевухе ИП 200.1 на телефоне 200.2
прописал правило НАТ с канкретного сорса. по прежнему форвард, инпут и аутпут - аццепт.
Тыкаю набрать номер на телефоне вижу теперь такое:tcpdump -i eth1 -evs65535 host sip.aksinet.net
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes21: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: 386v=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.12922: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: 386v=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.12922: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: 386v=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
Тут видно, что пакеты только исходящие, на внешнем интерфейсе по прежнему тихо. Ошибок как видно не видно (я ошибась?).
ЗЫ. Товарищи! ОЧЕНЬ жду помощи, уже отношу это все дело к мистике.... а сделать все таки нужно...
Всем спасибо, разобрался. Косяк был в неверном правиле ДНАТ, и кэшировании коннтрэйков.