CL_RFC3403_4_NAPTR_flagA - Flag "A" to control rewriting and interpretation
Verify a NUT process when NUT received message that includes multiple
Naming Authority Pointer (NAPTR) Resource Records (RR) containing
different flags.
- FLAGS
- A containing flags to control aspects of the
- rewriting and interpretation of the fields in the record. Flags
- are single characters from the set A-Z and 0-9. The case of the
- alphabetic characters is not significant. The field can be empty.
- It is up to the Application specifying how it is using this
- Database to define the Flags in this field. It must define which
- ones are terminal and which ones are not.
- If this flag is not present then this rule is non-terminal. If a
- Rule is non-terminal then clients MUST use the Key produced by this
- Rewrite Rule as the new Key in the DDDS loop (i.e., causing the
- client to query for new NAPTR records at the domain-name that is the
- result of this Rule).
- The "A" flags are for a terminal lookup. This means that the Rule
- is the last one and that the flag determines what the next stage
- should be. "A" means that the output of the Rule is a domain-name
- and should be used to lookup either A, AAAA, or A6 records for that
- domain.
Client (ADVANCED)
CL_RFC3403_4_NAPTR_flagA.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 Client1 (NUT) needs a HTTP program as DDDS application.
Application Unique String (AUS): http://www.example.com/dns/test.pdf
Key: http
Used domain-name to retrieve Rewrite Rules as NAPTR records: http.uri.arpa.
This test sequence is following.
DNS Client1 (NUT) DNS Server1 (TN)
| |
| Invoke some application |
| on NUT (Ex. HTTP) |
| |
|---------------------------------------------->|
| 1. Send standard query |
| QNAME="http.uri.arpa." |
| QTYPE=NAPTR |
| |
|<----------------------------------------------|
| 2. Send standard query response |
| |
|---------------------------------------------->|
| 3. Send standard query |
| QNAME="www.example.com" |
| QTYPE=NAPTR |
| |
|<----------------------------------------------|
| 4. Send standard query response |
| |
|---------------------------------------------->|
| 5. Send standard query |
| QNAME="http.example.com" |
| QTYPE=A or AAAA |
| |
v v
1. DNS Client1 (NUT) sends a standard query with QNAME = "http.uri.arpa." type = NAPTR
2. DNS Server1 (NUT) transmits a response to DNS Client1 (NUT) with:
$ORIGIN http.uri.arpa.
;; order pref flags service regexp replacement
IN NAPTR 100 90 "" "" "!^http://([^/:]+)!1!i" .
3. DNS Client1 (NUT) sends a standard query with QNAME = "www.example.com." type = NAPTR. Judgment (Check *3)
4. DNS Server1 (NUT) transmits a response to DNS Client1 (NUT) with:
$ORIGIN www.example.com.
;; order pref flags service regexp replacement
IN NAPTR 100 100 "a" "http+N2C" "" http.example.com.
5. DNS Client1 (NUT) sends a standard query with QNAME = "http.example.com." type = A or AAAA. Judgment (Check *5)
- 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 |
http.uri.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 |
1 |
| NSCOUNT |
1 |
| ARCOUNT |
2 |
| DNS Question section |
QNAME |
http.uri.arpa. |
| QTYPE |
NAPTR (0x0023) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
http.uri.arpa. (Pointer 0xC00C) |
| TYPE |
NAPTR (0x0023) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
29 |
| ORDER |
100 |
| PREFERENCE |
90 |
| FLAGS |
(not present) |
| SERVICES |
(not present) |
| REGEXP |
!^http://([^/:]+)!1!i |
| REPLACEMENT |
. |
| DNS Authority section |
NAME |
uri.arpa. (Pointer 0xC011) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
17 |
| NSDNAME |
NS1.example.com |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC054) |
| TYPE |
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.20 |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC054) |
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 |
www.example.com. |
| QTYPE |
NAPTR (0x0023) |
| QCLASS |
IN (0x0001) |
- 4th 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 |
1 |
| NSCOUNT |
1 |
| ARCOUNT |
2 |
| DNS Question section |
QNAME |
www.example.com. |
| QTYPE |
NAPTR (0x0023) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
www.example.com. (Pointer 0xC00C) |
| TYPE |
NAPTR (0x0023) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
34 |
| ORDER |
100 |
| PREFERENCE |
100 |
| FLAGS |
a |
| SERVICES |
http+N2C |
| REGEXP |
(not present) |
| REPLACEMENT |
http.example.com |
| DNS Authority section |
NAME |
example.com. (Pointer 0xC042) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
17 |
| NSDNAME |
NS1.example.com |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC05B) |
| TYPE |
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.20 |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC05B) |
TYPE
|
AAAA (0x001C) |
| CLASS |
IN (0x0001) |
| TTL |
86400sec |
| RDLENGTH |
16 |
| ADDRESS |
3ffe:501:ffff:101::20 |
- 5th 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 |
http.example.com. |
| QTYPE |
A (0x0001) or AAAA (0x001C) |
| 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 that it includes QNAME=www.example.com, TYPE=NAPTR.
5. Received a query message that it includes QNAME=http.example.com, TYPE=A or AAAA.
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.3 Resolving an HTTP URI Scheme