Subject: Question about some bits in DNS header

From: Hideshi Enokihara <[email-masked]>
Date: Tue, 29 Nov 2005 15:56:52 +0900

Hi all,

I have two questions about treatment of DNS header format.

-------------------------------------------------
1.Treatment of the AA bit in response

For example, the following topologys are assumed. 

        AP Server1              DNS Server2
          |A.example.org           |example.org
          |3ffe:501:ffff:101::10   |3ffe:501:fffff:101::20
          |192.168.1.10            |192.168.1.20
          |                        | 
Net-y   --+--------+---------------+---------------------- 3ffe:501:ffff:101::/64
                   |                                       192.168.1/24
                   |
                   |
                 Router
                   |3ffe:501:ffff:100::1
                   |192.168.0.1
                   |
                   |
Net-z   --+--------+-----------------+-------------------- 3ffe:501:ffff:100::/64
          |                          |                     192.168.0/24
          |                          |
        DNS Server1               DNS Cient1
           3ffe:501:ffff:100::XXXX    3ffe:501:fffff:100::20
           192.168.0.10               192.168.0.20

In this topology, 1.DNS Client1 send query for QNAME=A.example.org,QTYPE=A to DNS Server1.
And 2.DNS Server1 send (recursive) query to DNS Server2 that is Authority of "example.com".
3. DNS Server2 send response with AA bit=1 to DNS Server1.
I have the question about next response(4). 

   DNS Client1                    DNS Server1                      DNS Server2
        |                              |                                 |
        |----------------------------->|                                 |
        | 1. Send standard query       |                                 |
        |    QNAME=A.example.org       |                                 |
        |    QTYPE=A                   |                                 |
        |                              |                                 |
        |                              |-------------------------------->|
        |                              | 2. Send standard query          |
        |                              |  QNAME=A.example.org            |
        |                              |  QTYPE=A                        |
        |                              |                                 |
        |                              |<--------------------------------|
        |                              | 3. Send standard response       |
        |                              |  QNAME=A.example.org            |
        |                              |  QTYPE=A                        |
        |                              |  ANSWER Name=A.example.org      |
        |                              |  ANSWER Address=192.168.1.10    |
        |                              |  AUTHORITY Name=example.org     |
        |                              |  AUTHORITY Name Server          |
        |                              |            =NS2.example.org     |
        |                              |  ADDITIONAL Name=NS2.example.org|
        |                              |  ADDITIONAL Address=192.168.1.20|
        |                              |                                 |
        |<-----------------------------|                                 |
        | 4. Standard query response   |                                 | 
        |  QNAME=A.example.org         |                                 |
        |  QTYPE=A                     |                                 |
        |  ANSWER Name=A.example.org   |                                 |
        |  ANSWER Address=192.168.1.10 |                                 |
        |  Authority Name=example.org  |                                 |
        |  Authority Name Server       |                                 |
        |            =NS2.example.org  |                                 |
        v                              v                                 v 

In this response(4), should DNS Server1 set AA bit to 1 or 0?
Which behavior is correct as DNS Server in accordance with RFC?

-------------------------------------------------
2.Treatment of the AA, RA bits in query

RFC1035 says,
-----------
AA              Authoritative Answer - this bit is valid in responses,
                and specifies that the responding name server is an
                authority for the domain name in question section.
-----------
and,
-----------
RA              Recursion Available - this be is set or cleared in a
                response, and denotes whether recursive query support is
                available in the name server.
-----------

These two bits(AA,RA) is valid in response.
How should I treat this bit in query?

If I want to check these bits in query,
should I assume these values to be 0?
Or, should not I assume any value?

How do you think?
Any comment are welcome.

Best Regards,

-- 
*************************************
Hideshi Enokihara
IPv6 Business
Network & Software Development Dept.
Yokogawa Electric Corporation

--
to unsubscribe send a message to [email-masked] with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/namedroppers/>

---

From: Roy Arends <[email-masked]>
Date: Tue, 29 Nov 2005 09:27:33 +0100 (CET)

Hi Hideshi-san,

>    DNS Client1                    DNS Server1                      DNS Server2

DNS Server1 must not set the AA bit in the response to DNS Client1, since
it is not the authority for A.example.org nor example.org.

The server should ignore the AA and RA bits in a query. The only place I
can think of where the AA bit appears in a request is with notify
(rfc1996) but that is not a query.

> Or, should not I assume any value?

I would not assume any value for AA and RA in a query. It has no meaning.

Regards,

Roy