Recursive PTR query behavior
Nobumichi Ozoe
Nobumichi.Ozoe at jp.yokogawa.com
Fri Feb 24 07:57:26 UTC 2006
However, when query type is A, Server 1 doesn't go back up to the root server.
DNS Server1 believes the glue records from the previouse response from Server4.
Why is the behavior of the DNS server1 different from query type A and PTR?
DNS server1 works according to the following sequences when the query type is A.
Client1 (TN) DNS Server1 (NUT) DNS Server2 DNS Server3 (TN) DNS Server4 (TN)
| | | | |
|--------------------->| | | |
|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 | | |
| | AUTHORITY Name = org | | |
| | AUTHORITY Name Server | | |
| | =NS3.example.net | | |
| | ADDITIONAL Name | | |
| | =NS3.example.net| | |
| | ADDITIONAL Address | | |
| | =192.168.1.30 | | |
| | | | |
| |--------------------------------------------------->| |
| | | 4. Send standard query | |
| | | QNAME=A.example.org | |
| | | QTYPE=A | |
| | | | |
| |<---------------------------------------------------| |
| | | 5. Send standard response| |
| | | QNAME=A.example.org | |
| | | QTYPE=A | |
| | | AUTHORITY Name | |
| | | =example.org | |
| | | AUTHORITY Name Server | |
| | | =NS4.example.org | |
| | | ADDITIONAL Name | |
| | | =NS4.example.org | |
| | | ADDITIONAL Address | |
| | | =192.168.1.40 | |
| | | | |
| |------------------------------------------------------------------------------>|
| | | | 6. Send standard query |
| | | | QNAME=A.example.org |
| | | | QTYPE=A |
| | | | |
| |<------------------------------------------------------------------------------|
| | | | 7. 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 |
| | | | =NS4.example.org |
| | | | ADDITIONAL Name |
| | | | =NS4.example.org |
| | | | ADDITIONAL Address |
| | | | =192.168.1.40 |
|<---------------------|
|8.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|
| =NS4.example.org|
v v
Kevin Darcy wrote:
> Server1 doesn't necessarily believe the glue records from the response
> to the previous query since Server3 is not, as far as it knows,
> authoritative for anything under .org. The data isn't very "credible".
> So Server1 goes back up to the root server (Server2) to get an
> "independent" resolution of that name.
>
> - Kevin
>
> Nobumichi Ozoe wrote:
>
>
>>Hi,
>>
>>Now I am testing the recursive PTR query of BIND 9.3.1.
>>
>>The DNS Client1 request for PTR RRs for 10.1.168.192.IN-ADDR.ARPA to DNS Server1.
>>
>>% dig @192.168.0.10 10.1.168.192.IN-ADDR.ARPA. -t PTR
>>
>>DNS Server1 receved standard query from DNS Client1, and transmits recursive query.
>>It's sequence flow are described as following.
>>
>>When DNS Server1 received No. 5 packet, I expect that DNS Server1 sends
>>QNAME=10.1.168.192.IN-ADDR.ARPA, QTYPE=PTR query to DNS Server4 (No. 6 sequence).
>>However DNS Server1 sends QNAME=NS4.example.org, QTYPE=A query to DNS Server2.
>>
>>Q. Why DNS Server1 doesn't send QNAME=10.1.168.192.IN-ADDR.ARPA, QTYPE=PTR query to
>> DNS Server4 as authority of 168.192.IN-ADDR.ARPA?
>>
>>Topology
>>---------
>>
>> IN-ADDR.ARPA domain 192.IN-ADDR.ARPA domain 168.192.IN-ADDR.ARPA domain
>> DNS Server2 DNS Server3 DNS Server4
>> |A.ROOT.NET |NS3.example.net |NS4.example.org
>> |192.168.1.20 |192.168.1.30 |192.168.1.40
>> | | |
>>Net-y --+--------+---------------+------------+-----------+------- 192.168.1/24
>> | |
>> | |1.168.192.IN-ADDR.ARPA domain
>> Router (TN) DNS Server5
>> | NS5.example.org
>> |192.168.0.1 192.168.1.50
>> |
>>Net-z --+--------+-----------------+-------- 192.168.0/24
>> | |
>> | |
>> DNS Server1 (NUT) DNS Client1 (TN)
>> NS1.example.com
>> 192.168.0.10 192.168.0.20
>>
>>
>>Configuration
>>--------------
>>
>>named configuration is:
>>
>>options {
>> directory "/etc/namedb";
>> pid-file "/var/run/named/pid";
>> dump-file "/var/dump/named_dump.db";
>> statistics-file "/var/stats/named.stats";
>> listen-on { any;};
>> listen-on-v6 { any;};
>> notify no;
>> recursion yes;
>> request-ixfr no;
>> provide-ixfr no;
>>};
>>zone "." {
>> type hint;
>> file "named.root";
>>};
>>zone "example.com" {
>> type master;
>> allow-query {any;};
>> allow-transfer {any;};
>> file "master/example.com";
>>};
>>
>>
>>Zone files
>>----------
>>
>>DNS Server1 is a name server for the example.com.
>>The zone data for the example.com domain is:
>>
>>$TTL 86400 ; TTL of 1 day
>>@ IN SOA NS1.example.com. root.example.com. (
>> 2005081600 ; serial
>> 3600 ; refresh every 1 hr
>> 900 ; retry every 15 min
>> 604800 ; expire after a week
>> 3600 ; Minimum TTL of a 1 hr
>>)
>>;
>> IN NS NS1.example.com.
>>NS1 IN A 192.168.0.10
>>
>>
>>DNS Server2 is a name server for the root. Root server list on DNS Server1 is:
>>
>>. 3600000 IN NS A.ROOT.NET.
>>A.ROOT.NET. 3600000 A 192.168.1.20
>>
>>Sequence flow.
>>--------------
>>* TN: Tester node
>>* NUT: Node under test
>> <--------------- TN ---------------------------->
>>DNS Client1 (TN) DNS Server1 (NUT) DNS Server2 DNS Server3 DNS Server4 DNS Server5
>> | | | | | |
>> |----------------------------->| | | | |
>> | 1. Send standard query | | | | |
>> | QNAME | | | | |
>> | =10.1.168.192.IN-ADDR.ARPA | | | | |
>> | QTYPE=PTR | | | | |
>> | |-------------------------------->| | | |
>> | | 2. Recv standard query | | | |
>> | | QNAME | | | |
>> | | =10.1.168.192.IN-ADDR.ARPA | | | |
>> | | QTYPE=PTR | | | |
>> | | | | | |
>> | |<--------------------------------| | | |
>> | | 3. Send standard query response | | | |
>> | | QNAME | | | |
>> | | =10.1.168.192.IN-ADDR.ARPA | | | |
>> | | QTYPE=PTR | | | |
>> | | AUTHORITY Name | | | |
>> | | =192.IN-ADDR.ARPA | | | |
>> | | AUTHORITY NSDNAME | | | |
>> | | =NS3.example.net | | | |
>> | | ADDITIONAL Name | | | |
>> | | =NS3.example.net | | | |
>> | | ADDITIONAL Address | | | |
>> | | =192.168.1.30 | | | |
>> | | | | | |
>> | | v | | |
>> | | | | |
>> | |-------------------------------------------->| | |
>> | | 4. Recv standard query | | |
>> | | QNAME | | |
>> | | =10.1.168.192.IN-ADDR.ARPA | | |
>> | | QTYPE=PTR | | |
>> | | | | |
>> | |<--------------------------------------------| | |
>> | | 5. Send standard query response | | |
>> | | QNAME | | |
>> | | =10.1.168.192.IN-ADDR.ARPA | | |
>> | | QTYPE=PTR | | |
>> | | AUTHORITY Name | | |
>> | | = 168.192.IN-ADDR.ARPA | | |
>> | | AUTHORITY NSDNAME | | |
>> | | = NS4.example.org | | |
>> | | ADDITIONAL Name | | |
>> | | = NS4.example.org | | |
>> | | ADDITIONAL Address | | |
>> | | = 192.168.1.40 | | |
>> | | | | |
>> | | v | |
>> | | | |
>> | |-------------------------------------------------------->| |
>> | | 6. Send standard query | |
>> | | QNAME | |
>> | | =10.1.168.192.IN-ADDR.ARPA | |
>> | | QTYPE=PTR | |
>> | | | |
>> | |<--------------------------------------------------------| |
>> | | 7. Send standard query response| |
>> | | QNAME | |
>> | | =10.1.168.192.IN-ADDR.ARPA | |
>> | | QTYPE=PTR | |
>> | | AUTHORITY Name | |
>> | | = 1.168.192.IN-ADDR.ARPA | |
>> | | AUTHORITY NSDNAME | |
>> | | = NS5.example.org | |
>> | | ADDITIONAL Name | |
>> | | = NS5.example.org | |
>> | | ADDITIONAL Address | |
>> | | = 192.168.1.50 | |
>> | | | |
>> | | v |
>> | | |
>> | |-------------------------------------------------------------------->|
>> | | 8. Send standard query |
>> | | QNAME |
>> | | =10.1.168.192.IN-ADDR.ARPA |
>> | | QTYPE=PTR |
>> | | |
>> | |<--------------------------------------------------------------------|
>> | | 9. Send standard query response |
>> | | QNAME |
>> | | =10.1.168.192.IN-ADDR.ARPA |
>> | | QTYPE=PTR |
>> | | ANSWER NAME |
>> | | = 10.1.168.192.IN-ADDR.ARPA |
>> | | ANSWER PTRDNAME |
>> | | = A.example.org |
>> | | AUTHORITY Name |
>> | | = 1.168.192.IN-ADDR.ARPA |
>> | | AUTHORITY NSDNAME |
>> | | = NS5.example.org |
>> | | ADDITIONAL Name |
>> | | = NS5.example.org |
>> | | ADDITIONAL Address |
>> | | = 192.168.1.50 |
>> |<-----------------------------| v
>> | 10. Recv Standard query |
>> | response |
>> | QNAME |
>> | = 10.1.168.192.IN-ADDR.ARPA|
>> | QTYPE=PTR |
>> | ANSWER NAME |
>> | = 10.1.168.192.IN-ADDR.ARPA|
>> | ANSWER PTRDNAME |
>> | = A.example.org |
>> | AUTHORITY Name |
>> | = 1.168.192.IN-ADDR.ARPA |
>> | AUTHORITY NSDNAME |
>> | = NS5.example.org |
>> | ADDITIONAL Name |
>> | = NS5.example.org |
>> | ADDITIONAL Address |
>> | = 192.168.1.50 |
>> v v
>>
>>
>>Best regards,
>>
>>
>>
--
Nobumichi Ozoe
IPv6 Business
Network & Software Development Dept.
Yokogawa Electric Corporation
E-mail: Nobumichi.Ozoe at jp.yokogawa.com
URL: http://www.yokogawa.com/
More information about the bind-users
mailing list