SV_RFC1034_4_3_2_23B46_1 - And QNAME is found in the cache.
Verify that whether NUT's following behavior.
Recursion service is avairable but not requested via the RD bit in the query. Search the available zones for the zone which is the nearest ancestor to QNAME. Such a zone is found. A match take QNAME out of the authoritative data, QNAME has a referral. Copy the NS RRs for the subzone into the authority section of the reply. Starting matching down in the cache. And QNAME is found in the cache. Copy all RRs attached to it that match QTYPE into the answer section.
Server
SV_RFC1034_4_3_2_23B46_1.seq [-tooloption ...]: KOI tool option See also DNSConfig.pm
AP Server1 (TN) |A.sub.example.com |3ffe:501:ffff:101::10 |192.168.1.10 | Net-y --+--------+-------------------------------------------------------------------- 3ffe:501:ffff:101::/64 | 192.168.1/24 | | | sub.example.com zone Router (TN) DNS Server6 (TN) |3ffe:501:ffff:100::1 |NS6.sub.example.com |192.168.0.1 |3ffe:501:ffff:100::30 | |192.168.0.30 | | Net-z --+--------+-----------------+-------+--- 3ffe:501:ffff:100::/64 | | 192.168.0/24 | | DNS Server1 (NUT) DNS Client1 (TN) 3ffe:501:ffff:100::XXXX 3ffe:501:ffff:100::20 192.168.0.10 192.168.0.20
XXXX: EUI64
. 3600000 IN NS A.ROOT.NET. A.ROOT.NET. 3600000 A 192.168.1.20
. 3600000 IN NS A.ROOT.NET. A.ROOT.NET. 3600000 AAAA 3ffe:501:ffff:101::20
$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 ; sub IN NS NS6.sub.example.com. NS6.sub IN A 192.168.0.30 IN AAAA 3ffe:501:ffff:100::30 ;
This test sequence is following.
DNS Client1 (TN) DNS Server1 (NUT) DNS Server6 (TN) | | | |----------------------------->| | | 1. Send standard query | | | RD = 1 | | | QNAME = A.sub.example.com | | | QTYPE = A | | | | | | |-------------------------------->| | | 2. Recv standard query | | | QNAME = A.sub.example.com | | | QTYPE = A | | | | | |<--------------------------------| | | 3. Send standard query response | | | QNAME = A.sub.example.com | | | QTYPE = A | | | ANSWER Name | | | = A.sub.example.com | | | ANSWER Type | | | = A (0x0001) | | | ANSWER Address | | | = 192.168.1.10 | | | AUTHORITY Name | | | = sub.example.com | | | AUTHORITY Type | | | = NS (0x0002) | | | AUTHORITY Name Server | | | = NS6.sub.example.com | | | | | | v |<-----------------------------| | 4. Standard query response | | AA = 0 | | RD = 1 | | RA = 1 | | QNAME = A.sub.example.com | | QTYPE = A | | ANSWER Name | | = A.sub.example.com | | ANSWER Type | | = A (0x0001) | | ANSWER Address | | = 192.168.1.10 | | AUTHORITY Name | | = sub.example.com | | AUTHORITY Type | | = NS (0x0002) | | AUTHORITY Name Server | | = NS6.sub.example.com | | | | | | Wait 5 sec. | | | | | |----------------------------->| | 5. Send standard query | | RD = 1 | | QNAME = A.sub.example.com | | QTYPE = A | | | |<-----------------------------| | 6. Standard query response | | AA = 0 | | RD = 1 | | RA = 1 | | QNAME = A.sub.example.com | | QTYPE = A | | ANSWER Name | | = A.sub.example.com | | ANSWER Type | | = A (0x0001) | | ANSWER Address | | = 192.168.1.10 | | AUTHORITY Name | | = sub.example.com | | AUTHORITY Type | | = NS (0x0002) | | AUTHORITY Name Server | | = NS6.sub.example.com | | | v v
This test sequence is following.
1. DNS Client1 (TN) send standard query QNAME=A.sub.example.com, QTYPE=A with RD=1 to NUT. 2. DNS Server1 (NUT) transmits standard query QNAME=A.sub.example.com to DNS Server6 (TN). 3. DNS Server6 (TN) send standard query response to DNS Server1 (NUT). 4. DNS Server1 (NUT) transmits standard query response to DNS Client1 (TN). (Judgment *4) 5. Again, DNS Client1 (TN) send standard query QNAME=A.sub.example.com, QTYPE=A with RD=0 to NUT. 6. DNS Server1 (NUT) transmits standard query response from cache to DNS Client1 (TN). (Judgment *6)
|
||
IP Header | Source Address | CL1_NETZ |
Destination Address | NUT_NETZ | |
UDP Header | Src Port | 1000 |
Dst Port | 53 | |
DNS Header | ID | 0x1000 |
QR | 0 | |
OPCODE | 0 | |
AA | 0 | |
TC | 0 | |
RD | 1 | |
RA | 0 | |
Z | 0 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 0 | |
ARCOUNT | 0 | |
DNS Question section | QNAME | A.sub.example.com |
QTYPE | A (0x0001) | |
QCLASS | IN (0x0001) |
|
||
IP Header | Source Address | NUT_NETZ |
Destination Address | SV6_NETZ | |
UDP Header | Src Port | ANY |
Dst Port | 53 | |
DNS Header | ID | ANY |
QR | 0 | |
OPCODE | 0 | |
AA | 0 | |
TC | 0 | |
RD | 0 | |
RA | 0 | |
Z | 0 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 0 | |
ARCOUNT | 0 | |
DNS Question section | QNAME | A.sub.example.com |
QTYPE | A (0x0001) | |
QCLASS | IN (0x0001) |
|
||
IP Header | Source Address | SV6_NETZ |
Destination Address | NUT_NETZ | |
UDP Header | Src Port | 53 |
Dst Port | Value that NUT uses | |
DNS Header | ID | Value that NUT uses |
QR | 1 | |
OPCODE | 0 | |
AA | 1 | |
TC | 0 | |
RD | 0 | |
RA | 0 | |
Z | 0 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 1 | |
ARCOUNT | 1 | |
DNS Question section | QNAME | A.sub.example.com |
QTYPE | A (0x0001) | |
QCLASS | IN (0x0001) | |
DNS Answer section | NAME | A.sub.example.com (Pointer 0xC00C) |
TYPE | A (0x0001) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 4 | |
Address | 192.168.1.10 | |
DNS Authority section | NAME | sub.example.com (Pointer 0xC00E) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS6.sub.example.com (NS6 + Pointer 0xC00E) |
|
||
IP Header | Source Address | NUT_NETZ |
Destination Address | CL1_NETZ | |
UDP Header | Src Port | 53 |
Dst Port | 1000 | |
DNS Header | ID | 0x1000 |
QR | 1 | |
OPCODE | 0 | |
AA | 0 | |
TC | 0 | |
RD | 1 | |
RA | 1 | |
Z | ANY | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 1 | |
NSCOUNT | 1 | |
ARCOUNT | 0 | |
DNS Question section | QNAME | A.sub.example.com |
QTYPE | A (0x0001) | |
QCLASS | IN (0x0001) | |
DNS Answer section | NAME | A.sub.example.com (Pointer 0xC00C) |
TYPE | A (0x0001) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 4 | |
Address | 192.168.1.10 | |
DNS Authority section | NAME | sub.example.com (Pointer 0xC00E) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS6.sub.example.com (NS6 + Pointer 0xC00E) |
|
||
IP Header | Source Address | CL1_NETZ |
Destination Address | NUT_NETZ | |
UDP Header | Src Port | 1000 |
Dst Port | 53 | |
DNS Header | ID | 0x2000 |
QR | 0 | |
OPCODE | 0 | |
AA | 0 | |
TC | 0 | |
RD | 0 | |
RA | 0 | |
Z | 0 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 0 | |
ARCOUNT | 0 | |
DNS Question section | QNAME | A.sub.example.com |
QTYPE | A (0x0001) | |
QCLASS | IN (0x0001) |
|
||
IP Header | Source Address | NUT_NETZ |
Destination Address | CL1_NETZ | |
UDP Header | Src Port | 53 |
Dst Port | 1000 | |
DNS Header | ID | 0x1000 |
QR | 1 | |
OPCODE | 0 | |
AA | 0 | |
TC | 0 | |
RD | 0 | |
RA | 1 | |
Z | ANY | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 1 | |
ARCOUNT | 0 | |
DNS Question section | QNAME | A.sub.example.com |
QTYPE | A (0x0001) | |
QCLASS | IN (0x0001) | |
DNS Answer section | NAME | A.sub.example.com (Pointer 0xC00C) |
TYPE | A (0x0001) | |
CLASS | IN (0x0001) | |
TTL | Less than 1 day (86400) | |
RDLENGTH | 4 | |
Address | 192.168.1.10 | |
DNS Authority section | NAME | sub.example.com (Pointer 0xC00E) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | Less than 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS6.sub.example.com (NS6 + Pointer 0xC00E) |
NUT_NETZ | DNS Server1's (NUT) Net-z address |
CL1_NETZ | DNS Client1's (TN) Net-z address |
SV6_NETZ | DNS Server6's (TN) Net-z address |
4. Received standard query response which include answer section and authority section. 6. Received standard query response which include answer section and authority section from cache.
None
RFC1034 DOMAIN NAMES - CONCEPTS AND FACILITIES 4. NAME SERVERS 4.3.2. Algorithm