CL_RFC3404_5_NAPTR_urn - URN resolution
Verify a NUT process to resolve URN.
- The Application Unique String is the URN for which an
- authoritative server is being located. This URN MUST be
- canonicalized and hex encoded according to the "absolute-uri"
- production found in the Collected ABNF from RFC 2396.
- The output of the First Well Known Rule of the URN Resolution
- Application is the URN's namespace id. In order to convert this to a
- unique key in this Database the string '.urn.arpa.' is appended to
- the end. This domain-name is used to request NAPTR records which
- produces new keys in the form of domain-names.
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
Setup
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)
- Packet Description
- 1st packet.
|
Standard query from DNS Client1 (NUT) to Server1 (TN)
|
| 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) |
- 2nd packet.
|
Standard query response from DNS Server1 (TN) to Client1 (NUT)
|
| 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 |
- 3rd packet.
|
Standard query from DNS Client1 (NUT) to Server1 (TN)
|
| 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. or _thttp._tcp.example.com. |
| QTYPE |
SRV (0x0021) |
| QCLASS |
IN (0x0001) |
- Exp.
| 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)