Commit 484deb5c authored by Andreas Gustafsson's avatar Andreas Gustafsson
Browse files

clarify sortlist & rrset-order docs [RT #1052]

parent 225a66da
......@@ -2,7 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
<!-- File: $Id: Bv9ARM-book.xml,v 1.116 2001/03/14 21:53:25 halley Exp $ -->
<!-- File: $Id: Bv9ARM-book.xml,v 1.117 2001/03/19 20:21:23 gson Exp $ -->
<title>BIND 9 Administrator Reference Manual</title>
......@@ -3380,29 +3380,29 @@ is preferred least of all.</para>
<note><simpara>The <command>topology</command> option
is not yet implemented in <acronym>BIND</acronym> 9.</simpara></note>
<sect3 id="the_sortlist_statement">
<title>The <command>sortlist</command> Statement</title>
<para>Resource Records (RRs) are the data associated with the names
in a domain name space. The data is maintained in the form of sets
of RRs. The order of RRs in a set is, by default, not significant.
Therefore, to control the sorting of records in a set of resource
records, or <varname>RRset</varname>, you must use the <command>sortlist</command> statement.</para>
<para>RRs are explained more fully in <xref
linkend="types_of_resource_records_and_when_to_use_them"/>. Specifications for RRs
are documented in RFC 1035.</para>
<para>When returning multiple RRs the nameserver will normally return
them in <varname>Round Robin</varname> order,
that is, after each request the first RR is put at the end of the
list. The client resolver code should rearrange the RRs as appropriate,
<sect3 id="the_sortlist_statement">
<title>The <command>sortlist</command> Statement</title>
<para>The response to a DNS query may consist of multiple resource
records (RRs) forming a resource records set (RRset).
The name server will normally return the
RRs within the RRset in an indeterminate order
(but see the <command>rrset-order</command>
command in <xref linkend="rrset_ordering"/>).
The client resolver code should rearrange the RRs as appropriate,
that is, using any addresses on the local net in preference to other addresses.
However, not all resolvers can do this or are correctly configured.
When a client is using a local server the sorting can be performed
in the server, based on the client's address. This only requires
configuring the nameservers, not all the clients.</para>
<para>The <command>sortlist</command> statement (see below) takes
an <command>address_match_list</command> and interprets it even
more specifically than the <command>topology</command> statement
does (<xref linkend="topology"/>). Each top level statement in the <command>sortlist</command> must
does (<xref linkend="topology"/>).
Each top level statement in the <command>sortlist</command> must
itself be an explicit <command>address_match_list</command> with
one or two elements. The first element (which may be an IP address,
an IP prefix, an ACL name or a nested <command>address_match_list</command>)
......@@ -3462,13 +3462,12 @@ to other queries will not be sorted.</para>
<sect3 id="rrset_ordering"><title id="rrset_ordering_title">RRset Ordering</title>
<para>When multiple records are returned in an answer it may be
useful to configure the order of the records placed into the response.
For example, the records for a zone might be configured always to
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 <command>rrset-order</command> 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
of the ordering of the records in a multiple record response.
See also the <command>sortlist</command> statement,
<xref linkend="the_sortlist_statement"/>.
<para>An <command>order_spec</command> is defined as follows:</para>
<programlisting><optional> class <replaceable>class_name</replaceable> </optional><optional> type <replaceable>type_name</replaceable> </optional><optional> name <replaceable>"domain_name"</replaceable></optional>
order <replaceable>ordering</replaceable>
......@@ -3508,14 +3507,16 @@ order.</para></entry>
have "<literal></literal>" as a suffix, to always be returned
in random order. All other records are returned in cyclic order.</para>
<para>If multiple <command>rrset-order</command> statements appear,
they are not combined-the last one applies.</para>
<para>If no <command>rrset-order</command> statement is specified,
then a default one of:
<programlisting>rrset-order { class ANY type ANY name "*" order cyclic ; };
is used.</para>
<note><simpara>The <command>rrset-order</command> statement
is not yet implemented in <acronym>BIND</acronym> 9.</simpara></note>
they are not combined &mdash; the last one applies.</para>
<simpara>The <command>rrset-order</command> statement
is not yet implemented in <acronym>BIND</acronym> 9.
BIND 9 currently supports only a "random-cyclic" ordering,
where the server randomly chooses a starting point within
the RRset and returns the records in order starting at
that point, wrapping around the end of the RRset if
<sect3 id="synthesis"><title>Synthetic IPv6 responses</title>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment