CL_RFC3404_5_NAPTR_urn - URN resolution
Verify a NUT process to resolve URN.
Client (ADVANCED)
CL_RFC3404_5_NAPTR_urn.seq [-tooloption ...]: KOI tool option See also DNSConfig.pm
AP Server1(TN):A.example.com DNS Server1(TN) |3ffe:501:ffff:101::10 |3ffe:501:ffff:101::20 |192.168.1.10 |192.168.1.20 | | Net-y --+--------+-----------------------+-------- 3ffe:501:ffff:101::/64 | 192.168.1/24 | | ROUTER1(TN) |3ffe:501:ffff:100::1 |192.168.0.1 | Net-z --+--------+-------------------------------- 3ffe:501:ffff:100::/64 | 192.168.0/24 DNS Client1(NUT) 3ffe:501:ffff:100:XXXX 192.168.0.10
XXXX: EUI64 address
Set the DNS Server1 (TN)'s address on DNS Client1 (NUT) as above mentioned Network Topology. DNS client (NUT) needs a Resource Cataloging and Distribution Service (RCDS) or THTTP program as DDDS application.
Application Unique String (AUS): urn:foo:002372413:annual-report-1997 Key: URN Used domain-name to retrieve Rewrite Rules as NAPTR records: foo.urn.arpa.
This test sequence is following.
DNS Client1 (NUT) DNS Server1 (TN) | | | Invoke some application | | on NUT (Ex. RCDS or THTTP) | | | |---------------------------------------------->| | 1. Send standard query | | QNAME="foo.urn.arpa." | | QTYPE=NAPTR | | | |<----------------------------------------------| | 2. Send standard query response | | | |---------------------------------------------->| | 3. Send standard query | | QNAME="_rcds._udp.example.com" | | QTYPE=SRV | | | | or | | | | QNAME="_thttp._tcp.example.com" | | QTYPE=SRV | | | v v
1. DNS Client (NUT) sends a standard query with QNAME = "foo.urn.arpa." type = NAPTR 2. DNS Server1 (NUT) transmits a response to DNS Client1 (NUT) with:
$ORIGIN foo.urn.arpa. ;; order pref flags service regexp replacement IN NAPTR 100 10 "s" "foolink+I2L+I2C" "" _foolink._udp.example.com. IN NAPTR 100 20 "s" "rcds+I2C" "" _rcds._udp.example.com. IN NAPTR 100 30 "s" "thttp+I2L+I2C+I2R" "" _thttp._tcp.example.com.
3. DNS Client (NUT) sends a standard query message which one NUT application supporting RCDS includes QNAME = "_rcds._udp.example.com.", type = SRV, the other NUT application supporting THTTP includes QNAME = "_thttp._tcp.example.com", type = SRV. Judgment (Check *3)
|
||
IP Header | Source Address | NUT_NETZ |
Destination Address | SV1_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 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 0 | |
ARCOUNT | 0 | |
DNS Question section | QNAME | foo.urn.arpa. |
QTYPE | NAPTR (0x0023) | |
QCLASS | IN (0x0001) |
|
||
IP Header | Source Address | SV1_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 | 1 | |
TC | 0 | |
RD | 0 | |
RA | 0 | |
Z | 0 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 3 | |
NSCOUNT | 1 | |
ARCOUNT | 2 | |
DNS Question section | QNAME | foo.urn.arpa. |
QTYPE | NAPTR (0x0023) | |
QCLASS | IN (0x0001) | |
DNS Answer section | NAME | foo.urn.arpa. (Pointer 0xC00C) |
TYPE | NAPTR (0x0023) | |
CLASS | IN (0x0001) | |
TTL | 86400sec | |
RDLENGTH | 50 | |
ORDER | 100 | |
PREFERENCE | 10 | |
FLAGS | "s" | |
SERVICES | "foolink+I2L+I2C" | |
REGEXP | "" | |
REPLACEMENT | _foolink._udp.example.com. | |
DNS Answer section | NAME | foo.urn.arpa. (Pointer 0xC00C) |
TYPE | NAPTR (0x0023) | |
CLASS | IN (0x0001) | |
TTL | 86400sec | |
RDLENGTH | 40 | |
ORDER | 100 | |
PREFERENCE | 20 | |
FLAGS | "s" | |
SERVICES | "rcds+I2C" | |
REGEXP | "" | |
REPLACEMENT | _rcds._udp.example.com. | |
DNS Answer section | NAME | foo.urn.arpa. (Pointer 0xC00C) |
TYPE | NAPTR (0x0023) | |
CLASS | IN (0x0001) | |
TTL | 86400sec | |
RDLENGTH | 50 | |
ORDER | 100 | |
PREFERENCE | 30 | |
FLAGS | "s" | |
SERVICES | "thttp+I2L+I2C+I2R" | |
REGEXP | "" | |
REPLACEMENT | _thttp._tcp.example.com. | |
DNS Authority section | NAME | urn.arpa. (Pointer 0xC010) |
TYPE | NS (0x0002) | |
CLASS | IN (0x0001) | |
TTL | 86400sec | |
RDLENGTH | 6 | |
NSDNAME | NS1.example.com (NS1 + Pointer 0xC0C1) | |
DNS Additional section | NAME | NS1.example.com (Pointer 0xC0DA) |
TYPE | A (0x0001) | |
CLASS | IN (0x0001) | |
TTL | 86400sec | |
RDLENGTH | 4 | |
ADDRESS | 192.168.1.20 | |
DNS Additional section | NAME | NS1.example.com (Pointer 0xC0DA) |
TYPE |
AAAA (0x001C) | |
CLASS | IN (0x0001) | |
TTL | 86400sec | |
RDLENGTH | 16 | |
ADDRESS | 3ffe:501:ffff:101::20 |
|
||
IP Header | Source Address | NUT_NETZ |
Destination Address | SV1_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 | |
RCODE | 0 | |
QDCOUNT | 1 | |
ANCOUNT | 0 | |
NSCOUNT | 0 | |
ARCOUNT | 0 | |
DNS Question section | QNAME | _rcds._udp.example.com. |
QTYPE | SRV (0x0021) | |
QCLASS | IN (0x0001) |
NUT_NETZ | DNS Client1's (NUT) Net-z address |
SV1_NETY | DNS Server1's (TN) Net-y address |
3. Received a query message in response to TN sent NAPTR resource record.
If NUT has cache function, clear the cache.
RFC3403 Dynamic Delegation Discovery System (DDDS) Part Three: The Domain Name System (DNS) Database 4. NAPTR RR Format RFC3404 Dynamic Delegation Discovery System (DDDS) Part Four: The Uniform Resource Identifiers (URI) Resolution Application 5.1 An Example Using a URN RFC2782 A DNS RR for specifying the location of services (DNS SRV)