[Asterisk-Users] Clustering

Wai Wu wwu at Calltrol.com
Sun Mar 12 18:42:40 MST 2006


Ron,
 
Think the discussion has drifted a bit. Looking back at your original post. What you wanted was a simple load lalancer to distribute the calls from registered sip phones across multiple servers. I think you can accomblish this with a script in the entry extension (on the master server) that pulls for CPU utilization of the other servers and send the call to the one that's least utilized. As for RTP packets. I thanks the 'canrevite' scheme in * can handle it automatically, i.e. RTP packets will bypass the master server and directly to the call processor server.

-----Original Message-----
From: asterisk-users-bounces at lists.digium.com [mailto:asterisk-users-bounces at lists.digium.com]On Behalf Of Ron McCarthy
Sent: Sunday, March 12, 2006 5:07 PM
To: Gabriel Afana; Asterisk Users Mailing List - Non-Commercial Discussion
Subject: Re: [Asterisk-Users] Clustering


Hi Gabe,
Well im guessing your ServerIron wont work because its not near smart enough to know how SIP works, let alone, 99.9% of load balancers I have seen use private IP's on server side, the and Load Balncer then has the public IP's assigned to them. Right there, this creates a problem in itself. But im assiumg the Foundry isnt smart enough to keep track of multiple phones from the same IP, and all the RTP sessions associated with it, since like you said, several hundred port numbers are being used. The Juniper box seems to rewrite the actual SIP header on the outbound transversal to the Internet, this solving the NAT return path problem, and then it keeps track in a state table as to what ports go to what server, etc, etc. But I think there is no way this could "failvoer" in the middle of the car, since it would somehow have to change the RTP stream to another port, but also the phone would have to get to get registered on that server as well, which its not, which is why Douglas is using SER to have it register on several different machines, so when the failover occurs the phone is registered and the RTP stream just needs to pick up. Im trying to see exactly how he is doing this, since this is the exact thing I need, and then Ill just run OSPF on my core router (not sure if that will work yet).

I woudl perfer to do this all in hardware vs software since a Cisco/Juniper box is musch less prone to failure then a server with software, but I guess more research will tell what ill be using in the end :) 

Once I get this going, I want to post a entire howto on the wiki.

Thanks!
Ron


On 3/12/06, Gabriel Afana < asterisk at gafana.com> wrote: 

Hi Ron,
    If the SBC would have served mearly as a load balancer...I already have one and it didn't work too well.  I have a Foundry ServerIron XL load balancer and I've tried using it with Asterisk.  It has had positive and negative results.
 
Positive:  It *would* load balance between asterisk servers for whatever port I set (I was using 5060 for SIP).  However, I didn't mess with the RTP because its got so many ports (and you can't add ranges for virtual server ports, you have to enter exact ports - at least I think) and because I have no idea how that would work if SIP signaling goes to one server and RTP goes to another???  (probably not!)  I would create a virtual IP on the load balancers and have all the phones register to this IP.  When checking status of the ports on each server, it showed 5060 for all servers was unused (0 current connections).  When I would make a call, it would show the 5060 port on one of the * servers in use (1 current connections) and it worked fine....this is where the problem started.
 
Negative:  When I would hang up the phone, it would still show 1 current connection to that server's 5060 port.  Every call I would make from then on would *still* go to that same server.  It seems the ports are "sticky" or set with a keepalive.  Of course I can define these options on the ServerIron, but even with "sticky" disabled and keepalive disabled, the port would appear active (like keepalive was enabled) and every call would go to the same server (like "sticky" was enabled).  Even if I would shutdown asterisk on that server, it would still show an active user on that port and when I would make the call, the call would not go through.  The LB was not failing the port.  I think maybe if I keep playing with it...?   Any suggestions?
 
If I can get my ServerIron working, I will do a complete write up on it...but it works only partially.
 
This is why I was so interested in the Juniver SBC....if it would be able to act a proxy, do all the load balancing and instantly failover if a server fails; basically a VoIP Load Balancer.  But I guess thats not what it does.  Does a VoIP load balancer hardware exist or is the only solution right now software proxies like SER?
 
- Gabe
 
 


----- Original Message ----- 
From: Ron McCarthy <mailto:ronmccar at gmail.com>  

To: Gabriel Afana <mailto:asterisk at gafana.com>  ; Asterisk Users  <mailto:asterisk-users at lists.digium.com> Mailing List -Non-Commercial Discussion 
Sent: Sunday, March 12, 2006 1:16 PM
Subject: Re: [Asterisk-Users] Clustering

Hi Gabe,
Well I was going to use the SBC to have all phone point to the SBC, and then the SBC takes care of what servers it needs to register with, and then keep a state of what server the RTP stream and the phone need to connect to. Basically like a load balancer would. This is what I understood from Juniper's site. Have you seen anything on this?

Thanks!
Ron


On 3/11/06, Gabriel Afana < asterisk at gafana.com> wrote: 

Hi Ron,
    I've been following your thread.  I noticed you mentioned about a Juniper Session Border Controller.  I checked online and read about it, but was unsure exactly how it could intergrate with Asterisk.  How would you have planned to use that device?  I am interested because one of my upstream providers mentioned I should be using an SBC.
 
- Gabe
 


----- Original Message ----- 
From: Ron McCarthy <mailto:ronmccar at gmail.com>  

To: Asterisk Users  <mailto:asterisk-users at lists.digium.com> Mailing List - Non-Commercial Discussion 

Sent: Friday, March 10, 2006 11:22 AM
Subject: [Asterisk-Users] Clustering

Hello All,

Ive been doing more and more research on trying to setup a cluster/load balancer for Asterisk. All the Asterisk boxes would be using a config that is the same between them all (via a DB), but we want one location to point the phones to, and from there that machine/device will send it to a Asterisk server so the call can be processed. I know you cant balance the whole call, ie: once the call is started the RTP stream has to go to the same server, but a new call could go to a different server if perhaps the 1st server was unreachable.

Has anyone tried this, or got this to work? Ive been looking at using a Juniper Session Border Controller, but not sure if thats gonna do the trick, and then we also have SER..

Any comments would be great!

Thanks
Ron




  _____  



_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

Asterisk-Users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users






-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20060312/60380e08/attachment.htm


More information about the asterisk-users mailing list