2 ; fetch all extra targets - we want to trigger a lookup in cache
4 target-fetch-policy: "-1 -1 -1 -1 -1"
5 access-control: 127.0.0.1 allow_snoop
9 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
12 SCENARIO_BEGIN Test TTL countdown on messages in the cache
18 MATCH opcode qtype qname
24 . IN NS K.ROOT-SERVERS.NET.
26 K.ROOT-SERVERS.NET. IN A 193.0.14.129
30 MATCH opcode subdomain
31 ADJUST copy_id copy_query
36 com. IN NS a.gtld-servers.net.
38 a.gtld-servers.net. IN A 192.5.6.30
42 MATCH opcode qtype qname
46 a.gtld-servers.net. IN A
48 a.gtld-servers.net. IN A 192.5.6.30
52 MATCH opcode qtype qname
56 K.ROOT-SERVERS.NET. IN A
58 K.ROOT-SERVERS.NET. IN A 193.0.14.129
62 MATCH opcode qtype qname
66 a.gtld-servers.net. IN AAAA
68 . 86400 IN SOA . . 20070304 28800 7200 604800 86400
72 MATCH opcode qtype qname
76 K.ROOT-SERVERS.NET. IN AAAA
78 . 86400 IN SOA . . 20070304 28800 7200 604800 86400
87 MATCH opcode qtype qname
93 com. IN NS a.gtld-servers.net.
95 a.gtld-servers.net. IN A 192.5.6.30
99 MATCH opcode subdomain
100 ADJUST copy_id copy_query
105 example.com. IN NS ns.example.com.
107 ns.example.com. IN A 1.2.3.4
111 MATCH opcode subdomain
112 ADJUST copy_id copy_query
117 foo.com. IN NS ns.foo.com.
118 ;foo.com. IN NS nx1.example.com.
120 ns.foo.com. IN A 1.2.5.6
129 MATCH opcode qtype qname
135 foo.com. IN NS ns.foo.com.
136 ;foo.com. IN NS nx1.example.com.
138 ns.foo.com. IN A 1.2.5.6
142 MATCH opcode qtype qname
148 ;www.foo.com. IN A 1.2.5.6
149 www.foo.com. IN CNAME nx1.example.com.
153 MATCH opcode qtype qname
159 ns.foo.com. IN A 1.2.5.6
163 MATCH opcode qtype qname
169 foo.com. IN SOA . . 1 2 3 4 3600
173 ; ns.example.com. --- serial=15
177 MATCH opcode qtype qname
183 example.com. IN NS ns.example.com.
185 ns.example.com. IN A 1.2.3.4
189 MATCH opcode qtype qname
195 ns.example.com. IN A 1.2.3.4
197 example.com. IN NS ns.example.com.
201 MATCH opcode qtype qname
205 www.example.com. IN A
207 www.example.com. IN A 10.20.30.40
209 example.com. IN NS ns.example.com.
211 ns.example.com. IN A 1.2.3.4
215 MATCH opcode qtype qname
219 ns.example.com. IN AAAA
221 example.com. 10 IN SOA . . 15 28800 7200 604800 10
225 MATCH opcode qtype qname
229 nx1.example.com. IN A
232 example.com. 10 IN SOA . . 15 28800 7200 604800 10
237 MATCH opcode qtype qname
241 nx2.example.com. IN A
244 example.com. 10 IN SOA . . 15 28800 7200 604800 10
250 ; ns.example.com. --- serial=17
254 MATCH opcode qtype qname
260 example.com. IN NS ns.example.com.
262 ns.example.com. IN A 1.2.3.4
266 MATCH opcode qtype qname
272 ns.example.com. IN A 1.2.3.4
274 example.com. IN NS ns.example.com.
278 MATCH opcode qtype qname
282 www.example.com. IN A
284 www.example.com. IN A 10.20.30.40
286 example.com. IN NS ns.example.com.
288 ns.example.com. IN A 1.2.3.4
292 MATCH opcode qtype qname
296 ns.example.com. IN AAAA
298 example.com. 10 IN SOA . . 17 28800 7200 604800 10
302 MATCH opcode qtype qname
306 nx1.example.com. IN A
309 example.com. 10 IN SOA . . 17 28800 7200 604800 10
314 MATCH opcode qtype qname
318 nx2.example.com. IN A
321 example.com. 10 IN SOA . . 17 28800 7200 604800 10
327 ; start by passing time ; so we are not at 0
328 STEP 1 TIME_PASSES ELAPSE 10
335 nx1.example.com. IN A
341 REPLY QR RD RA NXDOMAIN CD
343 nx1.example.com. IN A
346 example.com. 10 IN SOA . . 15 28800 7200 604800 10
351 STEP 20 TIME_PASSES ELAPSE 5
353 ; do a lookup for nx1.example.com just to check TTLs...
358 nx1.example.com. IN A
363 REPLY QR RD RA NXDOMAIN CD
365 nx1.example.com. IN A
368 example.com. 5 IN SOA . . 15 28800 7200 604800 10
372 ; cause a lookup that refreshes the TTL on the SOA record
377 nx2.example.com. IN A
382 REPLY QR RD RA NXDOMAIN
384 nx2.example.com. IN A
387 example.com. 10 IN SOA . . 17 28800 7200 604800 10
391 ; do a lookup for nx1.example.com to check TTLs updated
396 nx1.example.com. IN A
401 REPLY QR RD RA NXDOMAIN CD
403 nx1.example.com. IN A
406 example.com. 10 IN SOA . . 17 28800 7200 604800 10
410 ; cause a lookup for nx1.example.com bypassing the cache.
411 ; with bug; this causes msg ttl for nx1 to be time(NOW)+ttl.
413 ; visiable in debug log as "msg ttl is %d"
423 REPLY QR RD RA NXDOMAIN
427 ;www.foo.com IN A 1.2.5.6
428 www.foo.com IN CNAME nx1.example.com.
430 example.com. 10 IN SOA . . 17 28800 7200 604800 10
433 ; now cause lookup from cache by not passing CD flag
434 ; (validator has a look, and stores after iterator cache lookup).
439 nx1.example.com. IN A
444 REPLY QR RD RA NXDOMAIN
446 nx1.example.com. IN A
449 example.com. 10 IN SOA . . 17 28800 7200 604800 10
453 ; the message should timeout in 5 seconds, wait 7
454 STEP 50 TIME_PASSES ELAPSE 7
456 ; it is still there? (nonRD query)
461 nx1.example.com. IN A
464 ; this answer is the bug - NXDOMAIN too long in the cache.
465 ;STEP 56 CHECK_ANSWER
468 ;REPLY QR RA NXDOMAIN
470 ;nx1.example.com. IN A
473 ;example.com. 3 IN SOA . . 17 28800 7200 604800 10
477 ; Now the correct answer: no such cached query.
483 nx1.example.com. IN A
486 example.com. IN NS ns.example.com.
488 ns.example.com. IN A 1.2.3.4