1; config options
2server:
3	hide-identity: no
4	hide-version: no
5	identity: "test-identity"
6	version: "test-version"
7	rrset-roundrobin: no
8
9	; implicit transparent zone should not block id.server
10	local-data: "mydata.server. CH A 10.11.12.13"
11	local-data: "myd2.server. CH A 10.11.12.14"
12	local-data: 'myd3.server. CH TXT "a text record"'
13	; together implicit CH top domain .server is created transparent.
14
15	; static zone
16	local-zone: "local" static
17	local-data: "local SOA nobody nobody 1 2 3 4 5"
18	local-data: "serv.local. A 20.30.40.50"
19	; multiple RRs in this RRset.
20	local-data: "bla.bla.local. A 20.30.40.51"
21	local-data: "bla.bla.local. A 20.30.40.52"
22	local-data: "bla.bla.local. A 20.30.40.53"
23	
24	; static zone (no soa)
25	local-zone: "noso.local" static
26	local-data: "bla.bla.noso.local AAAA 2001::2"
27
28	; deny zone (no answer)
29	local-zone: "deny.top." deny
30	
31	; refuse zone (error)
32	local-zone: "refuse.top." refuse
33
34	; redirect zone
35	local-zone: "redirect.top." redirect
36	local-data: "redirect.top. A 20.30.40.54"
37
38	; null zone
39	local-zone: "null.top." always_null
40
41	; create implicit data in the IN domain as well
42	local-data: "a.a.implicit. A 20.30.41.50"
43	local-data: "b.a.implicit. A 20.30.42.50"
44	local-data: "b.b.implicit. A 20.30.43.50"
45	local-data: "b.c.implicit. A 20.30.45.50"
46	local-data: "c.c.implicit. A 20.30.44.50"
47
48        ; create implicit data in the ANY domain
49        ; this should inherit the local_zone_type of the already configured
50        ; zone 'refuse.top.' and not be transparent
51        local-data: "refuse.top. ANY TXT implicit_non_transparent"
52
53stub-zone:
54        name: "refuse.top"
55        stub-addr: 1.2.3.4
56
57CONFIG_END
58SCENARIO_BEGIN Test local data queries
59
60RANGE_BEGIN 0 100
61	ADDRESS 1.2.3.4
62; This entry should never be queried
63ENTRY_BEGIN
64MATCH opcode qtype qname
65ADJUST copy_id
66REPLY QR NOERROR
67SECTION QUESTION
68www.refuse.top. IN A
69SECTION ANSWER
70www.refuse.top. IN A 5.5.5.5
71ENTRY_END
72RANGE_END
73
74; id.server.
75STEP 1 QUERY
76ENTRY_BEGIN
77SECTION QUESTION
78id.server. CH TXT
79ENTRY_END
80STEP 2 CHECK_ANSWER
81ENTRY_BEGIN
82MATCH all
83REPLY QR RA
84SECTION QUESTION
85id.server. CH TXT
86SECTION ANSWER
87id.server. 0 CH TXT	"test-identity"
88ENTRY_END
89
90; mydata.server.
91STEP 3 QUERY
92ENTRY_BEGIN
93SECTION QUESTION
94mydata.server. CH A
95ENTRY_END
96STEP 4 CHECK_ANSWER
97ENTRY_BEGIN
98MATCH all
99REPLY QR RA AA
100SECTION QUESTION
101mydata.server. CH A
102SECTION ANSWER
103mydata.server. 3600 CH A 10.11.12.13
104ENTRY_END
105
106; nodata with SOA
107STEP 5 QUERY
108ENTRY_BEGIN
109SECTION QUESTION
110local. IN A
111ENTRY_END
112STEP 6 CHECK_ANSWER
113ENTRY_BEGIN
114MATCH all ttl
115REPLY QR RA AA
116SECTION QUESTION
117local. IN A
118SECTION AUTHORITY
119local. 5 IN SOA nobody nobody 1 2 3 4 5
120ENTRY_END
121
122; positive SOA
123STEP 7 QUERY
124ENTRY_BEGIN
125SECTION QUESTION
126local. IN SOA
127ENTRY_END
128STEP 8 CHECK_ANSWER
129ENTRY_BEGIN
130MATCH all ttl
131REPLY QR RA AA
132SECTION QUESTION
133local. IN SOA
134SECTION ANSWER
135local. 3600 IN SOA nobody nobody 1 2 3 4 5
136ENTRY_END
137
138; positive subdomain
139STEP 9 QUERY
140ENTRY_BEGIN
141SECTION QUESTION
142serv.local. IN A
143ENTRY_END
144STEP 10 CHECK_ANSWER
145ENTRY_BEGIN
146MATCH all
147REPLY QR RA AA
148SECTION QUESTION
149serv.local. IN A
150SECTION ANSWER
151serv.local. IN A 20.30.40.50
152ENTRY_END
153
154; no such type
155STEP 11 QUERY
156ENTRY_BEGIN
157SECTION QUESTION
158serv.local. IN MX
159ENTRY_END
160STEP 12 CHECK_ANSWER
161ENTRY_BEGIN
162MATCH all ttl
163REPLY QR RA AA
164SECTION QUESTION
165serv.local. IN MX
166SECTION AUTHORITY
167local. 5 IN SOA nobody nobody 1 2 3 4 5
168ENTRY_END
169
170; no such type, empty nonterminal
171STEP 13 QUERY
172ENTRY_BEGIN
173SECTION QUESTION
174bla.local. IN MX
175ENTRY_END
176STEP 14 CHECK_ANSWER
177ENTRY_BEGIN
178MATCH all ttl
179REPLY QR RA AA
180SECTION QUESTION
181bla.local. IN MX
182SECTION AUTHORITY
183local. 5 IN SOA nobody nobody 1 2 3 4 5
184ENTRY_END
185
186; nxdomain with SOA
187STEP 15 QUERY
188ENTRY_BEGIN
189SECTION QUESTION
190doing.local. IN MX
191ENTRY_END
192STEP 16 CHECK_ANSWER
193ENTRY_BEGIN
194MATCH all ttl
195REPLY QR RA AA NXDOMAIN
196SECTION QUESTION
197doing.local. IN MX
198SECTION AUTHORITY
199local. 5 IN SOA nobody nobody 1 2 3 4 5
200ENTRY_END
201
202; nxdomain without SOA
203STEP 17 QUERY
204ENTRY_BEGIN
205SECTION QUESTION
206doing.noso.local. IN MX
207ENTRY_END
208STEP 18 CHECK_ANSWER
209ENTRY_BEGIN
210MATCH all
211REPLY QR RA AA NXDOMAIN
212SECTION QUESTION
213doing.noso.local. IN MX
214ENTRY_END
215
216; positive multiple RR
217STEP 19 QUERY
218ENTRY_BEGIN
219SECTION QUESTION
220bla.bla.local. IN A
221ENTRY_END
222STEP 20 CHECK_ANSWER
223ENTRY_BEGIN
224MATCH all
225REPLY QR RA AA
226SECTION QUESTION
227bla.bla.local. IN A
228SECTION ANSWER
229bla.bla.local. IN A 20.30.40.51
230bla.bla.local. IN A 20.30.40.52
231bla.bla.local. IN A 20.30.40.53
232ENTRY_END
233
234; second implicit transparent zone.
235STEP 21 QUERY
236ENTRY_BEGIN
237SECTION QUESTION
238b.b.implicit. IN A
239ENTRY_END
240STEP 22 CHECK_ANSWER
241ENTRY_BEGIN
242MATCH all
243REPLY QR RA AA
244SECTION QUESTION
245b.b.implicit. IN A
246SECTION ANSWER
247b.b.implicit. 3600 IN A 20.30.43.50
248ENTRY_END
249
250; localhost A default
251STEP 30 QUERY
252ENTRY_BEGIN
253SECTION QUESTION
254localhost. IN A
255ENTRY_END
256STEP 31 CHECK_ANSWER
257ENTRY_BEGIN
258MATCH all
259REPLY QR RA AA
260SECTION QUESTION
261localhost. IN A
262SECTION ANSWER
263localhost. 10800 IN A 127.0.0.1
264ENTRY_END
265
266; localhost AAAA default
267STEP 32 QUERY
268ENTRY_BEGIN
269SECTION QUESTION
270localhost. IN AAAA
271ENTRY_END
272STEP 33 CHECK_ANSWER
273ENTRY_BEGIN
274MATCH all
275REPLY QR RA AA
276SECTION QUESTION
277localhost. IN AAAA
278SECTION ANSWER
279localhost. 10800 IN AAAA ::1
280ENTRY_END
281
282; localhost A reverse default
283STEP 34 QUERY
284ENTRY_BEGIN
285SECTION QUESTION
2861.0.0.127.in-addr.arpa. IN PTR
287ENTRY_END
288STEP 35 CHECK_ANSWER
289ENTRY_BEGIN
290MATCH all
291REPLY QR RA AA
292SECTION QUESTION
2931.0.0.127.in-addr.arpa. IN PTR
294SECTION ANSWER
2951.0.0.127.in-addr.arpa. 10800 IN PTR localhost.
296ENTRY_END
297
298; localhost AAAA reverse default
299STEP 36 QUERY
300ENTRY_BEGIN
301SECTION QUESTION
3021.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN PTR
303ENTRY_END
304STEP 37 CHECK_ANSWER
305ENTRY_BEGIN
306MATCH all
307REPLY QR RA AA
308SECTION QUESTION
3091.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN PTR
310SECTION ANSWER
3111.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 10800 IN PTR localhost.
312ENTRY_END
313
314; blocked AS112 reverse default
315STEP 38 QUERY
316ENTRY_BEGIN
317SECTION QUESTION
3181.0.0.10.in-addr.arpa. IN PTR
319ENTRY_END
320STEP 39 CHECK_ANSWER
321ENTRY_BEGIN
322MATCH all
323REPLY QR RA AA NXDOMAIN
324SECTION QUESTION
3251.0.0.10.in-addr.arpa. IN PTR
326SECTION AUTHORITY
32710.in-addr.arpa. 10800 IN SOA localhost. nobody.invalid. 1 3600 1200 604800 10800
328ENTRY_END
329
330; refuse zone
331STEP 40 QUERY
332ENTRY_BEGIN
333SECTION QUESTION
334www.refuse.top. IN A
335ENTRY_END
336STEP 41 CHECK_ANSWER
337ENTRY_BEGIN
338MATCH all
339REPLY QR RA AA REFUSED
340SECTION QUESTION
341www.refuse.top. IN A
342ENTRY_END
343
344; deny zone
345STEP 42 QUERY
346ENTRY_BEGIN
347SECTION QUESTION
348www.deny.top. IN A
349ENTRY_END
350; no answer is checked at exit of testbound.
351
352; redirect zone apex
353STEP 50 QUERY
354ENTRY_BEGIN
355SECTION QUESTION
356redirect.top. IN A
357ENTRY_END
358STEP 51 CHECK_ANSWER
359ENTRY_BEGIN
360MATCH all
361REPLY QR RA AA NOERROR
362SECTION QUESTION
363redirect.top. IN A
364SECTION ANSWER
365redirect.top. IN A 20.30.40.54
366ENTRY_END
367
368; redirect zone
369STEP 52 QUERY
370ENTRY_BEGIN
371SECTION QUESTION
372www.redirect.top. IN A
373ENTRY_END
374STEP 53 CHECK_ANSWER
375ENTRY_BEGIN
376MATCH all
377REPLY QR RA AA NOERROR
378SECTION QUESTION
379www.redirect.top. IN A
380SECTION ANSWER
381www.redirect.top. IN A 20.30.40.54
382ENTRY_END
383
384; always_null zone
385STEP 60 QUERY
386ENTRY_BEGIN
387SECTION QUESTION
388null.top. IN A
389ENTRY_END
390STEP 61 CHECK_ANSWER
391ENTRY_BEGIN
392MATCH all
393REPLY QR RA AA NOERROR
394SECTION QUESTION
395null.top. IN A
396SECTION ANSWER
397null.top. IN A 0.0.0.0
398ENTRY_END
399
400; always_null zone AAAA
401STEP 62 QUERY
402ENTRY_BEGIN
403SECTION QUESTION
404foo.null.top. IN AAAA
405ENTRY_END
406STEP 63 CHECK_ANSWER
407ENTRY_BEGIN
408MATCH all
409REPLY QR RA AA NOERROR
410SECTION QUESTION
411foo.null.top. IN AAAA
412SECTION ANSWER
413foo.null.top. IN AAAA ::0
414ENTRY_END
415
416; refuse zone for implicit local-data with CLASS != IN
417STEP 64 QUERY
418ENTRY_BEGIN
419SECTION QUESTION
420refuse.top. ANY TXT
421ENTRY_END
422STEP 65 CHECK_ANSWER
423ENTRY_BEGIN
424MATCH all
425REPLY QR RA AA NOERROR
426SECTION QUESTION
427refuse.top. ANY TXT
428SECTION ANSWER
429refuse.top. ANY TXT implicit_non_transparent
430ENTRY_END
431
432; refuse zone for implicit local-data with CLASS != IN
433STEP 66 QUERY
434ENTRY_BEGIN
435REPLY RD
436SECTION QUESTION
437www.refuse.top. ANY A
438ENTRY_END
439STEP 67 CHECK_ANSWER
440ENTRY_BEGIN
441MATCH all
442REPLY QR RA RD AA REFUSED
443SECTION QUESTION
444www.refuse.top. ANY A
445ENTRY_END
446
447SCENARIO_END
448