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
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)
- Packet Description
- 1st packet.
|
Standard query from DNS Client1 (TN) to Server1 (NUT)
|
| 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) |
- 2nd packet.
|
Standard query from DNS Client1 (TN) to Server1 (NUT)
|
| 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) |
- 3rd packet.
|
Standard query response from DNS Server2 (TN) to Server1 (NUT)
|
| 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) |
- 4th packet.
|
Standard query response from DNS Server1 (NUT) to Client1 (TN)
|
| 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) |
- 5th packet.
|
Standard query from DNS Client1 (TN) to Server1 (NUT)
|
| 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) |
- 6th packet.
|
Standard query response from DNS Server1 (NUT) to Client1 (TN)
|
| 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) |
- Exp.
| 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