C/C++ version Load balancer DNS

Chris Buxton cbuxton at menandmice.com
Sat Apr 4 00:04:01 UTC 2009


On Apr 3, 2009, at 4:31 PM, MSP wrote:
> On Apr 3, 4:11 pm, Chris Buxton <cbux... at menandmice.com> wrote:
>>> Using DNS, I want to do load balancing of client requests among my
>>> available servers dynamically.
>>> In realtime requirements, any/many servers among the configured me  
>>> be
>>> down or overloaded.
>>
>>> I want to have control over distribution of load to these servers. I
>>> want to have a common FQDN to the clients and they know only FQDN. I
>>> would like to have 10/20 servers handling the client requests. When
>>> ever a server goes down, all the requests (thousands) it was  
>>> handling,
>>> should come to remaining available servers quickly (assume within  
>>> few
>>> seconds).
>>
>>> I feel we can use DNS for this purpose, but doing load balance in
>>> realtime?
>>
>> I don't believe you will be successful at this with just DNS. The
>> problem is that you want client connections switched over in case  
>> of a
>> server failure. My understanding is that web browsers will not honor
>> your TTL's. (This is how it was the last time I operated a production
>> web server cluster, back in medieval times. I don't see why things
>> would have changed.)
>>
>> What you need is a load balancing solution at the HTTP level.
>> Preferably more than one, such that the devices can share an IP
>> together in some kind of fault-tolerant way.
>>
>> Either way, if it were me, I would start my search at the F5  
>> website.http://www.f5.com/solutions/availability/
>>
>> Chris Buxton
>> Professional Services
>> Men & Mice
>>
>> _______________________________________________
>> bind-users mailing list
>> bind-us... at lists.isc.orghttps://lists.isc.org/mailman/listinfo/bind- 
>> users
>
> Hi Chris,
>
>  I have these servers located on the same system (paraller processing
> - loosely coupled). I will know the load on these servers at realtime
> and for new connections, I want to do proper load balance. Basically,
> I want to send least loaded server IP address in the DNS response so
> that the new client connection goes to the least loaded server. And if
> any server goes down, my client application will do DNS query and I
> will distribute these new connections among available servers.
>
> This sollution which I am thinking is for some telecom application and
> not for web browsers.
> I  kown that TTL for my requirement should be ZERO, so that no cashing
> happens.
>
> Please tell why we can not use DNS sollution for this.

Because browsers cache DNS results, often ignoring TTL's. In my  
(admittedly ancient) experience, browsers would cache the last x  
number of DNS results they got, where x was something like 50 or 100.  
And a result to be cached was equal to the first IP address in the DNS  
result - all other data was discarded.

Therefore, if one server of your cluster goes down, connections don't  
switch to other available servers. They just fail.

Now IE 7 and later, I have been told, behaves differently. But I  
believe other browsers still behave this way.

DNS-based load balancing, in my experience, is not up to the demanding  
task you have in mind.

Chris Buxton
Professional Services
Men & Mice




More information about the bind-users mailing list