SV_RFC1034_4_3_5_DistZoneTransfer - Distribute zone information to secondary
Verify that a NUT distributes zone according to secondary's zone transfer request.
- Part of the job of a zone administrator is to maintain the zones at all
- of the name servers which are authoritative for the zone. When the inevitable
- changes are made, they must be distributed to all of the name servers.
- Changes are coordinated at the primary, typically by editing a master file for the
- zone. After editing, the administrator signals the master server to load the new zone.
- The periodic polling of the secondary servers is controlled by
- parameters in the SOA RR for the zone, which set the minimum acceptable
- polling intervals.
- When the poll shows that the zone has changed, then the secondary server
- must request a zone transfer via an AXFR request for the zone. The AXFR is
- answered by a sequence of response messages.
- The first and last messages must contain the data for the top authoritative
- node of the zone. Intermediate messages carry all of the other RRs from
- the zone, including both authoritative and non-authoritative RRs.
- an AXFR response requires the SOA
- record (always an RRSet containing a single RR) be both the first and
- last record of the reply. Where duplicates are required this way,
- the TTL transmitted in each case must be the same.
Server (Primary)
SV_RFC1034_4_3_5_DistZoneTransfer.seq [-tooloption ...]: KOI tool option
See also DNSConfig.pm
This test sequence is following.
DNS Server1 (NUT) DNS Server6 (TN)
| |
| |
|<-----------------------------|
| 1. Standard query |
| QNAME = example.com |
| QTYPE = SOA (0x0006) |
| |
|----------------------------->|
| 2. Standard query response |
| QNAME = example.com |
| QTYPE = SOA (0x0006) |
| ANSWER Name |
| = example.com |
| ANSWER Type |
| = SOA (0x0006) |
| ANSWER TTL |
| = 30 |
| ANSWER MNAME |
| = NS1.example.com |
| ANSWER Rname |
| = root.example.com |
| ANSWER SERIAL |
| = 1 |
| ANSWER REFRESH |
| = 180sec |
| ANSWER RETRY |
| = 60sec |
| ANSWER EXPIRE |
| = 360sec |
| ANSWER MINIMUM |
| = 30sec |
| 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 |
| |
|<-----------------------------|
| 3. Standard query (using TCP)|
| QNAME = example.com |
| QTYPE = AXFR (0x00FC) |
| |
|----------------------------->|
| 4. Standard query response |
| (using TCP) |
| QNAME = example.com |
| QTYPE = AXFR (0x00FC) |
| ANSWER Name |
| = example.com |
| ANSWER Type |
| = SOA (0x0006) |
| ANSWER TTL |
| = 30 |
| ANSWER MNAME |
| = NS1.example.com |
| ANSWER Rname |
| = root.example.com |
| ANSWER SERIAL |
| = 1 |
| ANSWER REFRESH |
| = 180sec |
| ANSWER RETRY |
| = 60sec |
| ANSWER EXPIRE |
| = 360sec |
| ANSWER MINIMUM |
| = 30sec |
| |
| ANSWER Name |
| = example.com |
| ANSWER Type |
| = NS (0x0002) |
| ANSWER Name |
| = NS1.example.com |
| |
| ANSWER Name |
| = A.example.com |
| ANSWER Type |
| = A (0x0001) |
| ANSWER Address |
| = 192.168.1.10 |
| |
| ANSWER Name |
| = A.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:101::10 |
| |
| ANSWER Name |
| = NS1.example.com |
| ANSWER Type |
| = A (0x0001) |
| ANSWER Address |
| = 192.168.0.10 |
| |
| ANSWER Name |
| = NS1.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::10 |
| |
| ANSWER Name |
| = example.com |
| ANSWER Type |
| = SOA (0x0006) |
| ANSWER TTL |
| = 30 |
| ANSWER MNAME |
| = NS1.example.com |
| ANSWER Rname |
| = root.example.com |
| ANSWER SERIAL |
| = 1 |
| ANSWER REFRESH |
| = 180sec |
| ANSWER RETRY |
| = 60sec |
| ANSWER EXPIRE |
| = 360sec |
| ANSWER MINIMUM |
| = 30sec |
| |
| (REFRESH (3 minutes) interval|
| expired after sent zone |
| information) |
| |
|<-----------------------------|
| 5. Standard query |
| same as above No.1, |
| except ID=0x3000 |
| |
|----------------------------->|
| 6. Standard query response |
| same as above No.2 |
| |
| 7. Editing zone on primary |
| and reload zone file. |
| |
| SERIAL of SOA is 2 |
| A.example.com address is |
| = 192.168.1.11 |
| |
| (After REFRESH (3 minutes) |
| expired) |
| |
|<-----------------------------|
| 8. Standard query |
| same as above No.1, |
| except ID=0x4000 |
| |
|----------------------------->|
| 9. Standard query response |
| same as above No.2 |
| except serial number. |
| ANSWER SERIAL |
| = 2 |
| |
|<-----------------------------|
| 10. Standard query |
| same as above No.3 |
| except ID=0x5000 |
| |
|----------------------------->|
| 11. Standard query response |
| same as No.4 except |
| serial number and A's |
| type A address |
| |
| ANSWER SERIAL |
| = 2 |
| |
| and |
| |
| ANSWER Name |
| = A.example.com |
| ANSWER Type |
| = A (0x0001) |
| ANSWER Address |
| = 192.168.1.11 |
| |
| (REFRESH (3 minutes) seconds |
| expired after sent zone |
| information) |
| |
|<-----------------------------|
| 12. Standard query |
| same as above No.3, |
| except ID=0x6000 |
| |
|----------------------------->|
| 13. Standard query response |
| same as above No.9 |
| |
v v
1. DNS Server6 (TN) sends standard query QNAME = example.com,
Type = SOA to DNS Server1 (NUT).
2. DNS Server1 (NUT) transmits standard query response with SOA RRs
to DNS Server1 (TN). (Judgment *2)
3. DNS Server6 (TN) sends standard query with QNAME = example.com,
Type = AXFR using TCP to DNS Server1 (NUT).
4. DNS Server1 (NUT) transmits standard query response including all RRs about example.com zone
using TCP to DNS Server6 (TN). (Judgment *4)
5. After REFRESH seconds expired, DNS Server6 (TN) sends standard query as same as No.1.
6. DNS Server1 (NUT) transmits standard query response as same as No.2 to DNS Server1 (NUT). (Judgment *7)
7. Editing zone on primary.
8. After REFRESH seconds expired, DNS Server6 (TN) sends standard query as same as No.1.
9. DNS Server1 (NUT) transmits standard query response incrementing SOA's serial number
to DNS Server6 (TN). (Judgment *9)
10. DNS Server6 (TN) sends standard query with QNAME = example.com,
Type = AXFR using TCP to DNS Server1 (NUT).
11. DNS Server1 (NUT) transmits standard query response including all RRs about example.com zone
differencing SOA's serial number and A.example.com address using TCP to
DNS Server6 (TN). (Judgment *11)
12. After REFRESH seconds expired, DNS Server6 (TN) sends standard query as same as No.1.
13. DNS Server1 (NUT) transmits standard query as same as No.9. (Judgment *13)
- Packet Description
- 1st packet.
|
Standard query from DNS Server6 (TN) to Server1 (NUT)
|
| IP Header |
Source Address |
SV6_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 |
0 |
| RA |
0 |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
0 |
| NSCOUNT |
0 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
example.com |
| QTYPE |
SOA (0x0006) |
| QCLASS |
IN (0x0001) |
- 2nd packet.
|
Standard query response from DNS Server1 (NUT) to Server6 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
SV6_NETZ |
| UDP Header |
Src Port |
53 |
| Dst Port |
1000 |
| DNS Header |
ID |
0x1000 |
| QR |
1 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
0 |
| RA |
ANY |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
1 |
| NSCOUNT |
1 |
| ARCOUNT |
1 |
| DNS Question section |
QNAME |
example.com |
| QTYPE |
SOA (0x0006) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
33 |
| MNAME |
NS1.example.com (NS1 + Pointer 0xC00C) |
| RNAME |
root.example.com (root + Pointer 0xC00C) |
| SERIAL |
1 |
| REFRESH |
180sec |
| RETRY |
60sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
| DNS Authority section |
NAME |
example.com (Pointer 0xC00C) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
2 |
| NSDNAME |
NS1.example.com (Pointer 0xC029) |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC029) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.10 |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC029) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::10 |
- 3rd packet.
|
Standard query from DNS Server6 (TN) to Server1 (NUT)
|
| IP Header |
Source Address |
SV6_NETZ |
| Destination Address |
NUT_NETZ |
| TCP Header |
Src Port |
1000 |
| Dst Port |
53 |
| DNS Header |
ID |
0x2000 |
| 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 |
example.com |
| QTYPE |
AXFR (0x00FC) |
| QCLASS |
IN (0x0001) |
- 4th packet.
|
Standard query response from DNS Server1 (NUT) to Server6 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
SV6_NETZ |
| TCP Header |
Src Port |
53 |
| Dst Port |
1000 |
| DNS Header |
ID |
0x2000 |
| QR |
0 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
0 |
| RA |
ANY |
| Z |
ANY |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
7 |
| NSCOUNT |
0 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
example.com |
| QTYPE |
AXFR (0x00FC) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
33 |
| MNAME |
NS1.example.com (NS1 + Pointer 0xC00C) |
| RNAME |
root.example.com (root + Pointer 0xC00C) |
| SERIAL |
1 |
| REFRESH |
30sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
| DNS Answer section |
NAME |
example.com (Pointer 0xC00C) |
TYPE
|
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
2 |
| NSDNAME |
NS1.example.com (Pointer 0xC029) |
| DNS Answer section |
NAME |
A.example.com (A + Pointer 0xC00C) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.10 |
| DNS Answer section |
NAME |
A.example.com (Pointer 0xC058) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:101::21 |
| DNS Answer section |
NAME |
NS1.example.com (Pointer 0xC029) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.10 |
| DNS Answer section |
NAME |
NS1.example.com (Pointer 0xC029) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:101::10 |
| DNS Answer section |
NAME |
example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
24 |
| MNAME |
NS1.example.com (Pointer 0xC029) |
| RNAME |
root.example.com (Pointer 0xC02F) |
| SERIAL |
1 |
| REFRESH |
30sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
- 5th packet.
- same as No.1 packet, except ID=0x3000.
- 6th packet.
- same as No.2 packet, except ID=0x3000.
- 7th packet.
- Nothing
- 8th packet.
- same as No.1 packet, except ID=0x4000.
- 9th packet.
|
Standard query response from DNS Server1 (NUT) to Server6 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
SV6_NETZ |
| UDP Header |
Src Port |
53 |
| Dst Port |
1000 |
| DNS Header |
ID |
0x4000 |
| 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 |
example.com |
| QTYPE |
SOA (0x0006) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
33 |
| MNAME |
NS1.example.com (NS1 + Pointer 0xC00C) |
| RNAME |
root.example.com (root + Pointer 0xC00C) |
| SERIAL |
2 |
| REFRESH |
30sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
| DNS Authority section |
NAME |
example.com (Pointer 0xC00C) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
6 |
| NSDNAME |
NS1.example.com (Pointer 0xC029) |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC029) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.10 |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC029) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::10 |
- 10th packet.
- same as No.3 packet, except ID=0x5000.
- 11th packet.
|
Standard query response from DNS Server1 (NUT) to Server6 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
SV6_NETZ |
| TCP Header |
Src Port |
53 |
| Dst Port |
1000 |
| DNS Header |
ID |
0x5000 |
| QR |
0 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
0 |
| RA |
ANY |
| Z |
ANY |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
7 |
| NSCOUNT |
0 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
example.com |
| QTYPE |
AXFR (0x00FC) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
33 |
| MNAME |
NS1.example.com (NS1 + Pointer 0xC00C) |
| RNAME |
root.example.com (root + Pointer 0xC00C) |
| SERIAL |
2 |
| REFRESH |
30sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
| DNS Answer section |
NAME |
example.com (Pointer 0xC00C) |
TYPE
|
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
2 |
| NSDNAME |
NS1.example.com (Pointer 0xC029) |
| DNS Answer section |
NAME |
A.example.com (A + Pointer 0xC00C) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.11 |
| DNS Answer section |
NAME |
A.example.com (Pointer 0xC058) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:101::21 |
| DNS Answer section |
NAME |
NS1.example.com (Pointer 0xC029) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.10 |
| DNS Answer section |
NAME |
NS1.example.com (Pointer 0xC029) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::10 |
| DNS Answer section |
NAME |
example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
30sec |
| RDLENGTH |
24 |
| MNAME |
NS1.example.com (Pointer 0xC029) |
| RNAME |
root.example.com (Pointer 0xC02F) |
| SERIAL |
2 |
| REFRESH |
30sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
- 12th packet.
- same as No.3 packet, but ID=0x6000.
- 13th packet.
- same as No.9 packet, but ID=0x6000.
- Exp.
| NUT_NETZ |
DNS Server1's (NUT) Net-z address |
| SV6_NETZ |
DNS Server6's (TN) Net-z address |
2. Received standard query response with Answer Type=SOA.
9. Received standard query response with Answer Type=SOA, Serial=1.
4. Received standard query response with Answer Type=AXFR including all of zone RRs using TCP.
6. Received standard query response with Answer Type=SOA, Serial=1.
9. Received standard query response with Answer Type=SOA, Serial=2.
11. Received standard query response with Answer Type=AXFR including all of zone RRs using TCP.
13. Received standard query response with Answer Type=SOA, Serial=2.
None
RFC1034 DOMAIN NAMES - CONCEPTS AND FACILITIES
4. NAME SERVERS
4.3.5. Zone maintenance and transfers
RFC2181 Clarifications to the DNS Specification
5.5. Sending RRSets (reprise)