xref: /freebsd/contrib/unbound/testdata/cachedb_val_expired.crpl (revision 60d717baf2144cf344ec9b47d715ce837b5d46d4)
1; config options
2server:
3	target-fetch-policy: "0 0 0 0 0"
4	qname-minimisation: no
5	minimal-responses: yes
6	serve-expired: yes
7	;module-config: "subnetcache validator cachedb iterator"
8	module-config: "validator 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, validator 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.
140; The expired reply, from cachedb, needs a validation status,
141; because the validator module set that validation is needed.
142STEP 50 QUERY
143ENTRY_BEGIN
144REPLY RD
145SECTION QUESTION
146www2.example.com. IN A
147ENTRY_END
148
149STEP 60 CHECK_ANSWER
150ENTRY_BEGIN
151MATCH all ttl
152REPLY QR RD RA NOERROR
153SECTION QUESTION
154www2.example.com. IN A
155SECTION ANSWER
156www2.example.com. 30 IN A 1.2.3.5
157ENTRY_END
158
159; cache is expired, cachedb has no answer
160STEP 70 QUERY
161ENTRY_BEGIN
162REPLY RD
163SECTION QUESTION
164www.example.com. IN A
165ENTRY_END
166
167STEP 80 CHECK_ANSWER
168ENTRY_BEGIN
169MATCH all ttl
170REPLY QR RD RA NOERROR
171SECTION QUESTION
172www.example.com. IN A
173SECTION ANSWER
174www.example.com. 30 IN A 1.2.3.4
175ENTRY_END
176
177STEP 90 TRAFFIC
178; the entry should be refreshed in cache now.
179; cache is valid and cachedb is valid.
180STEP 100 QUERY
181ENTRY_BEGIN
182REPLY RD
183SECTION QUESTION
184www.example.com. IN A
185ENTRY_END
186
187STEP 110 CHECK_ANSWER
188ENTRY_BEGIN
189MATCH all ttl
190REPLY QR RD RA NOERROR
191SECTION QUESTION
192www.example.com. IN A
193SECTION ANSWER
194www.example.com. 10 IN A 1.2.3.4
195ENTRY_END
196
197; flush the entry from cache
198STEP 120 FLUSH_MESSAGE www.example.com. IN A
199
200; cache has no answer, cachedb valid
201STEP 130 QUERY
202ENTRY_BEGIN
203REPLY RD
204SECTION QUESTION
205www.example.com. IN A
206ENTRY_END
207
208STEP 140 CHECK_ANSWER
209ENTRY_BEGIN
210MATCH all ttl
211REPLY QR RD RA NOERROR
212SECTION QUESTION
213www.example.com. IN A
214SECTION ANSWER
215www.example.com. 10 IN A 1.2.3.4
216ENTRY_END
217
218; it is now expired
219STEP 150 TIME_PASSES ELAPSE 20
220; flush the entry from cache
221STEP 160 FLUSH_MESSAGE www.example.com. IN A
222
223; cache has no answer, cachedb is expired
224STEP 170 QUERY
225ENTRY_BEGIN
226REPLY RD
227SECTION QUESTION
228www.example.com. IN A
229ENTRY_END
230
231STEP 180 CHECK_ANSWER
232ENTRY_BEGIN
233MATCH all ttl
234REPLY QR RD RA NOERROR
235SECTION QUESTION
236www.example.com. IN A
237SECTION ANSWER
238www.example.com. 30 IN A 1.2.3.4
239ENTRY_END
240
241STEP 190 TRAFFIC
242; the expired message is updated.
243
244; cache is valid, cachedb is valid
245STEP 200 QUERY
246ENTRY_BEGIN
247REPLY RD
248SECTION QUESTION
249www.example.com. IN A
250ENTRY_END
251
252STEP 210 CHECK_ANSWER
253ENTRY_BEGIN
254MATCH all ttl
255REPLY QR RD RA NOERROR
256SECTION QUESTION
257www.example.com. IN A
258SECTION ANSWER
259www.example.com. 10 IN A 1.2.3.4
260ENTRY_END
261
262; expire the entry in cache
263STEP 220 EXPIRE_MESSAGE www.example.com. IN A
264
265; cache is expired, cachedb valid
266STEP 230 QUERY
267ENTRY_BEGIN
268REPLY RD
269SECTION QUESTION
270www.example.com. IN A
271ENTRY_END
272
273STEP 240 CHECK_ANSWER
274ENTRY_BEGIN
275MATCH all ttl
276REPLY QR RD RA NOERROR
277SECTION QUESTION
278www.example.com. IN A
279SECTION ANSWER
280www.example.com. 10 IN A 1.2.3.4
281ENTRY_END
282
283; it is now expired
284STEP 250 TIME_PASSES ELAPSE 20
285; expire the entry in cache
286STEP 260 EXPIRE_MESSAGE www.example.com. IN A
287
288; cache is expired, cachedb is expired
289STEP 270 QUERY
290ENTRY_BEGIN
291REPLY RD
292SECTION QUESTION
293www.example.com. IN A
294ENTRY_END
295
296STEP 280 CHECK_ANSWER
297ENTRY_BEGIN
298MATCH all ttl
299REPLY QR RD RA NOERROR
300SECTION QUESTION
301www.example.com. IN A
302SECTION ANSWER
303www.example.com. 30 IN A 1.2.3.4
304ENTRY_END
305
306STEP 290 TRAFFIC
307; the expired message is updated.
308
309; cache is valid, cachedb is valid
310STEP 300 QUERY
311ENTRY_BEGIN
312REPLY RD
313SECTION QUESTION
314www.example.com. IN A
315ENTRY_END
316
317STEP 310 CHECK_ANSWER
318ENTRY_BEGIN
319MATCH all ttl
320REPLY QR RD RA NOERROR
321SECTION QUESTION
322www.example.com. IN A
323SECTION ANSWER
324www.example.com. 10 IN A 1.2.3.4
325ENTRY_END
326
327SCENARIO_END
328