[Serusers] forward() and t_relay() differences
Michael Shuler
mike at bwsys.net
Tue Oct 5 18:14:09 CEST 2004
advertised_address=IP fixed most of my problems. However I try to put
forward(uri:host, uri:port) in place of a few of my t_relay()'s but every
time it makes my ser.cfg stop working correctly i.e. calls quit passing,
etc. I am trying to figure out why but it contradicts that the 2 are
supposed to be basically the same... I will let you know what I find after I
get my test server set back up.
----------------------------------------
Michael Shuler, C.E.O.
BitWise Communications, Inc. (CLEC) And BitWise Systems, Inc. (ISP)
682 High Point Lane
East Peoria, IL 61611
Office: (217) 585-0357
Cell: (309) 657-6365
Fax: (309) 213-3500
E-Mail: mike at bwsys.net
Customer Service: (877) 976-0711
> -----Original Message-----
> From: Andrei Pelinescu-Onciul
> [mailto:pelinescu-onciul at fokus.fraunhofer.de]
> Sent: Tuesday, October 05, 2004 5:43 AM
> To: Jiri Kuthan
> Cc: Michael Shuler; serusers at lists.iptel.org
> Subject: Re: [Serusers] forward() and t_relay() differences
>
>
> On Oct 05, 2004 at 00:31, Jiri Kuthan <jiri at iptel.org> wrote:
> > At 07:07 PM 10/4/2004, Michael Shuler wrote:
> > >Thanks, I already read that. What I was concerned about
> was more of if they
> > >modified the SIP message differently before being sent.
> >
> > I don't think there is a difference in the way these two
> functions modify
> > the outoging request. The difference is that the stateful
> forwarding needs
> > the reply to visit the same server. (Which should IMHO
> happen since it
> > prints its real IP in Via.)
> >
> >
> > >For example I have
> > >a layer 4 switch in front of 2 SER servers which runs a
> virtual IP of
> > >198.88.216.84. The real servers ser0 and ser1 have IP's
> of 198.88.216.87
> > >and 198.88.216.89 respectively. The problem I am having
> is that when I run
> > >2 SER seems to get confused when a gateway starts talking
> to ser0 while a
> > >client is talking to ser1.
> >
> > So what happens is as follows?: a) ser0 forwards a request to a UAS
> > b) load balancer rewrites source IP to virtual IP c) UAS
> sends back to the
> > virtual IP (as in RFC3261, source transport address matters
> more than
> > content of Via does), d) LB forwards to SER1, e) SER0 times out.
> >
> > I don't have sufficient information to judge if this is the
> problem you
> > are facing, I'm just speculating on what "SER gets confused" means.
> > If my wild guess are right, you should make sure that either:
> > - you use stateless forwarding -- there is then no proxy to
> time out. however,
> > all stateful features will be gone (see the URL I sent previously)
> > - you make sure that messages from SERs will not be
> translated. This may
> > be problematic too with replies to natted clients which
> are expecting
> > the replies to come back from the same IP (i.e., the
> virtual one).
> >
> > To resolve these problem with the scheme you are using
> you would have
> > to differentiate between replies (to preserve virtual IP)
> and forward
> > requests (to preserve real IP). A way to do so would be
> an additional
> > hop (whose IP will not be translated for request
> forwarding) but I don't
> > think that one extra box in the chain is a good solution
> to dealing with load ;)
> > Another solution would be to force SER to use a speficic
> source address for
> > resending requests -- this address would not be SER0 and
> would not be
> > mangled by load balancer. There is however no such
> feature today. (We just
> > spoke with Andrei about it for some other reasons recently.)
> >
> > >Since the layer 4 switch is doing reverse NAT so
> > >all traffic coming from the 2 ser servers appears as
> 198.88.216.84 this
> > >causes a problem when they stick themselves in the Via
> line as their real IP
> > >and not as 198.88.216.84.
> >
> > I don't think that presence of the real IP in Via is
> exactly the problem.
> > On the contrary, the virtual IP in transport may be. If the
> other entities
> > used the real address then things would be just fine, I
> guess. I speculate
> > that the problem is that the load balancers dispatches
> different parts of
> > transaction to different servers.
> >
>
> One small add-on :-)
>
> You can force ser to put any address you want in Via and RR.. Use
> advertised_address= virtual_ip (global config param), or
> set_advertised_address(virtual_ip) (normal config commant).
>
>
> Andrei
>
More information about the sr-users
mailing list