ietf
[Top] [All Lists]

Re: axfr-clarify's fraudulent claims of consensus

2003-02-19 06:43:55

Josh Littlefield writes:
RFC1034 clearly states that the answer section "carries RRs which
directly answer the query."  I don't see how anyone could conclude
that AXFR clients should look for zone RRs anywhere else.

There is overwhelming consensus that (in the absence of extended
behavior requested by the client) the AXFR _server_ must leave the
additional section and authority section empty. It must put the data
into the answer section. All existing servers work this way---and must
do so for interoperability.

There are several perfectly valid parsing strategies for the client.
In particular, my software uses the simple strategy

   while there are records left
      read a record

        Which can only be found by adding up the three fields in
        the header (number of answer  records (which bind uses),
        number of records in the authority section and number of
        records in the additional section).  You can't use the DNS
        message length as too many implementations get it wrong and
        leave a couple of bytes between the end of the messages as
        discovered by processing the records and the end of the
        data that is read.  You have discovered this havn't you?
 
while BIND 9 uses the slightly more complicated strategy

        BIND has always used the simple strategy of reading the
        number from the header then processing that number of
        records after skipping any questions, again read from
        the header.
 
   while there are records left in the answer section
      read a record

        Let me see if I have your logic right,
        
        Simple:
        Read the number of questions then skip them. Read three
        numbers, add them up, then read this number of records.
        
        Complicated:
        Read the number of questions then skip them. Read one
        number then read this number of records.

        I think you have the labels the wrong way around.

Both strategies work, since servers put all records into the answer
section. Neither strategy creates any interoperability problems.

        There is different behaviour.  That is enough reason in and
        of itself to clarify the issue.

        I don't think anyone envisioned someone that would process
        records outside of the answer section as answers.

There is certainly _not_ consensus on telling the _client_ to use the
BIND 9 strategy. Furthermore, any such statement (whether ``MUST'' or
``SHOULD'') would blatantly violate RFC 2119, section 6.

This is about the tenth time that I have had to point out the blazingly
obvious fact that constraining _server_ behavior is not the same as
constraining _client_ behavior.

        
--
Mark Andrews, Internet Software Consortium
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: 
Mark(_dot_)Andrews(_at_)isc(_dot_)org