CL_RFC1035_4_2_1_not_depend_order - Not depend on response in order
Verify that a NUT doesn't depend on response in order
- Queries or their responses may be reordered by the network,
- or by processing in name servers, so resolvers should not depend
- on them being returned in order.
Client
CL_RFC1035_4_2_1_not_depend_order.seq [-tooloption ...]: KOI tool option
See also DNSConfig.pm
AP Server1(TN):B.example.com AP Server2(TN):C.example.com DNS Server1(TN)
|3ffe:501:ffff:101::60 |3ffe:501:ffff:101::70 |3ffe:501:ffff:101::20
|192.168.1.60 |192.168.1.70 |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
1. In order to send the query for A type(IN class) of AP Server1(TN):B.example.com to the DNS Server1(TN),
NUT send Echo Request(Echo Message) to AP Server1(TN):B.example.com.
2. In order to send the query for A type(IN class) of AP Server2(TN):C.example.com to the DNS Server1(TN),
NUT send Echo Request(Echo Message) to AP Server2(TN):C.example.com.
This test sequence is following.
DNS Client1 (NUT) DNS Server1 (TN) AP Server1 (TN) AP Server2 (TN)
| | | |
|--------------------------------------------->| | |
| 1. Send standard query | | |
| QNAME=B.example.com | | |
| | | |
|--------------------------------------------->| | |
| 2. Send standard query | | |
| QNAME=C.example.com | | |
| | | |
|<---------------------------------------------| | |
| 3. Standard query response | | |
| QNAME=C.example.com | | |
| | | |
|----------------------------------------------|----------------------|--------------------->|
| 4. Echo Request(Echo Message) | | |
| | | |
|<---------------------------------------------| | |
| 5. Standard query response | | |
| QNAME=B.example.com | | |
| | | |
|----------------------------------------------|--------------------->| |
| 6. Echo Request(Echo Message) | | |
| | | |
v v v v
1. NUT send standard query QNAME=B.example.com to DNS Server1(TN).
Judgment (Check *1)
2. NUT send standard query QNAME=C.example.com to DNS Server1(TN).
Judgment (Check *2)
3. TN send standard query response QNAME=C.example.com to NUT.
4. NUT send Echo Request(Echo Message) to to AP Server2(TN).
Judgment (Check *4)
5. TN send standard query response QNAME=B.example.com to NUT.
6. NUT send Echo Request(Echo Message) to to AP Server1(TN).
Judgment (Check *6)
- Packet Description
1st Packet
|
1. Standard query QNAME=B.example.com 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)
|
2nd packet.
|
2. Standard query QNAME=C.example.com 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 |
C.example.com
|
QTYPE
|
A (0x0001)
|
QCLASS
|
IN (0x0001)
|
3rd packet.
|
3. Standard query response QNAME=C.example.com 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 2nd Packet's Src Port |
| DNS Header |
ID |
Same as 2nd Packet's ID |
| QR |
1 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
Same as 2nd Packet's RD |
| RA |
0 |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
1 |
| NSCOUNT |
1 |
| ARCOUNT |
1 |
| DNS Question section |
QNAME |
C.example.com |
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
B.example.com (Pointer 0xC00C) |
| TYPE |
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.70 |
| DNS Authority section |
NAME |
example.com (Pointer 0xC00E) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
6 |
| NSDNAME |
NS1.example.com (NS1 + Pointer 0xC00E) |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC03B) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.20 |
4th Packet
|
4. Standard Echo Request(Echo Message) from DNS Client1 (NUT) to AP Server2 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
AP2_NETY |
ICMP
|
Type
|
8(Echo Message for IPv4)/128(Echo Request for IPv6)
|
5th packet.
|
5. Standard query response QNAME=B.example.com 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 |
1 |
| TC |
0 |
| RD |
Same as 1st Packet's RD |
| RA |
0 |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
1 |
| NSCOUNT |
1 |
| ARCOUNT |
1 |
| DNS Question section |
QNAME |
B.example.com |
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
B.example.com (Pointer 0xC00C) |
| TYPE |
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.60 |
| DNS Authority section |
NAME |
example.com (Pointer 0xC00E) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
6 |
| NSDNAME |
NS1.example.com (NS1 + Pointer 0xC00E) |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC03B) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.20 |
6th Packet
|
6. Standard Echo Request(Echo Message) from DNS Client1 (NUT) to AP Server1 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
AP_NETY |
ICMP
|
Type
|
8(Echo Message for IPv4)/128(Echo Request for IPv6)
|
Exp.
| NUT_NETZ |
DNS Client1's (NUT) Net-z address |
| SV_NETY |
DNS Server1's (TN) Net-y address |
| AP_NETY |
AP Server1's (TN) Net-y address |
| AP2_NETY |
AP Server2's (TN) Net-y address |
1. Received standard query QNAME=B.example.com from NUT.
2. Received standard query QNAME=C.example.com from NUT.
4. Received Echo Request(Echo Message) from NUT.
6. Received Echo Request(Echo Message) from NUT.
If NUT has cache function, clear the cache.
RFC1035 DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
4.2.1. UDP usage