[dns-operations] A record round-robin behavior

Mark K. Pettit pettit at yahoo-inc.com
Fri Apr 21 09:01:55 UTC 2006


Olaf M. Kolkman wrote:
>> Since the standard doesn't say anything about
>> order, the implementors first decided to use a deterministic
>> algorithm and then later decided that a (pseudo) random algorithm was
>> better.
> 
> Note also that, since the standard doesn't say anything about order, 
> there are implementations (such as NSD) that do not do any round robin 
> at all.
> 
> I am not saying that randomizing data is a bad thing I am saying that 
> client should not count on an RR set being randomly shuffled.

Yeah, obviously.  I"m just trying to attempt to predict the behavior of 
BIND.

In investigating this whole thing, I came across the "rrset-order" 
option in BIND 8, which I hadn't heard of before.

This makes things even more confusing.  According to the man page, the 
default rrset-order is "cyclic".  To quote from the BIND 8.4.6 man page:

    RRset Ordering
      When multiple records are returned in an answer it may be useful 
to con-
      figure the order the records are placed into the response. For example
      the records for a zone might be configured to always be returned 
in the
      order they are defined in the zone file. Or perhaps a random 
shuffle of
      the records as they are returned is wanted. The rrset-order statement
      permits configuration of the ordering made of the records in a 
multiple
      record response. The default, if no ordering is defined, is a cyclic
      ordering (round robin).

This implies to me that if I don't have an "rrset-order" statement in my 
named.conf file, A record round-robins should be returned in a cyclical 
fashion.  That is not the behavior I see.

Anyone have any idea why that might be?  I can try putting in the 
statement and see if the behavior changes.  I'd put in this:

   rrset-order { order cyclic; };

into my "options" section.



More information about the dns-operations mailing list