load balancing again

Kevin Darcy kcd at daimlerchrysler.com
Tue Feb 28 01:43:06 UTC 2006

Wiley Sanders wrote:

>>the latest version of BIND removes duplicate records so essentially you are with 2 records, one for each address.
>This is news to me. When did this change? We run 9.2.1 (I know,
>ancient) and it shuffles through multiple A records just fine,
>although the result appear neither precisely "random" nor "round
I think you guys are talking past each other. BIND has eliminated 
duplicate records for *years*, as per the mandate of RFC 2181. I think 
even the earliest versions of BIND 8 did this. But duplicate-elimination 
and the "round robin"-ness of answer sets are two different things. 
There was a major change from BIND 8 to BIND 9 in that the default 
behavior (previously round robin) changed to "cyclic", in which the 
first record of the set is picked at random, and all of the remaining 
records follow in proper rotational order from that record. So it's kind 
of a mixture of random and "true" round-robin. If true round-robin were 
implemented in BIND 9, the nameserver would remember what it gave as the 
first record in the set each time, and advance it one "click" for each 
response. There would be no randomness involved, and the nameserver 
would have to remember state.

>I don't know if the results are "balanced" - they are,
>however, "different" every time :-) . I suppose for truly random load
>balancing, or for balancing based on some other performance metric,
>you will need a specialized balancer. 
Um, no, an rrset-order of "random" works fine, if randomization is what 
you want (well, I guess the "fine"ness of the randomization would be 
limited by the quality of the PRNG on your particular platform, but 
let's not split hairs). Of course, randomization can lead to 
unpredictable traffic "spikes", but then that's the nature of the beast, 
not something to be blamed on BIND.

                                                         - Kevin

More information about the bind-users mailing list