CL_RFC2308_7_1_not_cache_server_fail - Resolver cache a server failure response for query tuple
Verify that a NUT caches a server failure response for the specific query tuple
- Server failures fall into two major classes. The first is where a
- server can determine that it has been misconfigured for a zone. This
- may be where it has been listed as a server, but not configured to be
- a server for the zone, or where it has been configured to be a server
- for the zone, but cannot obtain the zone data for some reason. This
- can occur either because the zone file does not exist or contains
- errors, or because another server from which the zone should have
- been available either did not respond or was unable or unwilling to
- supply the zone.
- The second class is where the server needs to obtain an answer from
- elsewhere, but is unable to do so, due to network failures, other
- servers that don't reply, or return server failure errors, or similar.
- In either case a resolver MAY cache a server failure response. If it
- does so it MUST NOT cache it for longer than five (5) minutes, and it
- MUST be cached against the specific query tuple "query name, type,
- class, server IP address".
Client (with Caching function)
CL_RFC2308_7_1_not_cache_server_fail.seq [-tooloption ...]: KOI tool option
See also DNSConfig.pm
AP Server1(TN):A.example.com DNS Server1(TN)
|3ffe:501:ffff:101::10 |3ffe:501:ffff:101::20
|192.168.1.10 |192.168.1.20
| |
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
Setup
Set the DNS Server1(TN)'s address on NUT as above mentioned Network Topology.
Pre-Sequence
In order to send the query for A type(IN class) of AP Server1(TN):A.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=A.example.com |
| QTYPE=A |
| |
|<---------------------------------------------|
| 2. Standard query response |
| Server Failure |
| |
|--------------------------------------------->|
| 3. Send standard query |
| QNAME=B.example.com |
| QNAME=A |
| |
v v
1. NUT send standard query to TN.
Judgment (Check *1)
2. TN send standard query response to NUT.
3. NUT send standard query to TN.
Judgment (Check *3)
Packet Description
1st Packet
|
1. Standard query from DNS Client1 (NUT) to DNS Server1 (TN)
|
| 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 |
A.example.com
|
QTYPE
|
A (0x0001)
|
QCLASS
|
IN (0x0001)
|
2nd packet.
|
2. Standard query response from DNS Server1 (TN) to Client1 (NUT)
|
| 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 |
0 |
| TC |
0 |
| RD |
Same as 1st Packet's RD |
| RA |
0 |
| Z |
0 |
| RCODE |
2 |
| QDCOUNT |
1 |
| ANCOUNT |
0 |
| NSCOUNT |
0 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
A.example.com |
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
3rd Packet
|
4. Standard query from DNS Client1 (NUT) to DNS Server1 (TN)
|
| 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 |
B.example.com
|
QTYPE
|
A (0x0001)
|
QCLASS
|
IN (0x0001)
|
NUT_NETZ : DNS Client1(NUT)'s address
SV_NETY : DNS Server1(TN)'s address
1. Received standard query QNAME=A.example.com from NUT.
3. Received standard query QNAME=B.example.com from NUT.
If NUT has cache function, clear the cache.
RFC2308 Negative Caching of DNS Queries (DNS NCACHE)
7.1 Server Failure (OPTIONAL)