[Serusers] NATHelper Issues

Greger V. Teigre greger at teigre.com
Sat Aug 27 11:57:07 CEST 2005


Nathelper v 0.9.x has also a new nat_uac_test("16") that you may want to 
have a look at. It is not very well documented, but checks the contact port 
against source port (when IP is the same). Should be fairly easy to 
backport. You can find an explanation of all tests in the ONsip.org Getting 
Started document.
g-)

----- Original Message ----- 
From: "Darren Nay" <dnay at ionosphere.net>
To: <serusers at lists.iptel.org>
Sent: Thursday, August 25, 2005 10:01 PM
Subject: [Serusers] NATHelper Issues


> Hey All,
>
> Got a question for you all.  I've had a nathelper implementation in place
> for months thinking that it was working, but recent events have made me
> question my configuration.
>
> It doesn't seem to be rewriting the contact header when the src_port and
> contact_port are different.  Even though I am using fix_nated_contact() 
> for
> REGISTER requests.  Please see my details below.
>
> I am using SER v8.12
>
> Here is an example ngrep capture for a REGISTER.  Notice that the source
> port is 53492, and the contact port is 53616.
>
> --------------
> U 66.110.232.221:53492 -> 208.253.183.40:5060 at 01:52:55 08/26/2005
> REGISTER sip:proxy.ionosphere.net SIP/2.0
> Via: SIP/2.0/UDP 66.110.232.221:53492;branch=z9hG4bK-7c0d1eaa
> From: spectrum wireless
> <sip:+13367908202 at proxy.ionosphere.net>;tag=f8c505c5a8fc2e3o0
> To: spectrum wireless <sip:+13367908202 at proxy.ionosphere.net>
> Call-ID: e0bd4b00-2770688f at 192.168.1.29
> CSeq: 10 REGISTER
> Max-Forwards: 70
> Contact: spectrum wireless
> <sip:+13367908202 at 66.110.232.221:53616>;expires=600
> User-Agent: IONOSPHERE I-PHONE v1.0
> Content-Length: 0
> Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
> Supported: x-sipura
> -------
> U 208.253.183.40:5060 -> 66.110.232.221:53492 at 01:52:55 08/26/2005
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP 66.110.232.221:53492;branch=z9hG4bK-7c0d1eaa
> From: spectrum wireless
> <sip:+13367908202 at proxy.ionosphere.net>;tag=f8c505c5a8fc2e3o0
> To: spectrum wireless
> <sip:+13367908202 at proxy.ionosphere.net>;tag=309667ea73a5d01d816917cdbd4fb3ac
> .6723
> Call-ID: e0bd4b00-2770688f at 192.168.1.29
> CSeq: 10 REGISTER
> Contact: <sip:+13367908202 at 66.110.232.221:53616>;q=0.00;expires=600
> Server: Sip EXpress router (0.8.12-tcp_nonb (i386/linux))
> Content-Length: 0
> Warning: 392 208.253.183.40:5060 "Noisy feedback tells:  pid=31855
> req_src_ip=66.110.232.221 req_src_port=53492 
> in_uri=sip:proxy.ionosphere.net
> out_uri=sip:proxy.ionosphere.net via_cnt==1"
> -------------
>
> Here is a snipet for REGISTER requests from my ser.cfg
>
> --------
>
>
>         # Nathelper
>         if (nat_uac_test("3")) {
>           if (method == "REGISTER" || !search("^Record-Route:")) {
>             log("LOG:Someone trying to use private IP, rewriting\n");
>             fix_nated_contact(); # Rewrite contact with source IP
>             force_rport();
>             setflag(6);
>           };
>         };
>
>         # Turn on SIP accounting
>         setflag(3);
>
>         if (!method=="REGISTER") record_route();
>
>         # loose-route processing
>         if (loose_route()) {
>           route(1);
>           break;
>         };
>
>         lookup("aliases");
>         if (!uri==myself) {
>                # mark routing logic in request
>                append_hf("P-hint: outbound\r\n");
>                route(1);
>                break;
>         };
>
>         if (uri==myself) {
>
>             if (method=="REGISTER") {
>               if (!www_authorize("proxy.ionosphere.net", "subscriber")) {
>                 www_challenge("proxy.ionosphere.net", "0");
>                 break;
>               };
>
>               save("location")
>               break;
>             };
>
>            ## etc..................
>         };
> --------
>
> Then the registration is always recorded as the contact port.  Here is a
> serctl ul output:
>
> <sip:+13367908202 at 66.110.232.221:53616>;q=0.00;expires=529
>
>
> Does anyone have idea why this is happening?  Is my SER.CFG incorrect?
>
> Thanks so much!
>
> Darren Nay
> VoIP Network Development
> Ionosphere, Inc.
> dnay at ionosphere.net
>
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
> 




More information about the sr-users mailing list