Home | History | Annotate | Line # | Download | only in testdata
      1 ; config options
      2 server:
      3 	target-fetch-policy: "0 0 0 0 0"
      4 	qname-minimisation: no
      5 	minimal-responses: no
      6 	serve-expired: yes
      7 	serve-expired-client-timeout: 0
      8 	serve-expired-reply-ttl: 123
      9 	module-config: "cachedb iterator"
     10 	ede: yes
     11 	ede-serve-expired: yes
     12 
     13 cachedb:
     14 	backend: "testframe"
     15 	secret-seed: "testvalue"
     16 	cachedb-check-when-serve-expired: yes
     17 
     18 stub-zone:
     19 	name: "."
     20 	stub-addr: 193.0.14.129
     21 CONFIG_END
     22 
     23 SCENARIO_BEGIN Test cachedb and serve-expired-reply-ttl.
     24 
     25 ; K.ROOT-SERVERS.NET.
     26 RANGE_BEGIN 0 400
     27 	ADDRESS 193.0.14.129
     28 ENTRY_BEGIN
     29 MATCH opcode qtype qname
     30 ADJUST copy_id
     31 REPLY QR NOERROR
     32 SECTION QUESTION
     33 . IN NS
     34 SECTION ANSWER
     35 . IN NS K.ROOT-SERVERS.NET.
     36 SECTION ADDITIONAL
     37 K.ROOT-SERVERS.NET.     IN      A       193.0.14.129
     38 ENTRY_END
     39 
     40 ENTRY_BEGIN
     41 MATCH opcode subdomain
     42 ADJUST copy_id copy_query
     43 REPLY QR NOERROR
     44 SECTION QUESTION
     45 com. IN NS
     46 SECTION AUTHORITY
     47 com. IN NS a.gtld-servers.net.
     48 SECTION ADDITIONAL
     49 a.gtld-servers.net.	IN	A	192.5.6.30
     50 ENTRY_END
     51 RANGE_END
     52 
     53 ; a.gtld-servers.net.
     54 RANGE_BEGIN 0 400
     55 	ADDRESS 192.5.6.30
     56 ENTRY_BEGIN
     57 MATCH opcode subdomain
     58 ADJUST copy_id copy_query
     59 REPLY QR NOERROR
     60 SECTION QUESTION
     61 example.com. IN NS
     62 SECTION AUTHORITY
     63 example.com. IN NS ns2.example.com.
     64 SECTION ADDITIONAL
     65 ns2.example.com.	IN	A	1.2.3.5
     66 ENTRY_END
     67 
     68 ENTRY_BEGIN
     69 MATCH opcode subdomain
     70 ADJUST copy_id copy_query
     71 REPLY QR NOERROR
     72 SECTION QUESTION
     73 foo.com. IN NS
     74 SECTION AUTHORITY
     75 foo.com. IN NS ns.example.com.
     76 ENTRY_END
     77 RANGE_END
     78 
     79 ; ns2.example.com.
     80 RANGE_BEGIN 0 400
     81 	ADDRESS 1.2.3.5
     82 ENTRY_BEGIN
     83 MATCH opcode qname qtype
     84 REPLY QR AA NOERROR
     85 SECTION QUESTION
     86 www.example.com. IN A
     87 SECTION ANSWER
     88 www.example.com. 200 IN A 1.2.3.4
     89 ENTRY_END
     90 
     91 ENTRY_BEGIN
     92 MATCH opcode qname qtype
     93 REPLY QR AA NOERROR
     94 SECTION QUESTION
     95 www2.example.com. IN A
     96 SECTION ANSWER
     97 ; TTL lower than serve-expired-reply-ttl on purpose
     98 www2.example.com. 100 IN A 1.2.3.5
     99 ENTRY_END
    100 RANGE_END
    101 
    102 ; make time not 0
    103 STEP 2 TIME_PASSES ELAPSE 212
    104 
    105 ; Get an entry in cache, to make it expired.
    106 STEP 4 QUERY
    107 ENTRY_BEGIN
    108 REPLY RD
    109 SECTION QUESTION
    110 www.example.com. IN A
    111 ENTRY_END
    112 
    113 ; get the answer for it
    114 STEP 10 CHECK_ANSWER
    115 ENTRY_BEGIN
    116 MATCH all
    117 REPLY QR RD RA NOERROR
    118 SECTION QUESTION
    119 www.example.com. IN A
    120 SECTION ANSWER
    121 www.example.com. 200 IN A 1.2.3.4
    122 ENTRY_END
    123 
    124 ; Get another query in cache to make it expired.
    125 STEP 20 QUERY
    126 ENTRY_BEGIN
    127 REPLY RD
    128 SECTION QUESTION
    129 www2.example.com. IN A
    130 ENTRY_END
    131 
    132 ; get the answer for it
    133 STEP 30 CHECK_ANSWER
    134 ENTRY_BEGIN
    135 MATCH all
    136 REPLY QR RD RA NOERROR
    137 SECTION QUESTION
    138 www2.example.com. IN A
    139 SECTION ANSWER
    140 www2.example.com. 100 IN A 1.2.3.5
    141 ENTRY_END
    142 
    143 ; it is now expired
    144 STEP 40 TIME_PASSES ELAPSE 200
    145 
    146 ; cache is expired, and cachedb is expired.
    147 STEP 50 QUERY
    148 ENTRY_BEGIN
    149 REPLY RD DO
    150 SECTION QUESTION
    151 www2.example.com. IN A
    152 ENTRY_END
    153 
    154 STEP 60 CHECK_ANSWER
    155 ENTRY_BEGIN
    156 MATCH all ttl ede=3
    157 REPLY QR RD RA DO NOERROR
    158 SECTION QUESTION
    159 www2.example.com. IN A
    160 SECTION ANSWER
    161 www2.example.com. 100 IN A 1.2.3.5
    162 ENTRY_END
    163 
    164 ; got an answer from upstream
    165 STEP 61 QUERY
    166 ENTRY_BEGIN
    167 REPLY RD
    168 SECTION QUESTION
    169 www2.example.com. IN A
    170 ENTRY_END
    171 
    172 STEP 62 CHECK_ANSWER
    173 ENTRY_BEGIN
    174 MATCH all ttl
    175 REPLY QR RD RA NOERROR
    176 SECTION QUESTION
    177 www2.example.com. IN A
    178 SECTION ANSWER
    179 www2.example.com. 100 IN A 1.2.3.5
    180 ENTRY_END
    181 
    182 ; cache is expired, cachedb has no answer
    183 STEP 70 QUERY
    184 ENTRY_BEGIN
    185 REPLY RD DO
    186 SECTION QUESTION
    187 www.example.com. IN A
    188 ENTRY_END
    189 
    190 STEP 80 CHECK_ANSWER
    191 ENTRY_BEGIN
    192 MATCH all ttl ede=3
    193 REPLY QR RD RA DO NOERROR
    194 SECTION QUESTION
    195 www.example.com. IN A
    196 SECTION ANSWER
    197 www.example.com. 123 IN A 1.2.3.4
    198 ENTRY_END
    199 
    200 STEP 90 TRAFFIC
    201 ; the entry should be refreshed in cache now.
    202 ; cache is valid and cachedb is valid.
    203 STEP 100 QUERY
    204 ENTRY_BEGIN
    205 REPLY RD
    206 SECTION QUESTION
    207 www.example.com. IN A
    208 ENTRY_END
    209 
    210 STEP 110 CHECK_ANSWER
    211 ENTRY_BEGIN
    212 MATCH all ttl
    213 REPLY QR RD RA NOERROR
    214 SECTION QUESTION
    215 www.example.com. IN A
    216 SECTION ANSWER
    217 www.example.com. 200 IN A 1.2.3.4
    218 ENTRY_END
    219 
    220 ; make both cache and cachedb expired.
    221 STEP 120 TIME_PASSES ELAPSE 200
    222 STEP 130 FLUSH_MESSAGE www.example.com. IN A
    223 
    224 ; cache has no entry and cachedb is expired.
    225 STEP 140 QUERY
    226 ENTRY_BEGIN
    227 REPLY RD DO
    228 SECTION QUESTION
    229 www.example.com. IN A
    230 ENTRY_END
    231 
    232 STEP 150 CHECK_ANSWER
    233 ENTRY_BEGIN
    234 MATCH all ttl ede=3
    235 REPLY QR RD RA DO NOERROR
    236 SECTION QUESTION
    237 www.example.com. IN A
    238 SECTION ANSWER
    239 www.example.com. 123 IN A 1.2.3.4
    240 ENTRY_END
    241 
    242 ; the name is resolved
    243 STEP 160 TRAFFIC
    244 
    245 ; the resolve name has been updated.
    246 STEP 170 QUERY
    247 ENTRY_BEGIN
    248 REPLY RD
    249 SECTION QUESTION
    250 www.example.com. IN A
    251 ENTRY_END
    252 
    253 STEP 180 CHECK_ANSWER
    254 ENTRY_BEGIN
    255 MATCH all ttl
    256 REPLY QR RD RA NOERROR
    257 SECTION QUESTION
    258 www.example.com. IN A
    259 SECTION ANSWER
    260 www.example.com. 200 IN A 1.2.3.4
    261 ENTRY_END
    262 
    263 SCENARIO_END
    264