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.
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
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)
|
||
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) |
|
||
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 |
|
||
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) |
|
||
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 |
|
||
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) |
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