SV_RFC1034_3_6_SOA_type - SOA type
Verify that a NUT transmits correct message including SOA type in the QTYPE field.
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
/ QNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QTYPE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QCLASS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Caching Server
SV_RFC1034_3_6_SOA_type.seq [-tooloption ...]: KOI tool option See also DNSConfig.pm
. domain org domain example.org domain
AP Server1 (TN) DNS Server2 DNS Server3 DNS Server4
|www.example.org |A.ROOT.NET |NS3.example.org |NS4.example.org
|3ffe:501:ffff:101::10 |3ffe:501:ffff:101::20 |3ffe:501:ffff:101::30 |3ffe:501:ffff:101::40
|192.168.1.10 |192.168.1.20 |192.168.1.30 |192.168.1.40
| | | |
Net-y --+--------+---------------+------------------------+------------------------+-- 3ffe:501:ffff:101::/64
| 192.168.1/24
|
|
Router (TN)
|3ffe:501:ffff:100::1
|192.168.0.1
|
|
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 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 ;
This test sequence is following.
DNS Client1 (TN) DNS Server1 (NUT) DNS Server2 (TN) DNS Server3 (TN) DNS Server4 (TN)
| | | | |
|----------------------------->| | | |
| 1. Send standard query | | | |
| QNAME=example.org | | | |
| QTYPE=SOA | | | |
| | | | |
| |-------------------------------->| | |
| | 2. Send standard query | | |
| | QNAME=example.org | | |
| | QTYPE=SOA | | |
| | | | |
| |<--------------------------------| | |
| | 3. Send standard response | | |
| | QNAME=example.org | | |
| | QTYPE=SOA | | |
| | AUTHORITY Name=org | | |
| | AUTHORITY Type=NS | | |
| | AUTHORITY Name Server | | |
| | =NS3.example.org | | |
| | ADDITIONAL Name=NS3.example.org| | |
| | ADDITIONAL Type=A | | |
| | ADDITIONAL Address=192.168.1.30| | |
| | | | |
| |------------------------------------------------------------------->| |
| | | 4. Send standard query | |
| | | QNAME=example.org | |
| | | QTYPE=SOA | |
| | | | |
| |<-------------------------------------------------------------------| |
| | | 5. Send standard response | |
| | | QNAME=example.org | |
| | | QTYPE=SOA | |
| | | AUTHORITY Name=example.org | |
| | | AUTHORITY Type=NS | |
| | | AUTHORITY NSDNAME | |
| | | =NS4.example.org | |
| | | ADDITIONAL Name=NS4.example.org | |
| | | ADDITIONAL Type=A | |
| | | ADDITIONAL Address=192.168.1.40 | |
| | | | |
| |------------------------------------------------------------------------------------------------------>|
| | | | 6. Send standard query |
| | | | QNAME=example.org |
| | | | QTYPE=SOA |
| | | | |
| |<------------------------------------------------------------------------------------------------------|
| | | | 7. Send standard response |
| | | | QNAME=example.org |
| | | | QTYPE=SOA |
| | | | ANSWER Name=example.org |
| | | | ANSWER Type=SOA |
| | | | ANSWER Mname=NS4.example.org |
| | | | ANSWER Rname |
| | | | =root.NS4.example.org |
| | | | ANSWER Serial=1 |
| | | | ANSWER Refresh=3600 |
| | | | ANSWER Retry=600 |
| | | | ANSWER Expire=86400 |
| | | | ANSWER Minimum=3600 |
| | | | AUTHORITY Name=example.org |
| | | | AUTHORITY Type=NS |
| | | | AUTHORITY NSDNAME |
| | | | =NS4.example.org |
| | | | ADDITIONAL Name=NS4.example.org |
| | | | ADDITIONAL Type=A |
| | | | ADDITIONAL Address=192.168.1.40 |
|<-----------------------------| | | |
| 8. Standard query response | | | |
| QNAME=example.org | | | |
| QTYPE=SOA | | | |
| ANSWER Name=example.org | | | |
| ANSWER Type=SOA | | | |
| ANSWER Mname=NS4.example.org| | | |
| ANSWER Rname | | | |
| =root.NS4.example.org| | | |
| ANSWER Serial=1 | | | |
| ANSWER Refresh=3600 | | | |
| ANSWER Retry=600 | | | |
| ANSWER Expire=86400 | | | |
| ANSWER Minimum=3600 | | | |
| AUTHORITY Name=example.org | | | |
| Authority Type=NS | | | |
| Authority NSDNAME | | | |
| =NS4.example.org | | | |
v v v v v
1. TN send standard query QNAME=example.org, QTYPE=SOA to NUT.
2. NUT transmits standard query to DNS Server2 (TN: root name server) (Judgment *2)
3. TN send query response to NUT w/ AUTHORITY Name=org, AUTHORITY Name Server=NS3.example.org.
4. NUT transmits standard query QNAME=example.org, QTYPE=SOA to DNS Server3 (TN: NS3.example.org) (Judgment *4)
5. TN send query response to NUT w/ AUTHORITY Name=example.org, AUTHORITY Name Server=NS4.example.org.
6. NUT transmits standard query QNAME=example.org, QTYPE=SOA to DNS Server4 (TN: NS4.example.org) (Judgment *6)
7. TN send query response to ANSWER Name=example.org, ANSWER SOA record to NUT.
8. NUT transmits query response to DNS Client1 (TN) (Judgment *8)
|
|
||
| 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 | 0 | |
| RA | 0 | |
| Z | 0 | |
| RCODE | 0 | |
| QDCOUNT | 1 | |
| ANCOUNT | 0 | |
| NSCOUNT | 0 | |
| ARCOUNT | 0 | |
| DNS Question section | QNAME | example.org |
| QTYPE | SOA (0x0006) | |
| QCLASS | IN (0x0001) | |
|
|
||
| IP Header | Source Address | NUT_NETZ |
| Destination Address | SV2_NETY | |
| UDP Header | Src Port | ANY |
| Dst Port | 53 | |
| DNS Header | ID | ANY |
| QR | 0 | |
| OPCODE | 0 | |
| AA | any | |
| TC | 0 | |
| RD | 0 | |
| RA | any | |
| Z | any | |
| RCODE | any | |
| QDCOUNT | 1 | |
| ANCOUNT | 0 | |
| NSCOUNT | 0 | |
| ARCOUNT | any | |
| DNS Question section | QNAME | example.org |
| QTYPE | SOA (0x0006) | |
| QCLASS | IN (0x0001) | |
|
|
||
| IP Header | Source Address | SV2_NETY |
| 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 | 0 | |
| TC | 0 | |
| RD | 0 | |
| RA | 0 | |
| Z | 0 | |
| RCODE | 0 | |
| QDCOUNT | 1 | |
| ANCOUNT | 0 | |
| NSCOUNT | 1 | |
| ARCOUNT | 1 | |
| DNS Question section | QNAME | example.org |
| QTYPE | SOA (0x0006) | |
| QCLASS | IN (0x0001) | |
| DNS Authority section | NAME | org (Pointer 0xC014) |
| TYPE | NS (0x0002) | |
| CLASS | IN (0x0001) | |
| TTL | 1 day (86400) | |
| RDLENGTH | 6 | |
| NSDNAME | NS3.example.org (NS3 + Pointer 0xC00E) | |
| DNS Additional section | NAME | NS3.example.org (Pointer 0xC029) |
| TYPE |
A (0x0001) | |
| CLASS | IN (0x0001) | |
| TTL | 1 day (86400) | |
| RDLENGTH | 4 | |
| ADDRESS | 192.168.1.30 | |
|
|
||
| IP Header | Source Address | NUT_NETZ |
| Destination Address | SV3_NETY | |
| UDP Header | Src Port | ANY |
| Dst Port | 53 | |
| DNS Header | ID | ANY |
| QR | 1 | |
| OPCODE | 0 | |
| AA | any | |
| TC | 0 | |
| RD | 0 | |
| RA | any | |
| Z | any | |
| RCODE | any | |
| QDCOUNT | 1 | |
| ANCOUNT | 0 | |
| NSCOUNT | 0 | |
| ARCOUNT | any | |
| DNS Question section | QNAME | example.org |
| QTYPE | SOA (0x0006) | |
| QCLASS | IN (0x0001) | |
|
|
||
| IP Header | Source Address | SV3_NETY |
| Destination Address | NUT_NETZ | |
| UDP Header | Src Port | Value that NUT uses |
| Dst Port | 53 | |
| 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 | 1 | |
| NSCOUNT | 1 | |
| ARCOUNT | 1 | |
| DNS Question section | QNAME | example.org |
| QTYPE | SOA (0x0006) | |
| QCLASS | IN (0x0001) | |
| DNS Authority section | NAME | example.org (Pointer 0xC00C) |
| TYPE | NS (0x0002) | |
| CLASS | IN (0x0001) | |
| TTL | 1 day (86400) | |
| RDLENGTH | 6 | |
| NSDNAME | NS4.example.org (NS4 + Pointer 0xC00C) | |
| DNS Additional section | NAME | NS4.example.org (Pointer 0xC029) |
| TYPE |
A (0x0001) | |
| CLASS | IN (0x0001) | |
| TTL | 1 day (86400) | |
| RDLENGTH | 4 | |
| ADDRESS | 192.168.1.40 | |
|
|
||
| IP Header | Source Address | NUT_NETZ |
| Destination Address | SV4_NETY | |
| UDP Header | Src Port | ANY |
| Dst Port | 53 | |
| DNS Header | ID | ANY |
| QR | 1 | |
| OPCODE | 0 | |
| AA | any | |
| TC | 0 | |
| RD | 0 | |
| RA | any | |
| Z | any | |
| RCODE | any | |
| QDCOUNT | 1 | |
| ANCOUNT | 0 | |
| NSCOUNT | 0 | |
| ARCOUNT | any | |
| DNS Question section | QNAME | example.org |
| QTYPE | SOA (0x0006) | |
| QCLASS | IN (0x0001) | |
|
|
||
| IP Header | Source Address | SV4_NETY |
| Destination Address | NUT_NETZ | |
| UDP Header | Src Port | Value that NUT uses |
| Dst Port | 53 | |
| 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 | 1 | |
| DNS Question section | QNAME | example.org |
| QTYPE | SOA (0x0006) | |
| QCLASS | IN (0x0001) | |
| DNS Answer section | NAME | example.org (Pointer 0xC00C) |
| TYPE | SOA (0x0006) | |
| CLASS | IN (0x0001) | |
| TTL | 1 day (86400) | |
| RDLENGTH | 37 | |
| MNAME | NS4.example.org (NS4 + Pointer 0xC00C) | |
| RNAME | root.NS4.example.org (root + Pointer 0xC029) | |
| SERIAL | 1 | |
| REFRESH | 3600 | |
| RETRY | 3600 | |
| EXPIRE | 8600 | |
| MINIMUM | 3600 | |
| DNS Authority section | NAME | example.org (Pointer 0xC00C) |
| TYPE | NS (0x0002) | |
| CLASS | IN (0x0001) | |
| TTL | 1 day (86400) | |
| RDLENGTH | 6 | |
| NSDNAME | NS4.example.org (NS4 + Pointer 0xC029) | |
| DNS Additional section | NAME | NS4.example.org (Pointer 0xC029) |
| TYPE | A (0x0001) | |
| CLASS | IN (0x0001) | |
| TTL | 1 day (86400) | |
| RDLENGTH | 4 | |
| ADDRESS | 192.168.1.40 | |
|
|
||
| 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 | 0 | |
| TC | 0 | |
| RD | 1 | |
| RA | 1 | |
| Z | 0 | |
| RCODE | 0 | |
| QDCOUNT | 1 | |
| ANCOUNT | 1 | |
| NSCOUNT | 1 | |
| ARCOUNT | 1 | |
| DNS Question section | QNAME | example.org |
| QTYPE | SOA (0x0006) | |
| QCLASS | IN (0x0001) | |
| DNS Answer section | NAME | example.org (Pointer 0xC00C) |
| TYPE | SOA (0x0006) | |
| CLASS | IN (0x0001) | |
| TTL | 1 day (86400) | |
| RDLENGTH | 37 | |
| MNAME | NS4.example.org (NS4 + Pointer 0xC010) | |
| RNAME | root.NS4.example.org (root + Pointer 0xC010) | |
| SERIAL | 1 | |
| REFRESH | 3600 | |
| RETRY | 3600 | |
| EXPIRE | 8600 | |
| MINIMUM | 3600 | |
| DNS Authority section | NAME | example.org (Pointer 0xC010) |
| TYPE | NS (0x0002) | |
| CLASS | IN (0x0001) | |
| TTL | 1 day (86400) | |
| RDLENGTH | 6 | |
| NSDNAME | NS4.example.org (NS4 + Pointer 0xC010) | |
| NUT_NETZ | DNS Server1's (NUT) Net-z address |
| CL1_NETZ | DNS Client1's (TN) Net-z address |
| SV2_NETY | DNS Server2's (TN) Net-y address |
| SV3_NETY | DNS Server3's (TN) Net-y address |
| SV4_NETY | DNS Server4's (TN) Net-y address |
2. Received standard query including QNAME=www.example.org, QTYPE=SOA.
4. Received standard query including QNAME=www.example.org, QTYPE=SOA.
6. Received standard query including QNAME=www.example.org, QTYPE=SOA.
8. Received standard query response including correct parameters in the SOA resource record.
None
RFC1034 DOMAIN NAMES - CONCEPTS AND FACILITIES
3.6 Resource Records
RFC1035 DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
3.2.1 Format
3.2.2 TYPE values
3.3.13 SOA RDATA format