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: yes
      6 	serve-expired: yes
      7 	serve-expired-client-timeout: 0
      8 	serve-expired-reply-ttl: 123
      9 	;module-config: "subnetcache validator cachedb iterator"
     10 	module-config: "validator cachedb iterator"
     11 	ede: yes
     12 	ede-serve-expired: yes
     13 
     14 cachedb:
     15 	backend: "testframe"
     16 	secret-seed: "testvalue"
     17 	cachedb-check-when-serve-expired: yes
     18 
     19 stub-zone:
     20 	name: "."
     21 	stub-addr: 193.0.14.129
     22 CONFIG_END
     23 
     24 SCENARIO_BEGIN Test cachedb, validator and serve expired.
     25 
     26 ; K.ROOT-SERVERS.NET.
     27 RANGE_BEGIN 0 400
     28 	ADDRESS 193.0.14.129
     29 ENTRY_BEGIN
     30 MATCH opcode qtype qname
     31 ADJUST copy_id
     32 REPLY QR NOERROR
     33 SECTION QUESTION
     34 . IN NS
     35 SECTION ANSWER
     36 . IN NS K.ROOT-SERVERS.NET.
     37 SECTION ADDITIONAL
     38 K.ROOT-SERVERS.NET.     IN      A       193.0.14.129
     39 ENTRY_END
     40 
     41 ENTRY_BEGIN
     42 MATCH opcode subdomain
     43 ADJUST copy_id copy_query
     44 REPLY QR NOERROR
     45 SECTION QUESTION
     46 com. IN NS
     47 SECTION AUTHORITY
     48 com. IN NS a.gtld-servers.net.
     49 SECTION ADDITIONAL
     50 a.gtld-servers.net.	IN	A	192.5.6.30
     51 ENTRY_END
     52 RANGE_END
     53 
     54 ; a.gtld-servers.net.
     55 RANGE_BEGIN 0 400
     56 	ADDRESS 192.5.6.30
     57 ENTRY_BEGIN
     58 MATCH opcode subdomain
     59 ADJUST copy_id copy_query
     60 REPLY QR NOERROR
     61 SECTION QUESTION
     62 example.com. IN NS
     63 SECTION AUTHORITY
     64 example.com. IN NS ns2.example.com.
     65 SECTION ADDITIONAL
     66 ns2.example.com.	IN	A	1.2.3.5
     67 ENTRY_END
     68 
     69 ENTRY_BEGIN
     70 MATCH opcode subdomain
     71 ADJUST copy_id copy_query
     72 REPLY QR NOERROR
     73 SECTION QUESTION
     74 foo.com. IN NS
     75 SECTION AUTHORITY
     76 foo.com. IN NS ns.example.com.
     77 ENTRY_END
     78 RANGE_END
     79 
     80 ; ns2.example.com.
     81 RANGE_BEGIN 0 400
     82 	ADDRESS 1.2.3.5
     83 ENTRY_BEGIN
     84 MATCH opcode qname qtype
     85 REPLY QR AA NOERROR
     86 SECTION QUESTION
     87 www.example.com. IN A
     88 SECTION ANSWER
     89 www.example.com. 200 IN A 1.2.3.4
     90 ENTRY_END
     91 
     92 ENTRY_BEGIN
     93 MATCH opcode qname qtype
     94 REPLY QR AA NOERROR
     95 SECTION QUESTION
     96 www2.example.com. IN A
     97 SECTION ANSWER
     98 ; TTL lower than serve-expired-reply-ttl on purpose
     99 www2.example.com. 100 IN A 1.2.3.5
    100 ENTRY_END
    101 RANGE_END
    102 
    103 ; Get an entry in cache, to make it expired.
    104 STEP 1 QUERY
    105 ENTRY_BEGIN
    106 REPLY RD
    107 SECTION QUESTION
    108 www.example.com. IN A
    109 ENTRY_END
    110 
    111 ; get the answer for it
    112 STEP 10 CHECK_ANSWER
    113 ENTRY_BEGIN
    114 MATCH all
    115 REPLY QR RD RA NOERROR
    116 SECTION QUESTION
    117 www.example.com. IN A
    118 SECTION ANSWER
    119 www.example.com. 200 IN A 1.2.3.4
    120 ENTRY_END
    121 
    122 ; Get another query in cache to make it expired.
    123 STEP 20 QUERY
    124 ENTRY_BEGIN
    125 REPLY RD
    126 SECTION QUESTION
    127 www2.example.com. IN A
    128 ENTRY_END
    129 
    130 ; get the answer for it
    131 STEP 30 CHECK_ANSWER
    132 ENTRY_BEGIN
    133 MATCH all
    134 REPLY QR RD RA NOERROR
    135 SECTION QUESTION
    136 www2.example.com. IN A
    137 SECTION ANSWER
    138 www2.example.com. 100 IN A 1.2.3.5
    139 ENTRY_END
    140 
    141 ; it is now expired
    142 STEP 40 TIME_PASSES ELAPSE 200
    143 
    144 ; cache is expired, and cachedb is expired.
    145 ; The expired reply, from cachedb, needs a validation status,
    146 ; because the validator module set that validation is needed.
    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 ; cache is expired, cachedb has no answer
    165 STEP 70 QUERY
    166 ENTRY_BEGIN
    167 REPLY RD DO
    168 SECTION QUESTION
    169 www.example.com. IN A
    170 ENTRY_END
    171 
    172 STEP 80 CHECK_ANSWER
    173 ENTRY_BEGIN
    174 MATCH all ttl ede=3
    175 REPLY QR RD RA DO NOERROR
    176 SECTION QUESTION
    177 www.example.com. IN A
    178 SECTION ANSWER
    179 www.example.com. 123 IN A 1.2.3.4
    180 ENTRY_END
    181 
    182 STEP 90 TRAFFIC
    183 ; the entry should be refreshed in cache now.
    184 ; cache is valid and cachedb is valid.
    185 STEP 100 QUERY
    186 ENTRY_BEGIN
    187 REPLY RD
    188 SECTION QUESTION
    189 www.example.com. IN A
    190 ENTRY_END
    191 
    192 STEP 110 CHECK_ANSWER
    193 ENTRY_BEGIN
    194 MATCH all ttl
    195 REPLY QR RD RA NOERROR
    196 SECTION QUESTION
    197 www.example.com. IN A
    198 SECTION ANSWER
    199 www.example.com. 200 IN A 1.2.3.4
    200 ENTRY_END
    201 
    202 ; flush the entry from cache
    203 STEP 120 FLUSH_MESSAGE www.example.com. IN A
    204 
    205 ; cache has no answer, cachedb valid
    206 STEP 130 QUERY
    207 ENTRY_BEGIN
    208 REPLY RD
    209 SECTION QUESTION
    210 www.example.com. IN A
    211 ENTRY_END
    212 
    213 STEP 140 CHECK_ANSWER
    214 ENTRY_BEGIN
    215 MATCH all ttl
    216 REPLY QR RD RA NOERROR
    217 SECTION QUESTION
    218 www.example.com. IN A
    219 SECTION ANSWER
    220 www.example.com. 200 IN A 1.2.3.4
    221 ENTRY_END
    222 
    223 ; it is now expired
    224 STEP 150 TIME_PASSES ELAPSE 200
    225 ; flush the entry from cache
    226 STEP 160 FLUSH_MESSAGE www.example.com. IN A
    227 
    228 ; cache has no answer, cachedb is expired
    229 ; but it needs to be validated.
    230 STEP 170 QUERY
    231 ENTRY_BEGIN
    232 REPLY RD DO
    233 SECTION QUESTION
    234 www.example.com. IN A
    235 ENTRY_END
    236 
    237 STEP 180 CHECK_ANSWER
    238 ENTRY_BEGIN
    239 MATCH all ttl
    240 ;ede=3
    241 REPLY QR RD RA DO NOERROR
    242 SECTION QUESTION
    243 www.example.com. IN A
    244 SECTION ANSWER
    245 ;www.example.com. 123 IN A 1.2.3.4
    246 www.example.com. 200 IN A 1.2.3.4
    247 ENTRY_END
    248 
    249 STEP 190 TRAFFIC
    250 ; the expired message is updated.
    251 
    252 ; cache is valid, cachedb is valid
    253 STEP 200 QUERY
    254 ENTRY_BEGIN
    255 REPLY RD
    256 SECTION QUESTION
    257 www.example.com. IN A
    258 ENTRY_END
    259 
    260 STEP 210 CHECK_ANSWER
    261 ENTRY_BEGIN
    262 MATCH all ttl
    263 REPLY QR RD RA NOERROR
    264 SECTION QUESTION
    265 www.example.com. IN A
    266 SECTION ANSWER
    267 www.example.com. 200 IN A 1.2.3.4
    268 ENTRY_END
    269 
    270 ; expire the entry in cache
    271 STEP 220 EXPIRE_MESSAGE www.example.com. IN A
    272 
    273 ; cache is expired, cachedb valid
    274 STEP 230 QUERY
    275 ENTRY_BEGIN
    276 REPLY RD
    277 SECTION QUESTION
    278 www.example.com. IN A
    279 ENTRY_END
    280 
    281 STEP 240 CHECK_ANSWER
    282 ENTRY_BEGIN
    283 MATCH all ttl
    284 REPLY QR RD RA NOERROR
    285 SECTION QUESTION
    286 www.example.com. IN A
    287 SECTION ANSWER
    288 www.example.com. 200 IN A 1.2.3.4
    289 ENTRY_END
    290 
    291 ; it is now expired
    292 STEP 250 TIME_PASSES ELAPSE 200
    293 ; expire the entry in cache
    294 STEP 260 EXPIRE_MESSAGE www.example.com. IN A
    295 
    296 ; cache is expired, cachedb is expired
    297 STEP 270 QUERY
    298 ENTRY_BEGIN
    299 REPLY RD DO
    300 SECTION QUESTION
    301 www.example.com. IN A
    302 ENTRY_END
    303 
    304 ; but it needs to be validated
    305 STEP 280 CHECK_ANSWER
    306 ENTRY_BEGIN
    307 MATCH all ttl
    308 ;ede=3
    309 REPLY QR RD RA DO NOERROR
    310 SECTION QUESTION
    311 www.example.com. IN A
    312 SECTION ANSWER
    313 ;www.example.com. 123 IN A 1.2.3.4
    314 www.example.com. 200 IN A 1.2.3.4
    315 ENTRY_END
    316 
    317 STEP 290 TRAFFIC
    318 ; the expired message is updated.
    319 
    320 ; cache is valid, cachedb is valid
    321 STEP 300 QUERY
    322 ENTRY_BEGIN
    323 REPLY RD
    324 SECTION QUESTION
    325 www.example.com. IN A
    326 ENTRY_END
    327 
    328 STEP 310 CHECK_ANSWER
    329 ENTRY_BEGIN
    330 MATCH all ttl
    331 REPLY QR RD RA NOERROR
    332 SECTION QUESTION
    333 www.example.com. IN A
    334 SECTION ANSWER
    335 www.example.com. 200 IN A 1.2.3.4
    336 ENTRY_END
    337 
    338 SCENARIO_END
    339