Hola Iñaki,
Hi, I've found a document about SIP load balancing
in
iptel.org
website and I
would like to comment an error I've found in the document.
The document is this:
"Towards Effective SIP load Balancing"
http://www.iptel.org/voipsecurity/doc/14%20-%20Kambourakis%20-%20Towards%20…
Page 7 says:
--------------------
SIP Proxies insert a VIA header in all the incoming SIP requests
So…
In case the LB (Load Balancer) is implemented as another proxy
all SIP responses will pass through that proxy
Request that belong to a specific dialog should not pass through LB
--------------------
This is completely true, but next page (8) says:
--------------------
Transparency for responses
Prevent Load Balancer from inserting a VIA header
E.g. in SER utilizing the SEND core command
Modify the SIP's Proxy core to ignore the VIA-header
added by the Load Balancer
-------------------
There is an important error that unfortunatelly I've realized it's
very
common. Section 18.2.2 of RFC 3261 says clearly that the responses are
*always* sent through the same nodes the request came from. So the
response
should always traverse the load balancer.
How many things from RFC3261 can be "avoided" in the real world? :)
Keeping NAT outside of the scope, you can have a load balancer in
"transparent" mode (do not add VIA or Record-Route) so the UAC send
the requests to the LB, the LB to the proxy and the proxy send back
the response directly to the UAC. What's wrong on this?.
1) Load balancer --- (SIP UDP) ---> UAS
In this case the UAS would always reply to the *real* source IP (if
this is
different of the Via "sent-by" then UAS adds "received" parameter
and replies
there).
2) Load balancer --- (SIP TCP/SCTP) ---> UAS
By definition a UAS must reply using the incoming TCP connection.
Ok, that can be done only for UDP.
So it's extrange for me that a document about SIP
load balancing
tries to
offer solutions that are not SIP compliant and also unfeasible (UAS
will
always reply to the real source IP regardless of the Via content).
Usually, the LB will proxy/resend the requests to a proxy and the
proxy to the UAS so the UAS will reply to the proxy, not the LB (but
you can find so many different scenarios on this topic that is really
difficult to have a clear idea).
Since the document proposes SER based solutions (using
"SEND"
command) I'd
just like to confirm if I'm completely right, or maybe it's common
those not
SIP compliant methods by some vendors in order to provide a load
balancing
solution.
As Víctor said, this presentation is done by researchers using the
results of a research project, which by the way i know very well :)
Saludos
JesusR.
------------------------------------
Jesus Rodriguez
VozTelecom Sistemas, S.L.
jesusr(a)voztele.com
http://www.voztele.com
Tel. 902360305
-------------------------------------