SV_RFC1995_2_IXFR_client_I_add - an IXFR client sends an IXFR message (add)
Verify that a NUT sends an IXFR message to get a new information about zone.
- If an IXFR client, which likely has an older version of a zone,
- thinks it needs new information about the zone through SOA refresh timeout,
- it sends an IXFR message containing the SOA serial number of its, presumably
- outdated, copy of the zone.
- The query type value of IXFR assigned by IANA is 251.
- The IXFR query packet format is the same as that of a normal DNS
- query, but with the query type being IXFR and the authority section
- containing the SOA record of client's version of the zone.
Server (an IXFR client)
SV_RFC1995_2_IXFR_client_I_add.seq [-tooloption ...]: KOI tool option
See also DNSConfig.pm
After all zone information are transferred between primary DNS server7 (TN)
and slave DNS server1 (NUT), following pre-test sequence is performed.
DNS Client1 (TN) DNS Server1 (NUT) DNS Server7 (TN)
| | |
|----------------------------->| |
| 1. Send standard query | |
| QNAME = CL2.sec.example.com | |
| QTYPE = A | |
| | |
|<-----------------------------| |
| 2. Standard query response | |
| AA = 1 | |
| RCODE = 3 | |
| QNAME = CL2.sec.example.com | |
| QTYPE = A | |
| AUTHORITY Name | |
| = sec.example.com | |
| AUTHORITY Type | |
| = SOA (0x0006) | |
| AUTHORITY Serial | |
| = 2 | |
| | |
v v v
This test sequence is following.
NOTE: SOA's parameter and $TTL are same as above sec.example.com zone information.
TN includes NS7 and NS1.sub.example.com into Authority as type = NS.
Also TN includes NS7 and NS1.sub.example.com address into Additional section.
Thus NUT may reply to answer client with Authority and Additional section including
those values.
DNS Client1 (TN) DNS Server1 (NUT) DNS Server7 (TN)
| | |
| | |
| | Before SOA REFRESH (180sec) |
| | timeout expired |
| | |
| |----------------------------->|
| | 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 SERIAL |
| | = 2 |
| | |
| |----------------------------->|
| | 3. Standard query |
| | QNAME = sec.example.com |
| | QTYPE = IXFR (0x00FB) |
| | AUTHORITY Name |
| | = sec.example.com |
| | AUTHORITY Type |
| | = SOA (0x0006) |
| | AUTHORITY SERIAL |
| | = 1 |
| | |
| |<-----------------------------|
| | 4. Standard query response |
| | |
| | add new record |
| | |
| | QNAME = sec.example.com |
| | QTYPE = IXFR (0x00FB) |
| | |
| | ANSWER Name |
| | = sec.example.com |
| | ANSWER Type |
| | = SOA (0x0006) |
| | ANSWER SERIAL |
| | = 2 |
| | |
| | ANSWER Name |
| | = sec.example.com |
| | ANSWER Type |
| | = SOA (0x0006) |
| | ANSWER SERIAL |
| | = 1 |
| | |
| | ANSWER Name |
| | = sec.example.com |
| | ANSWER Type |
| | = SOA (0x0006) |
| | ANSWER SERIAL |
| | = 2 |
| | |
| | ANSWER Name |
| | = CL2.sec.example.com |
| | ANSWER Type |
| | = A (0x0001) |
| | ANSWER Address |
| | = 192.168.0.21 |
| | |
| | ANSWER Name |
| | = sec.example.com |
| | ANSWER Type |
| | = SOA (0x0006) |
| | ANSWER SERIAL |
| | = 2 |
| | |
|----------------------------->| |
| 5. Send standard query | |
| QNAME = CL2.sec.example.com | |
| QTYPE = A | |
| | |
|<-----------------------------| |
| 6. Standard query response | |
| QNAME = CL2.sec.example.com | |
| QTYPE = A | |
| ANSWER Name | |
| = CL2.sec.example.com | |
| ANSWER Type | |
| = A (0x0001) | |
| ANSWER Address | |
| = 192.168.0.21 | |
| | |
v v v
This test sequence is following.
1. After SOA refresh time expired, DNS Server1 (NUT) transmits standard query
QNAME = sec.example.com, Type = SOA to DNS Server7 (TN). (Judgment *1)
2. DNS Server7 (TN) sends standard query response with SOA serial = 2 to DNS Server1 (NUT).
3. DNS Server1 (NUT) transmits standard query with QNAME = sec.example.com, Type = IXFR,
including Authority Name = sec.example.com, Type = SOA serial = 1 to DNS Server7 (TN).
(Judgment *3)
4. DNS Server7 (TN) sends standard query response including only difference RRs previous one
to DNS Server1 (NUT). Its difference is that CL2.sec.example.com's address is
added as 192.168.0.21.
5. DNS Client1 (TN) sends standard query QNAME = CL2.sec.example.com to DNS Server1 (NUT).
6. DNS Server1 (NUT) transmits standard query response ANSWER Address = 192.168.0.21
to DNS Client1 (TN). (Judgment *6)
- 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 |
2 |
| ARCOUNT |
4 |
| 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 |
86400sec |
| RDLENGTH |
33 |
| MNAME |
NS7.sec.example.com (NS7 + Pointer 0xC00C) |
| RNAME |
root.sec.example.com (root + Pointer 0xC00C) |
| SERIAL |
2 |
| REFRESH |
180sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
| DNS Authority section |
NAME |
sec.example.com (Pointer 0xC00C) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
6 |
| NSDNAME |
NS1.sec.example.com (NS1 + Pointer 0xC00C) |
| DNS Authority section |
NAME |
sec.example.com (Pointer 0xC00C) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
2 |
| NSDNAME |
NS7.sec.example.com (Pointer 0xC02D) |
| DNS Additional section |
NAME |
NS1.sec.example.com (Pointer 0xC05A) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.10 |
| DNS Additional section |
NAME |
NS1.sec.example.com (Pointer 0xC05A) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::10 |
| DNS Additional section |
NAME |
NS7.sec.example.com (Pointer 0xC02D) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.31 |
| DNS Additional section |
NAME |
NS7.sec.example.com (Pointer 0xC02D) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| 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 |
| 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 |
>=1 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
sec.example.com |
| QTYPE |
IXFR (0x00FB) |
| QCLASS |
IN (0x0001) |
| DNS Authority section |
NAME |
sec.example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
33 |
| MNAME |
NS7.sec.example.com (NS7 + Pointer 0xC00C) |
| RNAME |
root.sec.example.com (root + Pointer 0xC00C) |
| SERIAL |
1 |
| REFRESH |
180sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
- 4th packet.
|
Standard query response from DNS Server7 (TN) to Server1 (NUT)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
SV7_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 |
5 |
| NSCOUNT |
0 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
sec.example.com |
| QTYPE |
IXFR (0x00FB) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
sec.example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
33 |
| MNAME |
NS7.sec.example.com (NS7 + Pointer 0xC00C) |
| RNAME |
root.sec.example.com (root + Pointer 0xC00C) |
| SERIAL |
2 |
| REFRESH |
180sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
| DNS Answer section |
NAME |
sec.example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
24 |
| MNAME |
NS7.sec.example.com (Pointer 0xC02D) |
| RNAME |
root.sec.example.com (Pointer 0xC033) |
| SERIAL |
1 |
| REFRESH |
180sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
| DNS Answer section |
NAME |
sec.example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
24 |
| MNAME |
NS7.sec.example.com (Pointer 0xC02D) |
| RNAME |
root.sec.example.com (Pointer 0xC033) |
| SERIAL |
2 |
| REFRESH |
180sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
| DNS Answer section |
NAME |
CL2.sec.example.com (CL2 + Pointer 0xC00C) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.21 |
| DNS Answer section |
NAME |
sec.example.com (Pointer 0xC00C)
|
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
33 |
| MNAME |
NS7.sec.example.com (Pointer 0xC02D) |
| RNAME |
root.sec.example.com (Pointer 0xC033) |
| SERIAL |
2 |
| REFRESH |
180sec |
| RETRY |
30sec |
| EXPIRE |
360sec |
| MINIMUM |
30sec |
- 5th 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 |
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 |
CL2.sec.example.com |
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
- 6th 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 |
0x2000 |
| QR |
1 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
0 |
| RA |
ANY |
| Z |
ANY |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
1 |
| NSCOUNT |
ANY |
| ARCOUNT |
ANY |
| DNS Question section |
QNAME |
CL2.sec.example.com
|
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
CL2.sec.example.com (Pointer 0xC00C)
|
| TYPE |
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.21 |
| DNS Authority section |
NAME |
sec.example.com (Pointer 0xC010) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
6 |
| NSDNAME |
NS1.sec.example.com (NS1 + Pointer 0xC010) |
| DNS Authority section |
NAME |
sec.example.com (Pointer 0xC010) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
6 |
| NSDNAME |
NS7.sec.example.com (NS7 + Pointer 0xC010) |
| DNS Additional section |
NAME |
NS1.sec.example.com (Pointer 0xC041) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.10 |
| DNS Additional section |
NAME |
NS1.sec.example.com (Pointer 0xC041) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::10 |
| DNS Additional section |
NAME |
NS7.sec.example.com (Pointer 0xC053) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.31 |
| DNS Additional section |
NAME |
NS7.sec.example.com (Pointer 0xC053) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::31 |
- 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 after SOA refresh time expired.
3. Received standard query with Type=IXFR serial=1.
6. Received standard query response QNAME=CL2.sec.example.com and Answer address 192.168.0.21.
None
RFC1995 Incremental Zone Transfer in DNS
2. Brief Description of the Protocol
3. Query Format