SV_RFC1123_6_1_3_2_query_while_zone_trans - Processing UDP query while zone transferring
Verify that a NUT continues to process UDP query while zone transferring.
- A DNS server MUST have sufficient internal concurrency that
- it can continue to process UDP queries while awaiting a
- response or performing a zone transfer on an open TCP
- connection
Server (Secondary)
SV_RFC1123_6_1_3_2_query_while_zone_trans.seq [-tooloption ...]: KOI tool option
See also DNSConfig.pm
- Network Topology
Net-y -----------+--------------------------------------------- 3ffe:501:ffff:101::/64
| 192.168.1/24
|
| sec.example.com domain
Router (TN) DNS Server7
|3ffe:501:ffff:100::1 |3ffe:501:ffff:100::31
|192.168.0.1 |192.168.0.31
| |
| |
Net-z --+--------+-----------------+-----+------------------+-- 3ffe:501:ffff:100::/64
| | | 192.168.0/24
| | |
DNS Server1 (NUT) DNS Client1 (TN) DNS Client2 (TN)
3ffe:501:ffff:100::XXXX 3ffe:501:ffff:100::20 3ffe:501:ffff:100::21
192.168.0.10 192.168.0.20 192.168.0.21,22
XXXX: EUI64
- Setup
- Set the DNS Server1's (NUT) address as above mentioned Network Topology.
- Configure the Server1's: (NUT)
- zone file to response query from TN.
- configuration file as secondary server about sec.example.com zone.
- disable notify function.
- Example of root server list:
- For IPv4:
. 3600000 IN NS A.ROOT.NET.
A.ROOT.NET. 3600000 A 192.168.1.20
- For IPv6:
. 3600000 IN NS A.ROOT.NET.
A.ROOT.NET. 3600000 AAAA 3ffe:501:ffff:101::20
- Example of example.com zone file:
$TTL 86400 ; TTL of 1 day
@ IN SOA NS1.example.com. root.example.com. (
2005081600 ; serial
3600 ; refresh every 1 hr
900 ; retry every 15 min
604800 ; expire after a week
3600 ; Minimum TTL of a 1 hr
)
;
IN NS NS1.example.com.
NS1 IN A 192.168.0.10
;
A IN A 192.168.1.10
- Example of DNS server configuration for secondary:
zone "sec.example.com" {
type slave;
masters {192.168.0.31;};
file "s/sec.example.com";
};
This test sequence is following.
DNS Client1 (TN) DNS Server1 (NUT) DNS Server7 (TN)
| | |
| | |
| |----------------------------->|
| | 1. Standard query |
| | QNAME = sec.example.com |
| | QTYPE = SOA (0x0006) |
| | |
| |<-----------------------------|
| | 2. Standard query response |
| | QNAME = sec.example.com |
| | QTYPE = SOA (0x0006) |
| | ANSWER Name |
| | = sec.example.com |
| | ANSWER Type |
| | = SOA (0x0006) |
| | ANSWER TTL |
| | = 300 |
| | ANSWER MNAME |
| | = NS7.sec.example.com |
| | ANSWER Rname |
| | = root.sec.example.com |
| | ANSWER SERIAL |
| | = 1 |
| | ANSWER REFRESH |
| | = 300sec |
| | ANSWER RETRY |
| | = 30sec |
| | ANSWER EXPIRE |
| | = 600sec |
| | ANSWER MINIMUM |
| | = 300sec |
| | AUTHORITY Name |
| | = sec.example.com |
| | AUTHORITY Type |
| | = NS (0x0002) |
| | AUTHORITY Name Server |
| | = NS7.sec.example.com |
| | ADDITIONAL Name |
| | = NS7.sec.example.com |
| | ADDITIONAL Type |
| | = A (0x0001) |
| | ADDITIONAL Address |
| | = 192.168.0.31 |
| | |
| |----------------------------->|
| | 3. Standard query (using TCP)|
| | QNAME = sec.example.com |
| | QTYPE = AXFR (0x00FC) |
| | |
|----------------------------->| |
| 4. Send standard query | |
| QNAME = A.example.com | |
| QTYPE = A | |
| | |
|<-----------------------------| |
| 5. Standard query response | |
| QNAME = A.example.com | |
| QTYPE = A | |
| ANSWER Name | |
| = A.example.com | |
| ANSWER Type | |
| = A (0x0001) | |
| ANSWER Address | |
| = 192.168.1.10 | |
| | |
| AUTHORITY Name | |
| = example.com | |
| AUTHORITY Type | |
| = NS (0x0002) | |
| AUTHORITY Name Server | |
| = NS1.example.com | |
| | |
| ADDITIONAL Name | |
| = NS1.example.com | |
| ADDITIONAL Type | |
| = A (0x0001) | |
| ADDITIONAL Address | |
| = 192.168.0.10 | |
| | |
v v v
This test sequence is following.
1. DNS Server1 (NUT) transmits standard query QNAME = sec.example.com,
QTYPE = SOA to DNS Server7 (TN). (Judgment *1)
2. DNS Server7 (TN) sends standard query response with SOA RRs to DNS Server1 (NUT).
3. DNS Server1 (NUT) transmits standard query with QNAME = sec.example.com,
QTYPE = AXFR using TCP to DNS Server7 (TN). (Judgment *3)
4. DNS Client1 (TN) sends standard query QNAME = A.example.com QTYPE=A to DNS Server1 (NUT).
5. DNS Server1 (NUT) transmits standard query response ANSWER Address = 192.168.1.10
to DNS Client1 (TN). (Judgment *5)
- Packet Description
- 1st packet.
|
Standard query from DNS Server1 (NUT) to Server7 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
SV7_NETZ |
| 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 |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
0 |
| NSCOUNT |
0 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
sec.example.com |
| QTYPE |
SOA (0x0006) |
| QCLASS |
IN (0x0001) |
- 2nd packet.
|
Standard query response from DNS Server7 (TN) to Server1 (NUT)
|
| IP Header |
Source Address |
SV7_NETZ |
| 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 |
1 |
| TC |
0 |
| RD |
0 |
| RA |
0 |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
1 |
| NSCOUNT |
1 |
| ARCOUNT |
2 |
| DNS Question section |
QNAME |
sec.example.com |
| QTYPE |
SOA (0x0006) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
sec.example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
300sec |
| RDLENGTH |
33 |
| MNAME |
NS7.sec.example.com (NS7 + Pointer 0xC00C) |
| RNAME |
root.sec.example.com (root + Pointer 0xC00C) |
| SERIAL |
1 |
| REFRESH |
300sec |
| RETRY |
30sec |
| EXPIRE |
600sec |
| MINIMUM |
300sec |
| DNS Authority section |
NAME |
sec.example.com (Pointer 0xC00C) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
300sec |
| RDLENGTH |
2 |
| NSDNAME |
NS7.sec.example.com (Pointer 0xC02D) |
| DNS Additional section |
NAME |
NS7.sec.example.com (Pointer 0xC02D) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
300sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.31 |
| DNS Additional section |
NAME |
NS7.sec.example.com (Pointer 0xC02D) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
300sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::31 |
- 3rd packet.
|
Standard query from DNS Server1 (NUT) to Server7 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
SV7_NETZ |
| TCP Header |
Src Port |
ANY |
| Dst Port |
53 |
| DNS Header |
ID |
ANY |
| QR |
0 |
| OPCODE |
0 |
| AA |
0 |
| TC |
0 |
| RD |
0 |
| RA |
0 |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
0 |
| NSCOUNT |
0 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
sec.example.com |
| QTYPE |
AXFR (0x00FC) |
| QCLASS |
IN (0x0001) |
- 4th 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.com |
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
- 5th 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 |
ANY |
| TC |
0 |
| RD |
1 |
| RA |
ANY |
| 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 |
- Exp.
| NUT_NETZ |
DNS Server1's (NUT) Net-z address |
| CL1_NETZ |
DNS Client1's (TN) Net-z address |
| SV7_NETZ |
DNS Server7's (TN) Net-z address |
1. Received standard query with Type=SOA.
3. Received standard query with Type=AXFR using TCP
5. Received standard query response including Answer address 192.168.1.10.
None
RFC1123 Requirements for Internet Hosts -- Application and Support
6.1.3.2 Transport Protocols