Rodrigo Severo wrote:
I've checked bind9's documentation, it's random-cyclic as they call it,
i.e., they just randomly choose the new first member of the list and
then recreate the list in the same order from this point.
As far as I can understand this would result in much less than
reasonable load balancing for MX records.
Why do you believe that to be the case?
To use the example you provided later:
Let's see this example:
10 brsmtp02.br.abnamro.com
10 brsmtp04.br.abnamro.com
15 naxpf001.abnamro.com
15 naxpf002.abnamro.com
15 naxpf003.abnamro.com
15 naxpf011.abnamro.com
15 naxpf012.abnamro.com
15 naxpf013.abnamro.com
30 plum03ap.abnamro.com
30 walnut001ap.abnamro.com
In this case brsmtp02.br.abnamro.com has 9 out of 10 chances of being
contacted and brsmtp04.br.abnamro.com have the remaining 1 out of 10
chances. If we are using bind as DNS cache.
That shouldn't be the case at all. The priority 15 hosts probably
illustrate bind 9's strategy best. If bind 9 is choosing a random first
entry, then it should choose naxpf001 about 16% of the time. It will be
followed by naxpf002, etc, to the end of the list. On subsequent
queries, each host will be as likely as any other to be the first item
in the list, so naxpf001 might be selected. It would be followed by
naxpf012, etc, through naxpf003.
This is a totally reasonable randomness strategy. It provides suitable
randomness for simple round-robin host selection, and should never give
90% priority to anything. Its implementation is highly performant, and
very simple, which are respectable design decisions.