The Load-Balancer is the only server which sees the real IP Address of the client. Thus, some parts of NAT-Traversal can only be done by the LB.
E.g. the LB must use force_rport() and mangle the contact header of the client. Further, if you use light-weight NAT-keep-alive (CR-LF) you have to do it from the LB. If you use OPTIONS requests for NAT-keep-alive you should be possible to do it from the backend servers.
If you use media relays (rtpproxy), either control them from the load balancer or from the backend-servers. If you control them from the backend-servers you have to instruct rtpproxy to accept RTP from all sources (by default it accepts RTP only from the previous SIP hop, which in this case would be the LB and not the public IP address of the SIP client).
regards klaus
PS: You are using the terms UAC and UAS incorrectly. Every SIP node is a UAC and UAS - this term only defines if a node receive requests or sends requests. I think in your case it is better to just call them "SIP clients" and "SIP servers".
On 03.02.2012 10:26, Albert Petit wrote:
Hi , Sorry for previous email. Hit send too soon .
Good morning, On my system i've a structure similar to: SIP Clients SIP Platform [-------------------] [---------------------------------] S1 @IP2 S2 @IP3 SIP UACs SIP LB ... [NATted and @IP1 non Nattted] SN @IPN
SIP LB is based on Kamailio dispatcher and is responsible of distributing the load between different Servers SIP UAS.
S1, S2,... SN Servers have a Kamailio Server too which will forward received balanced traffic to appropiate service (Presence , registrar,...)
Considering SIP LB and all SIP UAS have Public IP, how NAT from the UACs could be handled on this scenario?
Initially I thought NAT should be handled on SIP LB however I would like the most simple possible load balancer with no need to read user locations . Responsible of location users should be S1,S2,..:SN
Then, would it be possible to handle NAT of the SIP UACs *from the SIP UAS *with NAT Helper module? What i'm afraid is: If all traffic to S1,S2,..SN comes from SIP LB then nat_helper could think all clients are NATTed because top most via will be SIP LB.
What I need, I think, is that NAT Helper decides if there is NAT looking the Via Header added originally by UAC , and not the top most via (which would be SIP LB). Is that possible? If possible how should i configure Nat helper for that?
BR Albert
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users