SV_RFC1034_4_1_AA - The name server returns data w/ Authoritative Answer (AA) or not.
Verify that a NUT marks Authoritative Answer bit when the response comes from authoritative data
- Authoritative Answer (AA) bit is set
- Header section format
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA| Z | RCODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QDCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ANCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| NSCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ARCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Server
SV_RFC1034_4_1_AA.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
| | | | |
|----------------------------->| | | |
| 1. Send standard query | | | |
| QNAME=A.example.com | | | |
| QTYPE=A | | | |
| | | | |
|<-----------------------------| | | |
| 2. Standard query response | | | |
| QNAME=A.example.com | | | |
| QTYPE=A | | | |
| ANSWER Name | | | |
| = A.example.com | | | |
| ANSWER Address | | | |
| = 192.168.1.10 | | | |
| AUTHORITY Name | | | |
| = example.com | | | |
| AUTHORITY Name Server | | | |
| = NS1.example.com | | | |
| ADDITIONAL Name | | | |
| = NS1.example.com | | | |
| ADDITIONAL Address | | | |
| = 192.168.0.10 | | | |
| | | | |
|----------------------------->| | | |
| 3. Send standard query | | | |
| QNAME = A.example.org | | | |
| QTYPE = A | | | |
| | | | |
| |-------------------------------->| | |
| | 4. Recv standard query | | |
| | QNAME = A.example.org | | |
| | QTYPE = A | | |
| | | | |
| |<--------------------------------| | |
| | 5. Send standard query response | | |
| | AA = 0 | | |
| | QNAME = A.example.org | | |
| | QTYPE = A | | |
| | AUTHORITY Name | | |
| | = org | | |
| | AUTHORITY NSDNAME | | |
| | = NS3.example.org | | |
| | ADDITIONAL Name | | |
| | = NS3.example.org | | |
| | ADDITIONAL Address | | |
| | = 192.168.1.30 | | |
| | | | |
| | v | |
| | | |
| |-------------------------------------------->| |
| | 6. Recv standard query | |
| | QNAME = A.example.org | |
| | QTYPE = A | |
| | | |
| |<--------------------------------------------| |
| | 7. Send standard query response | |
| | AA = 0 | |
| | QNAME = A.example.org | |
| | QTYPE = A | |
| | AUTHORITY Name | |
| | = example.org | |
| | AUTHORITY NSDNAME | |
| | = NS4.example.org | |
| | ADDITIONAL Name | |
| | = NS4.example.org | |
| | ADDITIONAL Address | |
| | = 192.168.1.40 | |
| | v |
| | |
| |-------------------------------------------------------->|
| | 8. Recv standard query |
| | QNAME = A.example.org |
| | QTYPE = A |
| | |
| |<--------------------------------------------------------|
| | 9. Send standard query response |
| | AA = 1 |
| | QNAME = A.example.org |
| | QTYPE = A |
| | ANSWER Name |
| | = A.example.org |
| | ANSWER Address |
| | = 192.168.1.10 |
| | AUTHORITY Name |
| | = example.org |
| | AUTHORITY NSDNAME |
| | = NS4.example.org |
| | ADDITIONAL Name |
| | = NS4.example.org |
| | ADDITIONAL Address |
| | = 192.168.1.40 |
| | |
| | v
|<-----------------------------|
| 10. Standard query response |
| AA = 0 |
| 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
This test sequence is following.
1. DNS Client1 (TN) send standard query QNAME=A.example.com, QTYPE=A to NUT.
2. DNS Server1 (NUT) transmits standard query response to DNS Client1 (TN) with Authoritative Answer (AA) bit is set.(Judgment *2)
3. DNS Client1 (TN) send standard query QNAME=A.example.org, QTYPE=A to DNS Server1 (NUT).
4. DNS Server1 (NUT) transmits standard query QNAME=A.example.org, QTYPE=A to DNS Server2 (TN). (Judgment *4)
5. DNS Server2 (TN) send standard query response to DNS Server1 (NUT).
6. DNS Server1 (NUT) transmits standard query QNAME=A.example.org, QTYPE=A to DNS Server3 (TN). (Judgment *6)
7. DNS Server3 (TN) send standard query response to DNS Server1 (NUT).
8. DNS Server1 (NUT) transmits standard query QNAME=A.example.org, QTYPE=A to DNS Server4 (TN). (Judgment *8)
9. DNS Server4 (TN) send standard query response to DNS Server1 (NUT).
10. DNS Server1 (NUT) transmits standard query response to DNS Client1 (TN) with Authoritative Answer (AA) bit is not set.(Judgment *10)
- 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.example.com |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
- 2nd 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 |
1 |
TC |
0 |
RD |
1 |
RA |
1 |
Z |
ANY |
RCODE |
0 |
QDCOUNT |
1 |
ANCOUNT |
1 |
NSCOUNT |
1 |
ARCOUNT |
1 |
DNS Question section |
QNAME |
A.example.com |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
DNS Answer section |
NAME |
A.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 |
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.0.10 |
- 3rd 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 |
0x2000 |
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) |
- 4th 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 |
0 |
Z |
ANY |
RCODE |
0 |
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 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 |
- 6th 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 |
0 |
TC |
0 |
RD |
0 |
RA |
0 |
Z |
ANY |
RCODE |
0 |
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 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 |
- 8th 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 |
0 |
TC |
0 |
RD |
0 |
RA |
0 |
Z |
ANY |
RCODE |
0 |
QDCOUNT |
1 |
ANCOUNT |
0 |
NSCOUNT |
0 |
ARCOUNT |
ANY |
DNS Question section |
QNAME |
A.example.org |
QTYPE |
A (0x0001) |
QCLASS |
IN (0x0001) |
- 9th 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 |
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 |
- 10th 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 |
0x2000 |
QR |
1 |
OPCODE |
0 |
AA |
0 |
TC |
0 |
RD |
1 |
RA |
1 |
Z |
ANY |
RCODE |
0 |
QDCOUNT |
1 |
ANCOUNT |
1 |
NSCOUNT |
1 |
ARCOUNT |
ANY |
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 |
2. Received standard query response with Authoritative Answer (AA) bit is set
10. Received standard query response with Authoritative Answer (AA) bit is not set
None
RFC1034 DOMAIN NAMES - CONCEPTS AND FACILITIES
4. NAME SERVERS
4.3.1. Queries and responses