-
-
Notifications
You must be signed in to change notification settings - Fork 358
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Fix dns64 with prefetch that the prefetch is stored in cache.
- Loading branch information
1 parent
5e9b629
commit a35a0c4
Showing
4 changed files
with
201 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
; config options | ||
server: | ||
target-fetch-policy: "0 0 0 0 0" | ||
qname-minimisation: "no" | ||
module-config: "dns64 iterator" | ||
dns64-prefix: 64:ff9b::0/96 | ||
minimal-responses: no | ||
prefetch: yes | ||
|
||
stub-zone: | ||
name: "." | ||
stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. | ||
CONFIG_END | ||
|
||
SCENARIO_BEGIN Test dns64 with prefetch and cache store. | ||
|
||
; K.ROOT-SERVERS.NET. | ||
RANGE_BEGIN 0 200 | ||
ADDRESS 193.0.14.129 | ||
ENTRY_BEGIN | ||
MATCH opcode qtype qname | ||
ADJUST copy_id | ||
REPLY QR NOERROR | ||
SECTION QUESTION | ||
. IN NS | ||
SECTION ANSWER | ||
. IN NS K.ROOT-SERVERS.NET. | ||
SECTION ADDITIONAL | ||
K.ROOT-SERVERS.NET. IN A 193.0.14.129 | ||
ENTRY_END | ||
|
||
ENTRY_BEGIN | ||
MATCH opcode subdomain | ||
ADJUST copy_id copy_query | ||
REPLY QR NOERROR | ||
SECTION QUESTION | ||
com. IN NS | ||
SECTION AUTHORITY | ||
com. IN NS a.gtld-servers.net. | ||
SECTION ADDITIONAL | ||
a.gtld-servers.net. IN A 192.5.6.30 | ||
ENTRY_END | ||
RANGE_END | ||
|
||
; a.gtld-servers.net. | ||
RANGE_BEGIN 0 200 | ||
ADDRESS 192.5.6.30 | ||
ENTRY_BEGIN | ||
MATCH opcode qtype qname | ||
ADJUST copy_id | ||
REPLY QR NOERROR | ||
SECTION QUESTION | ||
com. IN NS | ||
SECTION ANSWER | ||
com. IN NS a.gtld-servers.net. | ||
SECTION ADDITIONAL | ||
a.gtld-servers.net. IN A 192.5.6.30 | ||
ENTRY_END | ||
|
||
ENTRY_BEGIN | ||
MATCH opcode subdomain | ||
ADJUST copy_id copy_query | ||
REPLY QR NOERROR | ||
SECTION QUESTION | ||
example.com. IN NS | ||
SECTION AUTHORITY | ||
example.com. IN NS ns.example.com. | ||
SECTION ADDITIONAL | ||
ns.example.com. IN A 1.2.3.4 | ||
ENTRY_END | ||
RANGE_END | ||
|
||
; ns.example.com. | ||
RANGE_BEGIN 0 100 | ||
ADDRESS 1.2.3.4 | ||
ENTRY_BEGIN | ||
MATCH opcode qtype qname | ||
ADJUST copy_id | ||
REPLY QR AA NOERROR | ||
SECTION QUESTION | ||
example.com. IN NS | ||
SECTION ANSWER | ||
example.com. IN NS ns.example.com. | ||
SECTION ADDITIONAL | ||
ns.example.com. IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
ENTRY_BEGIN | ||
MATCH opcode qtype qname | ||
ADJUST copy_id | ||
REPLY QR AA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. IN A 10.20.30.40 | ||
SECTION AUTHORITY | ||
example.com. IN NS ns.example.com. | ||
SECTION ADDITIONAL | ||
ns.example.com. IN A 1.2.3.4 | ||
ENTRY_END | ||
RANGE_END | ||
|
||
STEP 1 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
; recursion happens here. | ||
STEP 10 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 3600 IN A 10.20.30.40 | ||
SECTION AUTHORITY | ||
example.com. 3600 IN NS ns.example.com. | ||
SECTION ADDITIONAL | ||
ns.example.com. 3600 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
STEP 20 TIME_PASSES ELAPSE 3500 | ||
|
||
STEP 30 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
; the prefetch is started, the older cache reply is returned. | ||
STEP 40 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 100 IN A 10.20.30.40 | ||
SECTION AUTHORITY | ||
example.com. 100 IN NS ns.example.com. | ||
SECTION ADDITIONAL | ||
ns.example.com. 100 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
; check what is in the cache | ||
STEP 42 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 43 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 3600 IN A 10.20.30.40 | ||
SECTION AUTHORITY | ||
example.com. 3600 IN NS ns.example.com. | ||
SECTION ADDITIONAL | ||
ns.example.com. 3600 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
STEP 50 TIME_PASSES ELAPSE 300 | ||
|
||
; now the upstream is offline, the prefetched answer should be in the cache. | ||
STEP 110 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 120 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 3300 IN A 10.20.30.40 | ||
SECTION AUTHORITY | ||
example.com. 3300 IN NS ns.example.com. | ||
SECTION ADDITIONAL | ||
ns.example.com. 3300 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
SCENARIO_END |