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