[Devel] stateless sip loadbalancer

Daniel-Constantin Mierla daniel at voice-system.ro
Mon Jan 29 09:53:14 CET 2007


Hello Marcus,

would be great if you can get a patch against development version and 
register it to the tracker.
http://sourceforge.net/tracker/?atid=743022&group_id=139143&func=browse

We are approaching testing phase for new release 1.2.0 and it will be 
reviewed for including it in release.

Cheers,
Daniel


On 01/28/07 16:12, Marcus Hunger wrote:
> Hi,
> following Andreas Granigs proposal 
> (http://www.openser.org/pipermail/users/2006-March/003289.html) for creating 
> a loadbalanced/redundant sip-proxy-environment, it seems to me, that it is 
> not possible to create a scenario with loadbalancers being stateless and 
> clients being behind a nat. Establishing an INVITE-dialog went well until the 
> callee's 200 OK had to be ACKed. At this point of the session, messages are 
> not routed anymore using path's information but only relying on 
> record-routing and record-routes lack information about natted clients. So 
> the only out of the box solution I am aware of is keeping the loadbalancer 
> stateful.
>
> In order to circumvent this problem and enable the lb to be stateless, I 
> introduced a record-route uri-parameter which stores the ip-address of the 
> client's nat-gateway. These parameters are created by the outgoing lb, are 
> kept when the loose-routing sets are created by the uac and the information 
> there is then used to route the sip message to the client correctly by the 
> lb. The parameter's name is "nat_recv". When it returns in the loose routing, 
> it gets translated to "received" so it gets routed correctly. I am doing this 
> instead of naming it "received" in first place because "received" would be 
> interpreted by the incoming lb immediatly, so that messages would get bounced 
> back to the sender in some cases. 
>
> I created a patch for openser 1.1.1 which implements the described 
> functionality. It introduces a function for openser.cfg called 
> add_rr_received_param, which adds ";nat_recv=sip:[dst_ip:dst_port]" to 
> current record-route header field. Also it includes a function which 
> translates that nat_recv-parameter to "received", when it occurs in a route 
> header field so the packet can then be routed according to the included 
> information. The function hooks via register_rrcb.
>
> Please find that patch attached. I would appreciate any comments on that very 
> much and would also like to hear about alternative strategies realizing the 
> described scenario.
>
> Best regards, Marcus
>
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Devel mailing list
> Devel at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/devel



More information about the Devel mailing list