[OpenSIPS-Devel] [OpenSIPS-Users] [RFC] NAT pinging

Bogdan-Andrei Iancu bogdan at voice-system.ro
Mon Dec 15 12:06:22 CET 2008


Hi Iñaki,

Iñaki Baz Castillo wrote:
> 2008/12/11 Bogdan-Andrei Iancu <bogdan at voice-system.ro>:
>
>   
>> A) contact info versus network info
>>
>> When considering a REGISTER request, you have two sets of information: I
>> - registered contact ; II - network info (source IP/port, proto, local
>> socket where the request was received on).
>> When comes to determine the destination for pinging, right now, the
>> logic uses the network info (as more or less NAT at network level).
>> But, according to RFC 3261, the REGISTER request may carry whatever
>> contact, like a REGISTER via UDP may register a contact for TCP (or
>> vice-versa). In case of NAT, this will not work at all (as we assume
>> that the source of REGISTER and registered contact point to the same
>> network location).
>>     
>
> Well, but it is obviously the only way. The registrar can never know
> if the private address in the Contact is behind the same public IP as
> the received one.
>
> AFAIK registering a Contact different that the address of the UA
> sending the REGISTER is just used in IMS (some exotic stuf...).
>
> Is there any other case in which the REGISTER Contact could be different?
>   
Generic case of third party registration (but such a scenario in NAT 
envs. is completely broken). Other will be client devices with multi 
proto support (see the Maxim's email), but also case can be discarded.

So, more or less, we can ignore the contact info and use (trust)  only 
the network info.
>   
>> So, the question is:  if NAT detected and such a protocol mismatch is
>> detected, should a registrar refuse the registration (as it will be
>> anyhow unusable) ?
>>     
>
> Ufortunatelly I know no UA's sending a TCP Contact via UDP. Do they exist?
>
>   
I do not, but from SIP point of view is perfect possible - like a device 
that supports both TPC and UDP, may use UDP to register both UDP and TCP 
contacts..

>
>   
>> B) PATH extension
>>
>> First of all if PATH is used and simply UDP ping is used, nathelper
>> pings the source of the REGISTER (where it came from).
>> Question: does this make sense? as anyhow the INVITEs will be sent to
>> the top PATH uri....
>>     
>
> I've never used PATH yet, but wouldn't make sense that the pinging is
> done by nat_traversal module by the proxy receiving the REGISTER from
> the UA?
>   
Normally and logically yes, but I know guys having a boarder opensips  
and using PATH just to route back (via the boarder proxy) the SIP ping 
generated by the main proxy  (to be honest, I find such a configuration 
a bit heavy :P).


Regards,
Bogdan



More information about the Devel mailing list