CL_RFC1035_7_4_cache_RRs - Caching several RRs of same type
Verify that a NUT uses the cached data
Client (with Caching function)
CL_RFC1035_7_4_cache_RRs.seq [-tooloption ...]: KOI tool option See also DNSConfig.pm
AP Server1(TN):A.example.com DNS Server1(TN) DNS Server2(TN) DNS Server3(TN) |3ffe:501:ffff:101::10 |3ffe:501:ffff:101::20 |3ffe:501:ffff:101::30 |3ffe:501:ffff:101::40 |192.168.1.10 |192.168.1.20 |192.168.1.30 |192.168.1.40 | | | | Net-y --+--------+-----------------------+-------------------------+-------------------------+--- 3ffe:501:ffff:101::/64 | 192.168.1/24 | | ROUTER1(TN) |3ffe:501:ffff:100::1 |192.168.0.1 | Net-z --+--------+------------------------------------------------------------------------------- 3ffe:501:ffff:100::/64 | 192.168.0/24 DNS Client1(NUT) 3ffe:501:ffff:100:XXXX 192.168.0.10
XXXX: EUI64 address
Set the DNS Server1(TN)'s address on NUT as above mentioned Network Topology.
In order to send the query for NS type(IN class) of example.com to the DNS Server1(TN), NUT is configured.
This test sequence is following.
DNS Client1 (NUT) DNS Server1 (TN) | | |--------------------------------------------->| | 1. Send standard query | | QNAME=example.com | | QTYPE=NS | | | |<---------------------------------------------| | 2. Standard query response | | QNAME=example.com | | QTYPE=NS | | RDATA=NS2.example.com | | RDATA=NS3.example.com | | | |--------------------------------------------->| | 3. Send standard query | | QNAME=NS2.example.com | | QTYPE=A | | | |--------------------------------------------->| | 4. Send standard query | | QNAME=NS3.example.com | | QTYPE=A | | | v v
1. NUT send standard query(QNAME=example.com, QTYPE=NS) to DNS Server1(TN). Judgment (Check *1) 2. TN send standard query response(RDATA=NS2.example.com, RDATA=NS3.example.com) to NUT. 3. NUT send standard query(QNAME=NS2.example.com, QTYPE=A) to TN. Judgment (Check *3) 4. NUT send standard query(QNAME=NS3.example.com, QTYPE=A) to TN. Judgment (Check *4)
|
||
IP Header | Source Address | NUT_NETZ |
Destination Address | SV_NETY | |
UDP Header |
Src Port |
any |
Dst Port |
53 |
|
DNS Header |
ID | any |
QR |
0 |
|
OPCODE |
0 |
|
AA |
any |
|
TC | 0 | |
RD | any | |
RA |
any |
|
Z |
any |
|
RCODE |
any |
|
QDCOUNT |
1 |
|
ANCOUNT |
0 |
|
NSCOUNT |
0 |
|
ARCOUNT |
any |
|
DNS Question section |
QNAME | example.com |
QTYPE |
NS (0x0002) |
|
QCLASS |
IN (0x0001) |
|
||
IP Header | Source Address | SV_NETY |
Destination Address | NUT_NETZ | |
UDP Header | Src Port | 53 |
Dst Port | Same as 1st Packet's Src Port | |
DNS Header | ID | Same as 1st Packet's ID |
QR | 1 | |
OPCODE | 0 | |
AA | 1 | |
TC | 0 | |
RD | Same as 1st Packet's RD | |
RA | 0 | |
Z | 0 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 2 | |
NSCOUNT | 2 | |
ARCOUNT | 2 | |
DNS Question section | QNAME | example.com |
QTYPE | NS (0x0002) | |
QCLASS | IN (0x0001) | |
DNS Answer section | NAME | example.com (Pointer 0xC00C) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS2.example.com (NS2 + Pointer 0xC00C) | |
DNS Answer section | NAME | example.com (Pointer 0xC00C) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS3.example.com (NS3 + Pointer 0xC00C) | |
DNS Authority section | NAME | example.com (Pointer 0xC00C) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS2.example.com (Pointer 0xC029) | |
DNS Authority section | NAME | example.com (Pointer 0xC00C) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS3.example.com (Pointer 0xC03B) | |
DNS Additional section | NAME | NS2.example.com (Pointer 0xC029) |
TYPE |
A (0x0001) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 4 | |
ADDRESS | 192.168.1.30 | |
DNS Additional section | NAME | NS3.example.com (Pointer 0xC03B) |
TYPE |
A (0x0001) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 4 | |
ADDRESS | 192.168.1.40 |
|
||
IP Header | Source Address | NUT_NETZ |
Destination Address | SV_NETY or SV2_NETY or SV3_NETY | |
UDP Header |
Src Port |
any |
Dst Port |
53 |
|
DNS Header |
ID | any |
QR |
0 |
|
OPCODE |
0 |
|
AA |
any |
|
TC | 0 | |
RD | any | |
RA |
any |
|
Z |
any |
|
RCODE |
any |
|
QDCOUNT |
1 |
|
ANCOUNT |
0 |
|
NSCOUNT |
0 |
|
ARCOUNT |
any |
|
DNS Question section |
QNAME | NS2.example.com |
QTYPE |
A (0x0001) |
|
QCLASS |
IN (0x0001) |
|
||
IP Header | Source Address | NUT_NETZ |
Destination Address | SV_NETY or SV2_NETY or SV3_NETY | |
UDP Header |
Src Port |
any |
Dst Port |
53 |
|
DNS Header |
ID | any |
QR |
0 |
|
OPCODE |
0 |
|
AA |
any |
|
TC | 0 | |
RD | any | |
RA |
any |
|
Z |
any |
|
RCODE |
any |
|
QDCOUNT |
1 |
|
ANCOUNT |
0 |
|
NSCOUNT |
0 |
|
ARCOUNT |
any |
|
DNS Question section |
QNAME | NS3.example.com |
QTYPE |
A (0x0001) |
|
QCLASS |
IN (0x0001) |
1. Received standard query QNAME=example.com from NUT.
3. Received standard query QNAME=NS2.example.com from NUT. 4. Received standard query QNAME=NS3.example.com from NUT. or 3. Not received standard query QNAME=NS2.example.com from NUT. 4. Not received standard query QNAME=NS3.example.com from NUT.
If NUT has cache function, clear the cache.
RFC1035 DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION 7.4. Using the cache