mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-06 17:18:32 +00:00
325 lines
5.5 KiB
Plaintext
325 lines
5.5 KiB
Plaintext
![]() |
; config options
|
||
|
server:
|
||
|
target-fetch-policy: "0 0 0 0 0"
|
||
|
qname-minimisation: no
|
||
|
minimal-responses: no
|
||
|
serve-expired: yes
|
||
|
module-config: "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 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.
|
||
|
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
|