1 ; config options 2 server: 3 target-fetch-policy: "0 0 0 0 0" 4 prefetch: "yes" 5 minimal-responses: no 6 iter-scrub-promiscuous: no 7 8 stub-zone: 9 name: "." 10 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 11 CONFIG_END 12 13 SCENARIO_BEGIN Test resolver prefetch where it fails to fetch 14 15 ; K.ROOT-SERVERS.NET. 16 RANGE_BEGIN 0 200 17 ADDRESS 193.0.14.129 18 ENTRY_BEGIN 19 MATCH opcode qtype qname 20 ADJUST copy_id 21 REPLY QR NOERROR 22 SECTION QUESTION 23 . IN NS 24 SECTION ANSWER 25 . IN NS K.ROOT-SERVERS.NET. 26 SECTION ADDITIONAL 27 K.ROOT-SERVERS.NET. IN A 193.0.14.129 28 ENTRY_END 29 30 ENTRY_BEGIN 31 MATCH opcode subdomain 32 ADJUST copy_id copy_query 33 REPLY QR NOERROR 34 SECTION QUESTION 35 com. IN NS 36 SECTION AUTHORITY 37 com. IN NS a.gtld-servers.net. 38 SECTION ADDITIONAL 39 a.gtld-servers.net. IN A 192.5.6.30 40 ENTRY_END 41 RANGE_END 42 43 ; a.gtld-servers.net. 44 RANGE_BEGIN 0 200 45 ADDRESS 192.5.6.30 46 ENTRY_BEGIN 47 MATCH opcode qtype qname 48 ADJUST copy_id 49 REPLY QR NOERROR 50 SECTION QUESTION 51 com. IN NS 52 SECTION ANSWER 53 com. IN NS a.gtld-servers.net. 54 SECTION ADDITIONAL 55 a.gtld-servers.net. IN A 192.5.6.30 56 ENTRY_END 57 58 ENTRY_BEGIN 59 MATCH opcode subdomain 60 ADJUST copy_id copy_query 61 REPLY QR NOERROR 62 SECTION QUESTION 63 example.com. IN NS 64 SECTION AUTHORITY 65 example.com. IN NS ns.example.com. 66 SECTION ADDITIONAL 67 ns.example.com. IN A 1.2.3.4 68 ENTRY_END 69 RANGE_END 70 71 ; ns.example.com. 72 RANGE_BEGIN 0 40 73 ADDRESS 1.2.3.4 74 ENTRY_BEGIN 75 MATCH opcode qtype qname 76 ADJUST copy_id 77 REPLY QR NOERROR 78 SECTION QUESTION 79 example.com. IN NS 80 SECTION ANSWER 81 example.com. IN NS ns.example.com. 82 SECTION ADDITIONAL 83 ns.example.com. IN A 1.2.3.4 84 ENTRY_END 85 86 ENTRY_BEGIN 87 MATCH opcode qtype qname 88 ADJUST copy_id 89 REPLY QR NOERROR 90 SECTION QUESTION 91 ns.example.com. IN AAAA 92 SECTION ANSWER 93 SECTION AUTHORITY 94 example.com. IN SOA ns.example.com. hostmaster.example.com. 1 2 3 4 5 95 ENTRY_END 96 97 ENTRY_BEGIN 98 MATCH opcode qtype qname 99 ADJUST copy_id 100 REPLY QR NOERROR 101 SECTION QUESTION 102 ns.example.com. IN A 103 SECTION ANSWER 104 ns.example.com. IN A 1.2.3.4 105 ENTRY_END 106 107 ENTRY_BEGIN 108 MATCH opcode qtype qname 109 ADJUST copy_id 110 REPLY QR NOERROR 111 SECTION QUESTION 112 www.example.com. IN A 113 SECTION ANSWER 114 www.example.com. 3600 IN A 10.20.30.40 115 SECTION AUTHORITY 116 example.com. 3600 IN NS ns.example.com. 117 SECTION ADDITIONAL 118 ns.example.com. 3600 IN A 1.2.3.4 119 ENTRY_END 120 RANGE_END 121 122 ; ns.example.com. 123 RANGE_BEGIN 50 100 124 ADDRESS 1.2.3.4 125 ENTRY_BEGIN 126 MATCH opcode qtype qname 127 ADJUST copy_id 128 REPLY QR NOERROR 129 SECTION QUESTION 130 example.com. IN NS 131 SECTION ANSWER 132 example.com. IN NS ns.example.com. 133 SECTION ADDITIONAL 134 ns.example.com. IN A 1.2.3.4 135 ENTRY_END 136 137 ENTRY_BEGIN 138 MATCH opcode qtype qname 139 ADJUST copy_id 140 REPLY QR NOERROR 141 SECTION QUESTION 142 ns.example.com. IN A 143 SECTION ANSWER 144 ns.example.com. IN A 1.2.3.4 145 ENTRY_END 146 147 ENTRY_BEGIN 148 MATCH opcode qtype qname 149 ADJUST copy_id 150 REPLY QR NOERROR 151 SECTION QUESTION 152 ns.example.com. IN AAAA 153 SECTION ANSWER 154 SECTION AUTHORITY 155 example.com. IN SOA ns.example.com. hostmaster.example.com. 1 2 3 4 5 156 ENTRY_END 157 158 ENTRY_BEGIN 159 MATCH opcode qtype qname 160 ADJUST copy_id 161 REPLY QR AA SERVFAIL 162 SECTION QUESTION 163 www.example.com. IN A 164 ;SECTION ANSWER 165 ;www.example.com. 3600 IN A 10.20.30.40 166 ;SECTION AUTHORITY 167 ;example.com. 3600 IN NS ns.example.com. 168 ;SECTION ADDITIONAL 169 ;ns.example.com. 3600 IN A 1.2.3.4 170 ENTRY_END 171 RANGE_END 172 173 ; note ns.example.com range for steps 100 - 160 is not entered 174 ; no queries should be sent there 175 176 ; ns.example.com. 177 RANGE_BEGIN 160 200 178 ADDRESS 1.2.3.4 179 ENTRY_BEGIN 180 MATCH opcode qtype qname 181 ADJUST copy_id 182 REPLY QR NOERROR 183 SECTION QUESTION 184 example.com. IN NS 185 SECTION ANSWER 186 example.com. IN NS ns.example.com. 187 SECTION ADDITIONAL 188 ns.example.com. IN A 1.2.3.4 189 ENTRY_END 190 191 ENTRY_BEGIN 192 MATCH opcode qtype qname 193 ADJUST copy_id 194 REPLY QR NOERROR 195 SECTION QUESTION 196 ns.example.com. IN AAAA 197 SECTION ANSWER 198 SECTION AUTHORITY 199 example.com. IN SOA ns.example.com. hostmaster.example.com. 1 2 3 4 5 200 ENTRY_END 201 202 ENTRY_BEGIN 203 MATCH opcode qtype qname 204 ADJUST copy_id 205 REPLY QR NOERROR 206 SECTION QUESTION 207 ns.example.com. IN A 208 SECTION ANSWER 209 ns.example.com. IN A 1.2.3.4 210 ENTRY_END 211 212 ENTRY_BEGIN 213 MATCH opcode qtype qname 214 ADJUST copy_id 215 REPLY QR NOERROR 216 SECTION QUESTION 217 www.example.com. IN A 218 SECTION ANSWER 219 www.example.com. 3600 IN A 10.20.30.40 220 SECTION AUTHORITY 221 example.com. 3600 IN NS ns.example.com. 222 SECTION ADDITIONAL 223 ns.example.com. 3600 IN A 1.2.3.4 224 ENTRY_END 225 RANGE_END 226 227 STEP 1 QUERY 228 ENTRY_BEGIN 229 REPLY RD 230 SECTION QUESTION 231 www.example.com. IN A 232 ENTRY_END 233 234 ; recursion happens here. 235 STEP 10 CHECK_ANSWER 236 ENTRY_BEGIN 237 MATCH all ttl 238 REPLY QR RD RA NOERROR 239 SECTION QUESTION 240 www.example.com. IN A 241 SECTION ANSWER 242 www.example.com. 3600 IN A 10.20.30.40 243 SECTION AUTHORITY 244 example.com. 3600 IN NS ns.example.com. 245 SECTION ADDITIONAL 246 ns.example.com. 3600 IN A 1.2.3.4 247 ENTRY_END 248 249 ; after 1800 secs still the cached answer 250 STEP 20 TIME_PASSES ELAPSE 1800 251 252 STEP 30 QUERY 253 ENTRY_BEGIN 254 REPLY RD 255 SECTION QUESTION 256 www.example.com. IN A 257 ENTRY_END 258 ; recursion happens here. 259 STEP 40 CHECK_ANSWER 260 ENTRY_BEGIN 261 MATCH all ttl 262 REPLY QR RD RA NOERROR 263 SECTION QUESTION 264 www.example.com. IN A 265 SECTION ANSWER 266 www.example.com. 1800 IN A 10.20.30.40 267 SECTION AUTHORITY 268 example.com. 1800 IN NS ns.example.com. 269 SECTION ADDITIONAL 270 ns.example.com. 1800 IN A 1.2.3.4 271 ENTRY_END 272 273 ; after 1440 we are 360 seconds before the expiry 274 ; (the authority changes behind the scenes to detect new lookup) 275 STEP 50 TIME_PASSES ELAPSE 1440 276 277 STEP 60 QUERY 278 ENTRY_BEGIN 279 REPLY RD 280 SECTION QUESTION 281 www.example.com. IN A 282 ENTRY_END 283 ; recursion happens here. 284 STEP 70 CHECK_ANSWER 285 ENTRY_BEGIN 286 MATCH all ttl 287 REPLY QR RD RA NOERROR 288 SECTION QUESTION 289 www.example.com. IN A 290 SECTION ANSWER 291 www.example.com. 360 IN A 10.20.30.40 292 SECTION AUTHORITY 293 example.com. 360 IN NS ns.example.com. 294 SECTION ADDITIONAL 295 ns.example.com. 360 IN A 1.2.3.4 296 ENTRY_END 297 STEP 80 TRAFFIC 298 ; let traffic flow for prefetch to happen 299 300 ; above a cache reply with 10% of the original TTL 301 ; but the actual cache could have been updated, try to get that 302 STEP 120 QUERY 303 ENTRY_BEGIN 304 REPLY RD 305 SECTION QUESTION 306 www.example.com. IN A 307 ENTRY_END 308 ; recursion happens here. 309 STEP 130 CHECK_ANSWER 310 ENTRY_BEGIN 311 MATCH all ttl 312 REPLY QR RD RA NOERROR 313 SECTION QUESTION 314 www.example.com. IN A 315 SECTION ANSWER 316 www.example.com. 360 IN A 10.20.30.40 317 SECTION AUTHORITY 318 example.com. 360 IN NS ns.example.com. 319 SECTION ADDITIONAL 320 ; this is picked up from the parent (because this simulation has the 321 ; parent respond with servfail, not actually timeout) 322 ns.example.com. 3600 IN A 1.2.3.4 323 ENTRY_END 324 325 ; another query to see if there is another lookup towards the authority 326 ; the server should not send too many queries towards the authority 327 STEP 140 QUERY 328 ENTRY_BEGIN 329 REPLY RD 330 SECTION QUESTION 331 www.example.com. IN A 332 ENTRY_END 333 ; recursion happens here. 334 STEP 150 CHECK_ANSWER 335 ENTRY_BEGIN 336 MATCH all ttl 337 REPLY QR RD RA NOERROR 338 SECTION QUESTION 339 www.example.com. IN A 340 SECTION ANSWER 341 www.example.com. 360 IN A 10.20.30.40 342 SECTION AUTHORITY 343 example.com. 360 IN NS ns.example.com. 344 SECTION ADDITIONAL 345 ns.example.com. 3600 IN A 1.2.3.4 346 ENTRY_END 347 348 ; some time later another query, and now it is fine to bother the authority 349 ; with another lookup attempt. 350 STEP 160 TIME_PASSES ELAPSE 30 351 ; so we are now 330 seconds before expiry. 352 STEP 170 QUERY 353 ENTRY_BEGIN 354 REPLY RD 355 SECTION QUESTION 356 www.example.com. IN A 357 ENTRY_END 358 ; recursion happens here. 359 STEP 180 CHECK_ANSWER 360 ENTRY_BEGIN 361 MATCH all ttl 362 REPLY QR RD RA NOERROR 363 SECTION QUESTION 364 www.example.com. IN A 365 SECTION ANSWER 366 www.example.com. 330 IN A 10.20.30.40 367 SECTION AUTHORITY 368 example.com. 330 IN NS ns.example.com. 369 SECTION ADDITIONAL 370 ns.example.com. 3570 IN A 1.2.3.4 371 ENTRY_END 372 ; now the just-looked-up entry 373 STEP 190 QUERY 374 ENTRY_BEGIN 375 REPLY RD 376 SECTION QUESTION 377 www.example.com. IN A 378 ENTRY_END 379 ; recursion happens here. 380 STEP 200 CHECK_ANSWER 381 ENTRY_BEGIN 382 MATCH all ttl 383 REPLY QR RD RA NOERROR 384 SECTION QUESTION 385 www.example.com. IN A 386 SECTION ANSWER 387 www.example.com. 3600 IN A 10.20.30.40 388 SECTION AUTHORITY 389 example.com. 3600 IN NS ns.example.com. 390 SECTION ADDITIONAL 391 ns.example.com. 3570 IN A 1.2.3.4 392 ENTRY_END 393 394 395 SCENARIO_END 396