SV_RFC1034_4_3_5_DistZoneTransfer - Distribute zone information to secondary
Verify that a NUT distributes zone according to secondary's zone transfer request.
Server (Primary)
SV_RFC1034_4_3_5_DistZoneTransfer.seq [-tooloption ...]: KOI tool option See also DNSConfig.pm
AP Server1 (TN) |3ffe:501:ffff:101::10 |192.168.1.10 | Net-y --+--------+--------------------------------------------- 3ffe:501:ffff:101::/64 | 192.168.1/24 | | secondary for example.com zone Router (TN) DNS Server6 (TN) |3ffe:501:ffff:100::1 |3ffe:501:ffff:100::30 |192.168.0.1 |192.168.0.30 | | | | Net-z --+--------+-----------------+-----+--------------------- 3ffe:501:ffff:100::/64 | | 192.168.0/24 | | DNS Server1 (NUT) DNS Client1 (TN) 3ffe:501:ffff:100::XXXX 3ffe:501:ffff:100::20 192.168.0.10 192.168.0.20
XXXX: EUI64
. 3600000 IN NS A.ROOT.NET. A.ROOT.NET. 3600000 A 192.168.1.20
. 3600000 IN NS A.ROOT.NET. A.ROOT.NET. 3600000 AAAA 3ffe:501:ffff:101::20
$TTL 30 ; TTL of 30sec @ IN SOA NS1.example.com. root.example.com. ( 1 ; serial 180 ; refresh every 180sec 60 ; retry every 60sec 360 ; expire after 360sec 30 ; Minimum TTL of 30sec ) ; IN NS NS1.example.com. NS1 IN A 192.168.0.10 IN AAAA 3ffe:501:ffff:100::10 ; A IN A 192.168.1.10 IN AAAA 3ffe:501:ffff:101::10
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)
|
||
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) |
|
||
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 |
|
||
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) |
|
||
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 |
|
||
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 |
|
||
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 |
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)