[Question] Question about recursive queries in BIND9

Hideshi Enokihara Hideshi.Enokihara at jp.yokogawa.com
Tue Dec 20 09:43:05 UTC 2005


Hi all,

I have a question regarding recursion behavior of BIND9.

For example, I assume the following network. 

----------------

                           org domain             example.org domain
        AP Server1         DNS Server2            DNS Server3
          |A.example.org      |NS2.example.org     |NS3.example.org
          |192.168.1.10       |                    |
Net-y   --+--------+----------+--------------------+--
                   |                                                                     
                   |
                   |
                 Router
                   |
                   |
                   |
Net-z   --+--------+----------+--- 
          |                   |         
          |                   |
        DNS Server1 (BIND9)  DNS Client1

------------------

In this network, I ran follwing steps.

Pre-sequence
A. DNS Client1 send the query(QNAME=A.example.org, QTYPE=A) to DNS Server2(Authoritative server for org domain).
B. DNS Server2 send the query to DNS Server3(Authoritative server for example.org domain).
C. DNS Server3 send the response(ANSWER NAME=A.example.org, ANSWER ADDRESS=192.168.1.10) to DNS Server2.
D. DNS Server2 send the response(ANSWER NAME=A.example.org, ANSWER ADDRESS=192.168.1.10) to DNS Client1.

Note:At these steps, DNS Server2 caches the answer for QNAME=A.example.org, QTYPE=A.  

Sequense
1. DNS Client1 send the query(QNAME=A.example.org, QTYPE=A) to DNS Server1(BIND9). 
2. DNS Server1(BIND9) send the query to DNS Server2(Authoritative server for org domain).
3. DNS Server2 send the response(ANSWER NAME=A.example.org, ANSWER ADDRESS=192.168.1.10) from the cache to DNS Server1(BIND9).

I expected that BIND9 behave like 4A, but actually, BIND9 behave like 4B.

4A. DNS Server1(BIND9) send the response(ANSWER NAME=A.example.org, ANSWER ADDRESS=192.168.1.10) to Client1.
4B. DNS send the query to DNS Server3(Authoritative server for example.org domain).

This sequence is follow.

    DNS Client1           DNS Server1(BIND9)            DNS Server2             DNS Server3
        |                        |                         |                         |
        |----------------------->|                         |                         |
        | 1. Send standard query |                         |                         |
        |  QNAME=A.example.org   |                         |                         |
        |  QTYPE=A               |                         |                         |
        |                        |                         |                         |
        |                        |------------------------>|                         |
        |                        | 2. Send standard query  |                         |
        |                        |  QNAME=A.example.org    |                         |
        |                        |  QTYPE=A                |                         |
        |                        |                         |                         |
        |                        |<------------------------|                         |
        |                        | 3. Send response        |                         |
        |                        |AA bit=0                 |                         |
        |                        |QNAME=A.example.org      |                         |
        |                        |QTYPE=A                  |                         |
        |                        |ANSWER Name=A.example.org|                         |
        |                        |ANSWER ADDRESS           |                         |
        |                        |           =192.168.1.10 |                         |
        |                        |                         |                         |
        |                        |                         v                         |
        |<-----------------------|                                                   |
        |4A. Send response       |                                                   |
        |AA bit=0                |-------------------------------------------------->|
        |QNAME=A.example.org     |               4B. Send standard query             |
        |QTYPE=A                 |                 QNAME=A.example.org               |
        |ANSWER Name             |                 QTYPE=A                           |
        |     =A.example.org     |                                                   |
        |ANSWER ADDRESS          |                                                   |
        |     =192.168.1.10      |                                                   |
        v                        v                                                   v

I have a questin about step4A,4B.
Why does not DNS Server1(BIND9) send the response(4A) to DNS Client1?
What is the reason that DNS Server1(BIND9) does not use/trust DNS Server2's cache information?
Is this behavior follow the RFC?
#If BIND9 does not use/trust the other DNS server's cache information, as a result, a lot of traffic will be caused in network.

Please tell me your opinions.

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



More information about the bind-users mailing list