Just a small note: this method, though very similar to load balancing, it's not really "load balancing" in a "puristic" way. It's more like "redundancy" (with some fault-tolerance accomplished by the fact that two or more links are established).
When Kannel has more than one route to deliver traffic, it will randomly (NOT round-robin NOR QOS'ed) choose one. It doesn't make (AFAIK) any assumptions about the "quality" of the route (the queued messages that it already has, throughput, etc). Please correct me if I'm wrong: I can imagine a scenario where one of the links is established but having performance problems on the line or SMSC side. Kannel will continue to randomly deliver messages to that link and probably they will remain queued there despite the fact that the other links could be used. Anyway, I'm being overly puristic here, in a real scenario this suffices to accomodate most carrier's demands, at least for me. Regards, Alejandro. On 5/9/07, Alvaro Cornejo <[EMAIL PROTECTED]> wrote:
Hi Hillel Yes, kannel will send mo to each link up to a maximum of 10mo/sec (depending on your settings) having a total on n * 10mo/sec. So if one link is down the thoughput to that carrier will drop to (n-1)*10mo/sec. If one link have a problem, Kannel can not automatically change the throughput of the working link(s) based on the status of the agregated binds. Thoughput is a way to prevent kannel to send more mo/sec than what your carrier suppoorts or have you asigned/agreed. Even if kannel would be able to do that change, your carrier wouldn´t change it automatically. Yo may need to have to call your carrier to see if they cann asign you a temporary thoughput of 20mo/sec and wait until they make the configs.. Alvaro -----Mensaje original----- De: Hillel [mailto:[EMAIL PROTECTED] Enviado el: Miércoles, 09 de Mayo de 2007 02:39 Para: 'Giulio Harding' CC: Kannel Users Asunto: RE: load balancing can Kannel do it Hi Giulio, (I've moved this to the user group as this seems to be possible with the current Kannel CVS and so no extra patches are needed.) Giulio you have explained that if the one bind drops Kannel will automatically send via the others, but will Kannel do the load balancing to get the extra throughput of effectively 20 SMSs/sec? If each SMPP bind is at 10 SMSs/sec then can we send SMSs to the smsc-id at effectively 20 SMSs/sec and Kannel will automatically load-balance between both binds to send to the smsc-id (carriername as per your config) per bind at 10 SMSs/sec each? Or how else would you suggest using the throughput of each bind to the same carrier? Thanks for your great response. -----Original Message----- From: Giulio Harding [mailto:[EMAIL PROTECTED] Sent: 09 May 2007 04:17 To: [EMAIL PROTECTED] Cc: Kannel Devel Subject: Re: load balancing can Kannel do it As far as we can tell, Kannel supports this already - we're using it, with no obvious problems so far! We have a number of redundant binds with different carriers, including one with four binds - here's a complete version of the config we're using: # Bind 1 group = smsc smsc = smpp smsc-id = carriername host = x.x.x.x port = xxx receive-port = xxx transceiver-mode = false smsc-username = *** smsc-password = *** system-type = smpp address-range = 0 source-addr-ton = 0 source-addr-npi = 4 dest-addr-ton = 1 dest-addr-npi = 1 alt-charset="ASCII" enquire-link-interval = 30 allowed-smsc-id = "carriername" msg-id-type = 0x00 # Bind 2 group = smsc smsc = smpp smsc-id = carriername host = x.x.x.x port = xxx receive-port = xxx transceiver-mode = false smsc-username = *** smsc-password = *** system-type = smpp address-range = 0 source-addr-ton = 0 source-addr-npi = 4 dest-addr-ton = 1 dest-addr-npi = 1 alt-charset="ASCII" enquire-link-interval = 30 allowed-smsc-id = "carriername" msg-id-type = 0x00 etc. (Binds 3 and 4 are identical again) So the four binds have identical configs, and are logically identical based on their smsc-id being the same (on a side note, I think the allowed-smsc-id is redundant, and only there from a legacy configuration). So any message destined for 'carriername' will go out through any of the 4 binds - and if any binds go down, the remaining binds will happily process all traffic, with no change in behaviour. Any message coming in to kannel over any of those 4 binds will have the same smsc-id, so to any external applications, etc. the different binds aren't visible. I assume you can throttle on the individual binds, and with all binds up, get aggregate throughput equal to the sum of the max rate of each individual bind. We are using DLRs on our redundant binds, and again given that the smsc-id is the same across the binds, DLRs work fine. (BTW, if anyone sees anything wrong with this config that I've missed, please let me know :) but it's been working fine for us for the past 6+ months) Cheers, On 09/05/2007, at 2:52 AM, Hillel wrote: > Hi, > > We have a SMSC provider that wants us to load balance so the > diagram will > look like: > > Sending SMSs: > Kannel ---Bind to Gateway1-----> Gateway1 ----connect to SMSC----- > > SMSC > ---Bind to Gateway2-----> Gateway2 ----connect to SMSC-----> > > For Incoming SMSs and delivery receipts: > > Kannel <---Bind to Kannel----- Gateway1 <----connect to > Gateway1----- SMSC > <---Bind to Kannel----- Gateway2 <----connect to Gateway2 > ----- > >> From Gateway 1 and Gateway 2 we can send SMSs at 10 SMSs/sec per >> Gateway. > For SMSs going out, we must send via both Gateway1 and Gateway2 to > get 20 > SMSs/sec. > If either of the gateways go down the other must get the full > amount of the > SMSs and throttle at 10 SMS/sec. > > For delivery receipts they can come back via either Gateway. For > Incoming SMSs they can come back via either Gateway. > > > 1. For Sending SMSs is there any way to get Kannel to do the load > balancing > or must one add a patch to CVS? > > For incoming SMSs we would like to use the setup: > group = smsbox-route > smsbox-id = smsc_provider > smsc-id = "Gateway1;Gateway2" > > 2. Will this work for delivery receipts so that they can come back > with > either Gateway1 or Gateway2.? (I assume this will work for incoming > SMSs as > this is described > via the Kannel CVS website.) > > Thanks, any ideas on how to setup load-balancing (or if it can be > done) > appreciated > > > -- Giulio Harding Systems Administrator m.Net Corporation Level 2, 8 Leigh Street Adelaide SA 5000, Australia Tel: +61 8 8210 2041 Fax: +61 8 8211 9620 Mobile: 0432 876 733 MSN: [EMAIL PROTECTED] http://www.mnetcorporation.com
-- Alejandro Guerrieri Magicom http://www.magicom-bcn.net/ LinkedIn: http://www.linkedin.com/in/aguerrieri
