SV_RFC1995_2_IXFR_server_TCP - an IXFR server sends a single SOA record of the server's current version, if the UDP reply does not fit in a single DNS packet.
Verify that a NUT sends only the differences required to make that version current.
- If an IXFR query is via UDP, the IXFR server may attempt to reply using UDP if the entire response can be contained in a single DNS packet.
- If the UDP reply does not fit, the query is responded to with a single SOA record of the server's current version to inform the client that a TCP query should be initiated.
Server (an IXFR server)
SV_RFC1995_2_IXFR_server_TCP.seq [-tooloption ...]: KOI tool option
See also DNSConfig.pm
This test sequence is following.
DNS Server1 (NUT) DNS Server2 (TN)
| |
|<-----------------------------|
| 1. Standard query |
| (in UDP) |
| QNAME = sec.example.com |
| QTYPE = IXFR (0x00FB) |
| |
| AUTHORITY Name |
| = sec.example.com |
| AUTHORITY Type |
| = SOA (0x0006) |
| AUTHORITY Serial |
| = 1 |
| |
|----------------------------->|
| 2. Standard query response |
| (in UDP) |
| QNAME = sec.example.com |
| QTYPE = IXFR (0x00FB) |
| |
| ANSWER Name |
| = sec.example.com |
| ANSWER Type |
| = SOA (0x0006) |
| ANSWER Serial |
| = 2 |
| |
|<-----------------------------|
| 3. Standard query |
| (in TCP) |
| QNAME = sec.example.com |
| QTYPE = IXFR (0x00FB) |
| |
| AUTHORITY Name |
| = sec.example.com |
| AUTHORITY Type |
| = SOA (0x0006) |
| AUTHORITY Serial |
| = 1 |
| |
|----------------------------->|
| 4. Standard query response |
| (in TCP) |
| QNAME = sec.example.com |
| QTYPE = IXFR (0x00FB) |
| |
| ANSWER Name |
| = sec.example.com |
| ANSWER Type |
| = SOA (0x0006) |
| ANSWER Serial |
| = 2 |
| |
| [remove] |
| ANSWER Name |
| = sec.example.com |
| ANSWER Type |
| = SOA (0x0006) |
| ANSWER Serial |
| = 1 |
| |
| [add] |
| ANSWER Name |
| = sec.example.com |
| ANSWER Type |
| = SOA (0x0006) |
| ANSWER Serial |
| = 2 |
| |
| ANSWER Name |
| = CL1.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::20|
| |
| ANSWER Name |
| = CL2.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::21|
| |
| ANSWER Name |
| = CL3.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::22|
| |
| ANSWER Name |
| = CL4.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::23|
| |
| ANSWER Name |
| = CL5.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::24|
| |
| ANSWER Name |
| = CL6.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::25|
| |
| ANSWER Name |
| = CL7.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::26|
| |
| ANSWER Name |
| = CL8.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::27|
| |
| ANSWER Name |
| = CL9.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::28|
| |
| ANSWER Name |
| = CL10.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::29|
| |
| ANSWER Name |
| = CL11.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::2a|
| |
| ANSWER Name |
| = CL12.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::2b|
| |
| ANSWER Name |
| = CL13.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::2c|
| |
| ANSWER Name |
| = CL14.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::2d|
| |
| ANSWER Name |
| = CL15.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::2e|
| |
| ANSWER Name |
| = CL16.sec.example.com |
| ANSWER Type |
| = AAAA (0x001C) |
| ANSWER Address |
| = 3ffe:501:ffff:100::2f|
| |
| ANSWER Name |
| = sec.example.com |
| ANSWER Type |
| = SOA (0x0006) |
| ANSWER Serial |
| = 2 |
| |
v v
This test sequence is following.
1. DNS Server2 (TN) sends standard query with QNAME = sec.example.com, Type = IXFR,
including Authority Name = sec.example.com, Type = SOA, serial = 1 using UDP.
2. DNS Server1 (NUT) transmits standard query responce with QNAME = sec.example.com, Type = IXFR,
including 'sec.example.com SOA serial=2' in Answer section using UDP to DNS Server2 (TN). (Judgment *2)
3. DNS Server2 (TN) sends standard query with QNAME = sec.example.com, Type = IXFR,
including Authority Name = sec.example.com, Type = SOA, serial = 1 using TCP.
4. DNS Server1 (NUT) transmits standard query responce with QNAME = sec.example.com, Type = IXFR,
including 'sec.example.com SOA serial=2',
'sec.example.com SOA serial=1',
'sec.example.com SOA serial=2',
'CL1.sec.example.com AAAA 3ffe:501:ffff:100::20',
'CL2.sec.example.com AAAA 3ffe:501:ffff:100::21',
'CL3.sec.example.com AAAA 3ffe:501:ffff:100::22',
'CL4.sec.example.com AAAA 3ffe:501:ffff:100::23',
'CL5.sec.example.com AAAA 3ffe:501:ffff:100::24',
'CL6.sec.example.com AAAA 3ffe:501:ffff:100::25',
'CL7.sec.example.com AAAA 3ffe:501:ffff:100::26',
'CL8.sec.example.com AAAA 3ffe:501:ffff:100::27',
'CL9.sec.example.com AAAA 3ffe:501:ffff:100::28',
'CL10.sec.example.com AAAA 3ffe:501:ffff:100::29',
'CL11.sec.example.com AAAA 3ffe:501:ffff:100::2a',
'CL12.sec.example.com AAAA 3ffe:501:ffff:100::2b',
'CL13.sec.example.com AAAA 3ffe:501:ffff:100::2c',
'CL14.sec.example.com AAAA 3ffe:501:ffff:100::2d',
'CL15.sec.example.com AAAA 3ffe:501:ffff:100::2e',
'CL16.sec.example.com AAAA 3ffe:501:ffff:100::2f',
and 'sec.example.com SOA serial=2' in Answer section using TCP to DNS Server2 (TN). (Judgment *4)
- Packet Description
- 1st packet.
|
Standard query response from DNS Server2 (TN) to Server1 (NUT)
|
| IP Header |
Source Address |
SV2_NETZ |
| Destination Address |
NUT_NETZ |
| UDP Header |
Src Port |
2000 |
| Dst Port |
53 |
| DNS Header |
ID |
0x1000 |
| QR |
0 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
1 |
| 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 0x0033) |
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
33 |
| MNAME |
NS1.sec.example.com (NS1 + Pointer 0xC00C) |
| RNAME |
root.sec.example.com (root + Pointer 0xC00C) |
| SERIAL |
1 |
| REFRESH |
3600sec |
| RETRY |
900sec |
| EXPIRE |
604800sec |
| MINIMUM |
3600sec |
- 2nd packet.
|
Standard query from DNS Server1 (NUT) to Server2 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
SV2_NETZ |
| UDP Header |
Src Port |
53 |
| Dst Port |
2000 |
| DNS Header |
ID |
0x1000 |
| QR |
1 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
1 |
| RA |
ANY |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
4 |
| 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 |
NS1.sec.example.com (NS1 + Pointer 0xC00C) |
| RNAME |
root.sec.example.com (root + Pointer 0xC00C) |
| SERIAL |
2 |
| REFRESH |
3600sec |
| RETRY |
900sec |
| EXPIRE |
604800sec |
| MINIMUM |
3600sec |
- 3rd packet.
|
Standard query response from DNS Server2 (TN) to Server1 (NUT)
|
| IP Header |
Source Address |
SV2_NETZ |
| Destination Address |
NUT_NETZ |
| TCP Header |
Src Port |
2000 |
| Dst Port |
53 |
| DNS Header |
ID |
0x1001 |
| QR |
0 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
1 |
| 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 0x0033) |
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
33 |
| MNAME |
NS1.sec.example.com (NS1 + Pointer 0xC00C) |
| RNAME |
root.sec.example.com (root + Pointer 0xC00C) |
| SERIAL |
1 |
| REFRESH |
3600sec |
| RETRY |
900sec |
| EXPIRE |
604800sec |
| MINIMUM |
3600sec |
- 4th packet.
|
Standard query from DNS Server1 (NUT) to Server2 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
SV2_NETZ |
| TCP Header |
Src Port |
53 |
| Dst Port |
2000 |
| DNS Header |
ID |
0x1001 |
| QR |
1 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
1 |
| RA |
ANY |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
4 |
| 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 |
NS1.sec.example.com (NS1 + Pointer 0xC00C) |
| RNAME |
root.sec.example.com (root + Pointer 0xC00C) |
| SERIAL |
2 |
| REFRESH |
3600sec |
| RETRY |
900sec |
| EXPIRE |
604800sec |
| MINIMUM |
3600sec |
| DNS Answer section |
NAME |
sec.example.com (Pointer 0xC00C) |
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
24 |
| MNAME |
NS1.sec.example.com (NS1 + Pointer 0xC02D) |
| RNAME |
root.sec.example.com (root + Pointer 0xC033) |
| SERIAL |
1 |
| REFRESH |
3600sec |
| RETRY |
900sec |
| EXPIRE |
604800sec |
| MINIMUM |
3600sec |
| DNS Answer section |
NAME |
sec.example.com (Pointer 0xC00C) |
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
24 |
| MNAME |
NS1.sec.example.com (Pointer 0xC02D) |
| RNAME |
root.sec.example.com (Pointer 0xC033) |
| SERIAL |
2 |
| REFRESH |
3600sec |
| RETRY |
900sec |
| EXPIRE |
604800sec |
| MINIMUM |
3600sec |
| DNS Answer section |
NAME |
CL1.sec.example.com (CL1 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::20 |
| DNS Answer section |
NAME |
CL2.sec.example.com (CL2 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::21 |
| DNS Answer section |
NAME |
CL3.sec.example.com (CL3 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::22 |
| DNS Answer section |
NAME |
CL4.sec.example.com (CL4 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::23 |
| DNS Answer section |
NAME |
CL5.sec.example.com (CL5 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::24 |
| DNS Answer section |
NAME |
CL6.sec.example.com (CL6 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::25 |
| DNS Answer section |
NAME |
CL7.sec.example.com (CL7 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::26 |
| DNS Answer section |
NAME |
CL8.sec.example.com (CL8 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::27 |
| DNS Answer section |
NAME |
CL9.sec.example.com (CL9 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::28 |
| DNS Answer section |
NAME |
CL10.sec.example.com (CL10 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::29 |
| DNS Answer section |
NAME |
CL11.sec.example.com (CL11 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::2a |
| DNS Answer section |
NAME |
CL12.sec.example.com (CL12 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::2b |
| DNS Answer section |
NAME |
CL13.sec.example.com (CL13 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::2c |
| DNS Answer section |
NAME |
CL14.sec.example.com (CL14 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::2d |
| DNS Answer section |
NAME |
CL15.sec.example.com (CL15 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::2e |
| DNS Answer section |
NAME |
CL16.sec.example.com (CL16 + Pointer 0xC00C) |
| TYPE |
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:100::2f |
| DNS Answer section |
NAME |
sec.example.com (Pointer 0xC00C) |
| TYPE |
SOA (0x0006) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
24 |
| MNAME |
NS1.sec.example.com (NS1 + Pointer 0xC02D) |
| RNAME |
root.sec.example.com (root + Pointer 0xC033) |
| SERIAL |
2 |
| REFRESH |
3600sec |
| RETRY |
900sec |
| EXPIRE |
604800sec |
| MINIMUM |
3600sec |
- Exp.
| NUT_NETZ |
DNS Server1's (NUT) Net-z address |
| CL1_NETZ |
DNS Client1's (TN) Net-z address |
| SV2_NETZ |
DNS Server2's (TN) Net-z address |
2. DNS Server1 (NUT) transmits standard query responce with QNAME = sec.example.com, Type = IXFR,
including 'sec.example.com SOA serial=2' in Answer section using UDP to DNS Server2 (TN).
4. DNS Server1 (NUT) transmits standard query responce with QNAME = sec.example.com, Type = IXFR,
including 'sec.example.com SOA serial=2',
'sec.example.com SOA serial=1',
'sec.example.com SOA serial=2',
'CL1.sec.example.com AAAA 3ffe:501:ffff:100::20',
'CL2.sec.example.com AAAA 3ffe:501:ffff:100::21',
'CL3.sec.example.com AAAA 3ffe:501:ffff:100::22',
'CL4.sec.example.com AAAA 3ffe:501:ffff:100::23',
'CL5.sec.example.com AAAA 3ffe:501:ffff:100::24',
'CL6.sec.example.com AAAA 3ffe:501:ffff:100::25',
'CL7.sec.example.com AAAA 3ffe:501:ffff:100::26',
'CL8.sec.example.com AAAA 3ffe:501:ffff:100::27',
'CL9.sec.example.com AAAA 3ffe:501:ffff:100::28',
'CL10.sec.example.com AAAA 3ffe:501:ffff:100::29',
'CL11.sec.example.com AAAA 3ffe:501:ffff:100::2a',
'CL12.sec.example.com AAAA 3ffe:501:ffff:100::2b',
'CL13.sec.example.com AAAA 3ffe:501:ffff:100::2c',
'CL14.sec.example.com AAAA 3ffe:501:ffff:100::2d',
'CL15.sec.example.com AAAA 3ffe:501:ffff:100::2e',
'CL16.sec.example.com AAAA 3ffe:501:ffff:100::2f',
and 'sec.example.com SOA serial=2' in Answer section using TCP to DNS Server2 (TN).
None
RFC1995 Incremental Zone Transfer in DNS
2. Brief Description of the Protocol
4. Response Format