[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