SV_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.
Caching Server
SV_RFC1035_4_2_1_not_depend_order.seq [-tooloption ...]: KOI tool option
See also DNSConfig.pm
This test sequence is following.
<--------------------- TN -------------------->
DNS Client1 (TN) DNS Server1 (NUT) DNS Server2 DNS Server3 DNS Server4 DNS Server5
| | | | | |
|----------------------------->| | | | |
| 1. Send standard query | | | | |
| QNAME=A.example.org | | | | |
| QTYPE=A | | | | |
| | | | | |
| |-------------------------------->| | | |
| | 2. Recv standard query | | | |
| | QNAME=A.example.org | | | |
| | QTYPE=A | | | |
| | | | | |
| |<--------------------------------| | | |
| | 3. Send standard query response | | | |
| | QNAME=A.example.org | | | |
| | QTYPE=A | | | |
| | AUTHORITY Name=org | | | |
| | AUTHORITY Name Server | | | |
| | =NS3.example.org | | | |
| | ADDITIONAL Name | | | |
| | =NS3.example.org | | | |
| | ADDITIONAL Address | | | |
| | =192.168.1.30 | | | |
| | | | | |
| | v | | |
| | | | |
| |-------------------------------------------->| | |
| | 4. Recv standard query | | |
| | QNAME=A.example.org | | |
| | QTYPE=A | | |
| | | | |
| |<--------------------------------------------| | |
| | 5. Send standard query response | | |
| | QNAME=A.example.org | | |
| | QTYPE=A | | |
| | AUTHORITY Name=example.org | | |
| | AUTHORITY Name Server | | |
| | = NS4.example.org | | |
| | ADDITIONAL Name | | |
| | = NS4.example.org | | |
| | ADDITIONAL Address | | |
| | = 192.168.1.40 | | |
| | | | |
| | v | |
| | | |
| |-------------------------------------------------------->| |
| | 6. Send standard query | |
| | QNAME=A.example.org | |
| | QTYPE=A | |
| | | |
| | | | |
|----------------------------->| | | |
| 7. Send standard query | | | |
| QNAME=B.virtual.org | | | |
| QTYPE=A | | | |
| | | | |
| |-------------------------------------------->| | |
| | 8. Recv standard query | | |
| | QNAME=B.virtual.org | | |
| | QTYPE=A | | |
| | | | |
| |<--------------------------------------------| | |
| | 9. Send standard query response | | |
| | QNAME=B.virtual.org | | |
| | QTYPE=A | | |
| | AUTHORITY Name=virtual.org | | |
| | AUTHORITY Name Server | | |
| | = NS5.virtual.org | | |
| | ADDITIONAL Name | | |
| | = NS5.virtual.org | | |
| | ADDITIONAL Address | | |
| | = 192.168.1.50 | | |
| | | | |
| | v v |
| | |
| |-------------------------------------------------------------------->|
| | 10. Send standard query |
| | QNAME=B.virtual.org |
| | QTYPE=A |
| | |
| |<--------------------------------------------------------------------|
| | 11. Send standard query response|
| | QNAME=B.virtual.org |
| | QTYPE=A |
| | ANSWER Name=B.virtual.org |
| | ANSWER Address=192.168.1.11 |
| | AUTHORITY Name=virtual.org |
| | AUTHORITY Name Server |
| | = NS5.virtual.org |
| | ADDITIONAL Name |
| | = NS5.virtual.org |
| | ADDITIONAL Address |
| | = 192.168.1.50 |
| | |
| | v
| | |
|<-----------------------------| |
| 12. Standard query response | |
| QNAME= B.virtual.org | |
| QTYPE=A | |
| ANSWER Name=B.virtual.org | |
| ANSWER Address=192.168.1.11 | |
| AUTHORITY Name=virtual.org | |
| AUTHORITY Name Server | |
| = NS5.virtual.org | |
| ADDITIONAL Name | |
| = NS5.virtual.org | |
| ADDITIONAL Address | |
| = 192.168.1.50 | |
| | |
| |<--------------------------------------------------------|
| | 13. Send standard query response|
| | QNAME=A.example.org |
| | QTYPE=A |
| | ANSWER Name=A.example.org |
| | ANSWER Address=192.168.1.10 |
| | AUTHORITY Name=example.org |
| | AUTHORITY Name Server |
| | = NS4.example.org |
| | ADDITIONAL Name |
| | = NS4.example.org |
| | ADDITIONAL Address |
| | = 192.168.1.40 |
| | |
| | |
| | |
|<-----------------------------| |
| 14. Standard query response | |
| QNAME= A.example.org | |
| QTYPE=A | |
| ANSWER Name=A.example.org | |
| ANSWER Address=192.168.1.10 | |
| AUTHORITY Name=example.org | |
| AUTHORITY Name Server | |
| = NS4.example.org | |
| ADDITIONAL Name | |
| = NS4.example.org | |
| ADDITIONAL Address | |
| = 192.168.1.40 | |
| | |
v v v
1. TN send standard query QNAME=A.example.org, QTYPE=A to NUT.
2. NUT transmits standard query to DNS Server2 (TN: root name server) (Judgment *2)
3. TN send query response to NUT w/ AUTHORITY Name=org, AUTHORITY Name Server=NS3.example.org.
4. NUT transmits standard query QNAME=A.example.org, QTYPE=A to DNS Server3 (TN: NS3.example.org) (Judgment *4)
5. TN send query response to NUT w/ AUTHORITY Name=example.org, AUTHORITY Name Server=NS4.example.org.
6. NUT transmits standard query QNAME=A.example.org, QTYPE=A to DNS Server4 (TN: NS4.example.org) (Judgment *6)
7. TN send standard query QNAME=B.virtual.org, QTYPE=A to NUT.
8. NUT transmits standard query QNAME=B.virtual.org, QTYPE=A to DNS Server3 (TN: NS3.example.org) (Judgment *8)
9. TN send query response to NUT w/ AUTHORITY Name=example.org, AUTHORITY Name Server=NS5.virtual.org.
10. NUT transmits standard query QNAME=B.virtual.org, QTYPE=A to DNS Server4 (TN: NS4.virtual.org) (Judgment *10)
11. TN send query response to ANSWER Name=B.virtual.org, ANSWER Address=192.168.1.11.
12. NUT transmits query response to DNS Client1 (TN) (Judgment *12)
13. TN send query response to ANSWER Name=A.example.org, ANSWER Address=192.168.1.10.
14. NUT transmits query response to DNS Client1 (TN) (Judgment *14)
- 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 |
2000 |
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.example.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
- 2nd packet.
Standard query from DNS Server1 (NUT) to Server2 (TN)
|
IP Header |
Source Address |
NUT_NETZ |
Destination Address |
SV2_NETY |
UDP Header |
Src Port |
any |
Dst Port |
53 |
DNS Header |
ID |
any |
QR |
0 |
OPCODE |
0 |
AA |
any |
TC |
0 |
RD |
0 |
RA |
any |
Z |
any |
RCODE |
any |
QDCOUNT |
1 |
ANCOUNT |
0 |
NSCOUNT |
0 |
ARCOUNT |
any |
DNS Question section |
QNAME |
A.example.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
- 3rd packet.
Standard query response from DNS Server2 (TN) to Server1 (NUT)
|
IP Header |
Source Address |
SV2_NETY |
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 |
0 |
TC |
0 |
RD |
0 |
RA |
0 |
Z |
0 |
RCODE |
0 |
QDCOUNT |
1 |
ANCOUNT |
0 |
NSCOUNT |
1 |
ARCOUNT |
1 |
DNS Question section |
QNAME |
A.example.org
|
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
DNS Authority section |
NAME |
org (Pointer 0xC016) |
TYPE |
NS (0x0002) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
6 |
NSDNAME |
NS3.example.org (NS3 + Pointer 0xC00E) |
DNS Additional section |
NAME |
NS3.example.org (Pointer 0xC02B) |
TYPE
|
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.30 |
- 4th packet.
Standard query from DNS Server1 (NUT) to Server3 (TN)
|
IP Header |
Source Address |
NUT_NETZ |
Destination Address |
SV3_NETY |
UDP Header |
Src Port |
any |
Dst Port |
53 |
DNS Header |
ID |
any |
QR |
0 |
OPCODE |
0 |
AA |
any |
TC |
0 |
RD |
0 |
RA |
any |
Z |
any |
RCODE |
any |
QDCOUNT |
1 |
ANCOUNT |
0 |
NSCOUNT |
0 |
ARCOUNT |
any |
DNS Question section |
QNAME |
A.example.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
- 5th packet.
Standard query response from DNS Server3 (TN) to Server1 (NUT)
|
IP Header |
Source Address |
SV3_NETY |
Destination Address |
NUT_NETZ |
UDP Header |
Src Port |
Value that NUT uses |
Dst Port |
53 |
DNS Header |
ID |
Value that NUT uses |
QR |
1 |
OPCODE |
0 |
AA |
0 |
TC |
0 |
RD |
0 |
RA |
0 |
Z |
0 |
RCODE |
0 |
QDCOUNT |
1 |
ANCOUNT |
0 |
NSCOUNT |
1 |
ARCOUNT |
1 |
DNS Question section |
QNAME |
A.example.org
|
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
DNS Authority section |
NAME |
example.org (Pointer 0xC00E) |
TYPE |
NS (0x0002) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
6 |
NSDNAME |
NS4.example.org (NS4 + Pointer 0xC00E) |
DNS Additional section |
NAME |
NS4.example.org (Pointer 0xC02B) |
TYPE
|
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.40 |
- 6th packet.
Standard query from DNS Server1 (NUT) to Server4 (TN)
|
IP Header |
Source Address |
NUT_NETZ |
Destination Address |
SV4_NETY |
UDP Header |
Src Port |
any |
Dst Port |
53 |
DNS Header |
ID |
any |
QR |
0 |
OPCODE |
0 |
AA |
any |
TC |
0 |
RD |
0 |
RA |
any |
Z |
any |
RCODE |
any |
QDCOUNT |
1 |
ANCOUNT |
0 |
NSCOUNT |
0 |
ARCOUNT |
any |
DNS Question section |
QNAME |
A.example.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
- 7th packet.
Standard query from DNS Client1 (TN) to Server1 (NUT)
|
IP Header |
Source Address |
CL1_NETZ |
Destination Address |
NUT_NETZ |
UDP Header |
Src Port |
2000 |
Dst Port |
53 |
DNS Header |
ID |
0x1001 |
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 |
B.virtual.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
- 8th packet.
Standard query from DNS Server1 (NUT) to Server3 (TN)
|
IP Header |
Source Address |
NUT_NETZ |
Destination Address |
SV3_NETY |
UDP Header |
Src Port |
any |
Dst Port |
53 |
DNS Header |
ID |
any |
QR |
0 |
OPCODE |
0 |
AA |
any |
TC |
0 |
RD |
0 |
RA |
any |
Z |
any |
RCODE |
any |
QDCOUNT |
1 |
ANCOUNT |
0 |
NSCOUNT |
0 |
ARCOUNT |
any |
DNS Question section |
QNAME |
B.virtual.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
- 9th packet.
Standard query response from DNS Server3 (TN) to Server1 (NUT)
|
IP Header |
Source Address |
SV3_NETY |
Destination Address |
NUT_NETZ |
UDP Header |
Src Port |
Value that NUT uses |
Dst Port |
53 |
DNS Header |
ID |
Value that NUT uses |
QR |
1 |
OPCODE |
0 |
AA |
0 |
TC |
0 |
RD |
0 |
RA |
0 |
Z |
0 |
RCODE |
0 |
QDCOUNT |
1 |
ANCOUNT |
0 |
NSCOUNT |
1 |
ARCOUNT |
1 |
DNS Question section |
QNAME |
B.virtual.org
|
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
DNS Authority section |
NAME |
virtual.org (Pointer 0xC00E) |
TYPE |
NS (0x0002) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
6 |
NSDNAME |
NS5.virtual.org (NS5 + Pointer 0xC00E) |
DNS Additional section |
NAME |
NS5.virtual.org (Pointer 0xC02B) |
TYPE
|
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.50 |
- 10th packet.
Standard query from DNS Server1 (NUT) to Server5 (TN)
|
IP Header |
Source Address |
NUT_NETZ |
Destination Address |
SV5_NETY |
UDP Header |
Src Port |
any |
Dst Port |
53 |
DNS Header |
ID |
any |
QR |
0 |
OPCODE |
0 |
AA |
any |
TC |
0 |
RD |
0 |
RA |
any |
Z |
any |
RCODE |
any |
QDCOUNT |
1 |
ANCOUNT |
0 |
NSCOUNT |
0 |
ARCOUNT |
any |
DNS Question section |
QNAME |
B.virtual.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
- 11th packet.
Standard query response from DNS Server5 (TN) to Server1 (NUT)
|
IP Header |
Source Address |
SV5_NETY |
Destination Address |
NUT_NETZ |
UDP Header |
Src Port |
Value that NUT uses |
Dst Port |
53 |
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 |
1 |
NSCOUNT |
1 |
ARCOUNT |
1 |
DNS Question section |
QNAME |
B.virtual.org
|
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
DNS Answer section |
NAME |
B.virtual.org (Pointer 0xC00C)
|
TYPE |
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.11 |
DNS Authority section |
NAME |
virtual.org (Pointer 0xC00E) |
TYPE |
NS (0x0002) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
6 |
NSDNAME |
NS5.virtual.org (NS5 + Pointer 0xC00E) |
DNS Additional section |
NAME |
NS5.virtual.org (Pointer 0xC03B) |
TYPE
|
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.50 |
- 12th 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 |
2000 |
DNS Header |
ID |
0x1001 |
QR |
1 |
OPCODE |
0 |
AA |
0 |
TC |
0 |
RD |
1 |
RA |
1 |
Z |
0 |
RCODE |
0 |
QDCOUNT |
1 |
ANCOUNT |
1 |
NSCOUNT |
1 |
ARCOUNT |
1 |
DNS Question section |
QNAME |
B.virtual.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
DNS Answer section |
NAME |
B.virtual.org (Pointer 0xC00C)
|
TYPE |
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.11 |
DNS Authority section |
NAME |
virtual.org (Pointer 0xC00E) |
TYPE |
NS (0x0002) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
6 |
NSDNAME |
NS5.virtual.org (NS5 + Pointer 0xC00E) |
DNS Additional section |
NAME |
NS5.virtual.org (Pointer 0xC03B) |
TYPE
|
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.50 |
- 13th packet.
Standard query response from DNS Server4 (TN) to Server1 (NUT)
|
IP Header |
Source Address |
SV4_NETY |
Destination Address |
NUT_NETZ |
UDP Header |
Src Port |
Value that NUT uses |
Dst Port |
53 |
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 |
1 |
NSCOUNT |
1 |
ARCOUNT |
1 |
DNS Question section |
QNAME |
A.example.org
|
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
DNS Answer section |
NAME |
A.example.org (Pointer 0xC00C)
|
TYPE |
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.10 |
DNS Authority section |
NAME |
example.org (Pointer 0xC00E) |
TYPE |
NS (0x0002) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
6 |
NSDNAME |
NS4.example.org (NS4 + Pointer 0xC00E) |
DNS Additional section |
NAME |
NS4.example.org (Pointer 0xC03B) |
TYPE
|
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.40 |
- 14th 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 |
2000 |
DNS Header |
ID |
0x1000 |
QR |
1 |
OPCODE |
0 |
AA |
0 |
TC |
0 |
RD |
1 |
RA |
1 |
Z |
0 |
RCODE |
0 |
QDCOUNT |
1 |
ANCOUNT |
1 |
NSCOUNT |
1 |
ARCOUNT |
1 |
DNS Question section |
QNAME |
A.example.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
DNS Answer section |
NAME |
A.example.org (Pointer 0xC00C)
|
TYPE |
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.10 |
DNS Authority section |
NAME |
example.org (Pointer 0xC00E) |
TYPE |
NS (0x0002) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
6 |
NSDNAME |
NS4.example.org (NS4 + Pointer 0xC00E) |
DNS Additional section |
NAME |
NS4.example.org (Pointer 0xC03B) |
TYPE
|
A (0x0001) |
CLASS |
IN (0x0001) |
TTL |
1 day (86400) |
RDLENGTH |
4 |
ADDRESS |
192.168.1.40 |
- Exp.
NUT_NETZ |
DNS Server1's (NUT) Net-z address |
CL1_NETZ |
DNS Client1's (TN) Net-z address |
SV2_NETY |
DNS Server2's (TN) Net-y address |
SV3_NETY |
DNS Server3's (TN) Net-y address |
SV4_NETY |
DNS Server4's (TN) Net-y address |
SV5_NETY |
DNS Server5's (TN) Net-y address |
2. Received standard query including QNAME=A.example.org, QTYPE=A.
4. Received standard query including QNAME=A.example.org, QTYPE=A.
6. Received standard query including QNAME=A.example.org, QTYPE=A.
8. Received standard query including QNAME=B.virtual.org, QTYPE=A.
10. Received standard query including QNAME=B.virtual.org, QTYPE=A.
12. Received standard query response including correct A resource record for QNAME=B.virtual.org, QTYPE=A.
14. Received standard query response including correct A resource record for QNAME=A.example.org, QTYPE=A.
None
RFC1035 DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
4.2.1. UDP usage