SV_RFC2782_SRV_type - Resource record SRV type
Verify that a NUT transmits correct message including SRV 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_RFC2782_SRV_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 |A.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. <--------- TN ------------> DNS Client1 (TN) DNS Server1 (NUT) DNS Server2 DNS Server3 DNS Server4 | | | | | |----------------------------->| | | | | 1. Send standard query | | | | | QNAME=_http._tcp.example.org. | | | | QTYPE=SRV | | | | | | | | | | |-------------------------------->| | | | | 2. Send standard query | | | | | QNAME=_http._tcp.example.org. | | | | | QTYPE=SRV | | | | | | | | | |<--------------------------------| | | | | 3. Send standard response | | | | | QNAME=_http._tcp.example.org. | | | | | QTYPE=SRV | | | | | AUTHORITY Name=org. | | | | | AUTHORITY Name Server | | | | | =NS3.example.org. | | | | | ADDITIONAL Name=NS3.example.org. | | | | ADDITIONAL Address=192.168.1.30| | | | | | | | | | v | | | | | | | |-------------------------------------------->| | | | 4. Send standard query | | | | QNAME=_http._tcp.example.org. | | | | QTYPE=SRV | | | | | | | |<--------------------------------------------| | | | 5. Send standard response | | | | QNAME=_http._tcp.example.org. | | | | QTYPE=SRV | | | | AUTHORITY Name=example.org. | | | | AUTHORITY Name Server | | | | = NS4.example.org. | | | | ADDITIONAL Name | | | | = NS4.example.org. | | | | ADDITIONAL Address | | | | = 192.168.1.40 | | | | | | | | v | | | | | |-------------------------------------------------------->| | | 6. Send standard query | | | QNAME=_http._tcp.example.org. | | | QTYPE=SRV | | | | | |<--------------------------------------------------------| | | 7. Send standard response | | | QNAME=_http._tcp.example.org. | | | QTYPE=SRV | | | ANSWER | | | Priority = 10 | | | Weight = 20 | | | Port = 80 | | | Target = A.example.org. | | | AUTHORITY Name=example.org. | | | AUTHORITY Name Server | | | = NS4.example.org. | | | ADDITIONAL Name | | | = A.example.org. | | | ADDITIONAL Address | | | = 192.168.1.10 | | | ADDITIONAL Name | | | = NS4.example.org. | | | ADDITIONAL Address | | | = 192.168.1.40 | |<-----------------------------| | | 8. Standard query response | v | QNAME=_http._tcp.example.org. | QTYPE=SRV | | ANSWER | | Priority = 10 | | Weight = 20 | | Port = 80 | | Target = A.example.org. | | AUTHORITY Name=example.org. | | AUTHORITY Name Server | | = NS4.example.org. | | ADDITIONAL Name | | = A.example.org. | | ADDITIONAL Address | | = 192.168.1.10 | | ADDITIONAL Name | | = NS4.example.org. | | ADDITIONAL Address | | = 192.168.1.40 | v v
1. TN send standard query QNAME=_http._tcp.example.org., QTYPE=SRV 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=_http._tcp.example.org., QTYPE=SRV 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=_http._tcp.example.org., QTYPE=SRV DNS Server4 (TN: NS4.example.org.) (Judgment *6) 7. TN send query response to ANSWER Target = A.example.org. 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 | 1 | |
RA | 0 | |
Z | 0 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 0 | |
ARCOUNT | 0 | |
DNS Question section | QNAME | _http._tcp.example.org. |
QTYPE | SRV (0x0021) | |
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 | 0 | |
Z | 0 | |
AD | 0 | |
CD | 1 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 0 | |
ARCOUNT | ANY | |
DNS Question section | QNAME | _http._tcp.example.org. |
QTYPE | SRV (0x0021) | |
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 | _http._tcp.example.org. |
QTYPE | SRV (0x0021) | |
QCLASS | IN (0x0001) | |
DNS Authority section | NAME | org. (Pointer 0xC01F) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 17 | |
NSDNAME | NS3.example.org. | |
DNS Additional section | NAME | NS3.example.org. (Pointer 0xC034) |
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 | 0 | |
OPCODE | 0 | |
AA | 0 | |
TC | 0 | |
RD | 0 | |
RA | 0 | |
Z | 0 | |
AD | 0 | |
CD | 1 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 0 | |
ARCOUNT | ANY | |
DNS Question section | QNAME | _http._tcp.example.org. |
QTYPE | SRV (0x0021) | |
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 | 0 | |
NSCOUNT | 1 | |
ARCOUNT | 1 | |
DNS Question section | QNAME | _http._tcp.example.org. |
QTYPE | SRV (0x0021) | |
QCLASS | IN (0x0001) | |
DNS Authority section | NAME | example.org. (Pointer 0xC017) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS4.example.org. | |
DNS Additional section | NAME | NS4.example.org. (Pointer 0xC034) |
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 | 0 | |
OPCODE | 0 | |
AA | 0 | |
TC | 0 | |
RD | 0 | |
RA | 0 | |
Z | 0 | |
AD | 0 | |
CD | 1 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 0 | |
ARCOUNT | ANY | |
DNS Question section | QNAME | _http._tcp.example.org. |
QTYPE | SRV (0x0021) | |
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 | 1 | |
Z | 0 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 1 | |
NSCOUNT | 1 | |
ARCOUNT | 2 | |
DNS Question section | QNAME | _http._tcp.example.org. |
QTYPE | SRV (0x0021) | |
QCLASS | IN (0x0001) | |
DNS Answer section | NAME | _http._tcp.example.org. (Pointer 0xC00C) |
TYPE | SRV (0x0021) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 21 | |
Priority | 10 | |
Weight | 20 | |
Port | 80 | |
Target | A.example.org. | |
DNS Authority section | NAME | example.org. (Pointer 0xC03C) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS4.example.org. (NS4 + Pointer 0xC03C) | |
DNS Additional section | NAME | A.example.org. (Pointer 0xC03A) |
TYPE |
A (0x0001) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 4 | |
ADDRESS | 192.168.1.10 | |
DNS Additional section | NAME | NS4.example.org (Pointer 0xC055) |
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 | 2 | |
DNS Question section | QNAME | _http._tcp.example.org. |
QTYPE | SRV (0x0021) | |
QCLASS | IN (0x0001) | |
DNS Answer section | NAME | _http._tcp.example.org. (Pointer 0xC00C) |
TYPE | SRV (0x0021) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 21 | |
Priority | 10 | |
Weight | 20 | |
Port | 80 | |
Target | A.example.org. | |
DNS Authority section | NAME | example.org (Pointer 0xC03C) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 6 | |
NSDNAME | NS4.example.org (NS4 + Pointer 0xC03C) | |
DNS Additional section | NAME | A.example.org. (Pointer 0xC03A) |
TYPE |
A (0x0001) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 4 | |
ADDRESS | 192.168.1.10 | |
DNS Additional section | NAME | NS4.example.org (Pointer 0xC055) |
TYPE |
A (0x0001) | |
CLASS | IN (0x0001) | |
TTL | 1 day (86400) | |
RDLENGTH | 4 | |
ADDRESS | 192.168.1.40 |
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=_http._tcp.example.org., QTYPE=SRV. 4. Received standard query including QNAME=_http._tcp.example.org., QTYPE=SRV. 6. Received standard query including QNAME=_http._tcp.example.org., QTYPE=SRV. 8. Received standard query response including correct domain name in the Target field.
None
RFC1034 DOMAIN NAMES - CONCEPTS AND FACILITIES 3.6 Resource Records
RFC1035 DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION 3.2.1 Format
RFC2782 DNS SRV RR