-
-
Notifications
You must be signed in to change notification settings - Fork 339
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Fix #1064: Unbound 1.20 Cachedb broken?
Add unit test for validation status commit.
- Loading branch information
1 parent
fbdc06e
commit 7107d3c
Showing
2 changed files
with
330 additions
and
0 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,327 @@ | ||
; config options | ||
server: | ||
target-fetch-policy: "0 0 0 0 0" | ||
qname-minimisation: no | ||
minimal-responses: yes | ||
serve-expired: yes | ||
;module-config: "subnetcache validator cachedb iterator" | ||
module-config: "validator cachedb iterator" | ||
|
||
cachedb: | ||
backend: "testframe" | ||
secret-seed: "testvalue" | ||
cachedb-check-when-serve-expired: yes | ||
|
||
stub-zone: | ||
name: "." | ||
stub-addr: 193.0.14.129 | ||
CONFIG_END | ||
|
||
SCENARIO_BEGIN Test cachedb, validator and serve expired. | ||
|
||
; K.ROOT-SERVERS.NET. | ||
RANGE_BEGIN 0 400 | ||
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 400 | ||
ADDRESS 192.5.6.30 | ||
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 ns2.example.com. | ||
SECTION ADDITIONAL | ||
ns2.example.com. IN A 1.2.3.5 | ||
ENTRY_END | ||
|
||
ENTRY_BEGIN | ||
MATCH opcode subdomain | ||
ADJUST copy_id copy_query | ||
REPLY QR NOERROR | ||
SECTION QUESTION | ||
foo.com. IN NS | ||
SECTION AUTHORITY | ||
foo.com. IN NS ns.example.com. | ||
ENTRY_END | ||
RANGE_END | ||
|
||
; ns2.example.com. | ||
RANGE_BEGIN 0 400 | ||
ADDRESS 1.2.3.5 | ||
ENTRY_BEGIN | ||
MATCH opcode qname qtype | ||
REPLY QR AA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 10 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
ENTRY_BEGIN | ||
MATCH opcode qname qtype | ||
REPLY QR AA NOERROR | ||
SECTION QUESTION | ||
www2.example.com. IN A | ||
SECTION ANSWER | ||
www2.example.com. 10 IN A 1.2.3.5 | ||
ENTRY_END | ||
RANGE_END | ||
|
||
; Get an entry in cache, to make it expired. | ||
STEP 1 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
; get the answer for it | ||
STEP 10 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 10 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
; Get another query in cache to make it expired. | ||
STEP 20 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www2.example.com. IN A | ||
ENTRY_END | ||
|
||
; get the answer for it | ||
STEP 30 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www2.example.com. IN A | ||
SECTION ANSWER | ||
www2.example.com. 10 IN A 1.2.3.5 | ||
ENTRY_END | ||
|
||
; it is now expired | ||
STEP 40 TIME_PASSES ELAPSE 20 | ||
|
||
; cache is expired, and cachedb is expired. | ||
; The expired reply, from cachedb, needs a validation status, | ||
; because the validator module set that validation is needed. | ||
STEP 50 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www2.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 60 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www2.example.com. IN A | ||
SECTION ANSWER | ||
www2.example.com. 30 IN A 1.2.3.5 | ||
ENTRY_END | ||
|
||
; cache is expired, cachedb has no answer | ||
STEP 70 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 80 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 30 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
STEP 90 TRAFFIC | ||
; the entry should be refreshed in cache now. | ||
; cache is valid and cachedb is valid. | ||
STEP 100 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 110 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 10 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
; flush the entry from cache | ||
STEP 120 FLUSH_MESSAGE www.example.com. IN A | ||
|
||
; cache has no answer, cachedb valid | ||
STEP 130 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 140 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 10 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
; it is now expired | ||
STEP 150 TIME_PASSES ELAPSE 20 | ||
; flush the entry from cache | ||
STEP 160 FLUSH_MESSAGE www.example.com. IN A | ||
|
||
; cache has no answer, cachedb is expired | ||
STEP 170 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 180 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 30 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
STEP 190 TRAFFIC | ||
; the expired message is updated. | ||
|
||
; cache is valid, cachedb is valid | ||
STEP 200 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 210 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 10 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
; expire the entry in cache | ||
STEP 220 EXPIRE_MESSAGE www.example.com. IN A | ||
|
||
; cache is expired, cachedb valid | ||
STEP 230 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 240 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 10 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
; it is now expired | ||
STEP 250 TIME_PASSES ELAPSE 20 | ||
; expire the entry in cache | ||
STEP 260 EXPIRE_MESSAGE www.example.com. IN A | ||
|
||
; cache is expired, cachedb is expired | ||
STEP 270 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 280 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 30 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
STEP 290 TRAFFIC | ||
; the expired message is updated. | ||
|
||
; cache is valid, cachedb is valid | ||
STEP 300 QUERY | ||
ENTRY_BEGIN | ||
REPLY RD | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
ENTRY_END | ||
|
||
STEP 310 CHECK_ANSWER | ||
ENTRY_BEGIN | ||
MATCH all ttl | ||
REPLY QR RD RA NOERROR | ||
SECTION QUESTION | ||
www.example.com. IN A | ||
SECTION ANSWER | ||
www.example.com. 10 IN A 1.2.3.4 | ||
ENTRY_END | ||
|
||
SCENARIO_END |