]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - testdata/local_cname.rpl
Vendor import of Unbound 1.6.3.
[FreeBSD/FreeBSD.git] / testdata / local_cname.rpl
1 ; config options
2 server:
3         # put unbound.conf config options here.
4
5         access-control: 127.0.0.1/32 allow_snoop #allow queries with RD bit
6
7         # DNSSEC trust anchor taken from a real world example.  Used for
8         # DNSSEC-signed CNAME target.
9         trust-anchor: "infoblox.com. 172800 IN DNSKEY 257 3 5 AwEAAerW6xQkJIb5wxm48RoHD/LE8r/GzmdIGOam0lQczIth+I9ctltV dDJXz5BH8j4TOaOH1gBRCXhsPDyPom/eLEkdUuXNuhV6QnWGHOtz1fuY EO+kBqaI79jR0K31OmevR/H/F3C8gi4T6//6G9qsftvcl6m7+V1vI2+c cgxiiOlMrZZb4YAhue1+tRw57f3aVOSNtcrONO/Jffgb9jbDTKRi33oT fDznyPa1lCWMbuybr/LaCU0LP6fG4BII/FDWFi5rQxMHygWfscdYX06c eGUzHqiuNNGL8Jze6johni71T/hJGtLMozkY7qxOLfWBXOu9kr1MBQh5 6hfibOZMZJM="
10         # Use a fixed and faked date for DNSSEC validation to avoid run-time
11         # re-signing test signatures.
12         val-override-date: "20161001003725"
13
14         define-tag: "cname cname2 nx servfail sec ambiguous"
15         access-control-tag: 127.0.0.1/32 "cname cname2 nx servfail sec"
16
17         # Basic case: one CNAME whose target exists.
18         local-zone: example.com static
19         local-zone-tag: example.com "cname"
20         access-control-tag: 127.0.0.1/32 "cname"
21         access-control-tag-action: 127.0.0.1/32 "cname" redirect
22         access-control-tag-data: 127.0.0.1/32 "cname" "CNAME example.org."
23
24         # Similar to the above, but different original query name.
25         local-zone: another.example.com static
26         local-zone-tag: another.example.com "cname2"
27         access-control-tag: 127.0.0.1/32 "cname2"
28         access-control-tag-action: 127.0.0.1/32 "cname2" redirect
29         access-control-tag-data: 127.0.0.1/32 "cname2" "CNAME example.org."
30
31         # CNAME target is expected to be nonexistent.
32         local-zone: nx.example.com static
33         local-zone-tag: nx.example.com "nx"
34         access-control-tag: 127.0.0.1/32 "nx"
35         access-control-tag-action: 127.0.0.1/32 "nx" redirect
36         access-control-tag-data: 127.0.0.1/32 "nx" "CNAME nx.example.org."
37
38         # Resolution of this CNAME target will result in SERVFAIL.
39         local-zone: servfail.example.com static
40         local-zone-tag: servfail.example.com "servfail"
41         access-control-tag-action: 127.0.0.1/32 "servfail" redirect
42         access-control-tag-data: 127.0.0.1/32 "servfail" "CNAME servfail.example.org."
43
44         # CNAME target is supposed to be DNSSEC-signed.
45         local-zone: sec.example.com static
46         local-zone-tag: sec.example.com "sec"
47         access-control-tag-action: 127.0.0.1/32 "sec" redirect
48         access-control-tag-data: 127.0.0.1/32 "sec" "CNAME www.infoblox.com."
49
50         # Test setup for non-tag based redirect
51         local-zone: example.net redirect
52         local-data: "example.net. IN CNAME cname.example.org."
53
54         ### template zone and tag intended to be used for tests with CNAME and
55         ### other data.
56         ##local-zone: ambiguous.example.com redirect
57         ##@LOCALDATA1@
58         ##@LOCALDATA2@
59         ##local-zone-tag: ambiguous.example.com "ambiguous"
60         ##access-control-tag-action: 127.0.0.1/32 "ambiguous" redirect
61         ##@TAGDATA1@
62         ##@TAGDATA2@
63
64
65
66         target-fetch-policy: "0 0 0 0 0"
67
68 # send the queries to the test server (see the 10.0.10.3 entries below)
69 forward-zone:
70         name: "."
71         forward-addr: 10.0.10.3
72 CONFIG_END
73
74 ; short one-line description of scenario:
75 SCENARIO_BEGIN Test local-data CNAME aliases
76
77 ; Specification of the answers that the upstream server provides to unbound
78 RANGE_BEGIN 0 1000
79         ADDRESS 10.0.10.3
80 ; put entries here with answers to specific qname, qtype
81
82 ; infoblox.com
83 ENTRY_BEGIN
84 MATCH opcode qtype qname
85 ADJUST copy_id
86 REPLY QR NOERROR
87 SECTION QUESTION
88 infoblox.com. IN DNSKEY
89 SECTION ANSWER
90 infoblox.com. 172800 IN DNSKEY 256 3 5 AwEAAbi2VnVHFm5rO2EiawNWhTTRPPzaA+VEdpGOc+CtwIZq86C4Ndbp 0M7XTi0wru0Pgh54oGZ3ty9WllYEnVfoA1rcGwFJmAln7KKAuQP+dlGE yHPJYduAjG/JFA6Qq0zj18AmWgks+qvethASMm3PtihQkNytjmQWjiL6 6h8cQwFP
91 infoblox.com. 172800 IN DNSKEY 257 3 5 AwEAAerW6xQkJIb5wxm48RoHD/LE8r/GzmdIGOam0lQczIth+I9ctltV dDJXz5BH8j4TOaOH1gBRCXhsPDyPom/eLEkdUuXNuhV6QnWGHOtz1fuY EO+kBqaI79jR0K31OmevR/H/F3C8gi4T6//6G9qsftvcl6m7+V1vI2+c cgxiiOlMrZZb4YAhue1+tRw57f3aVOSNtcrONO/Jffgb9jbDTKRi33oT fDznyPa1lCWMbuybr/LaCU0LP6fG4BII/FDWFi5rQxMHygWfscdYX06c eGUzHqiuNNGL8Jze6johni71T/hJGtLMozkY7qxOLfWBXOu9kr1MBQh5 6hfibOZMZJM=
92 infoblox.com. 172800 IN RRSIG DNSKEY 5 2 172800 20161004003725 20160930000830 31651 infoblox.com. Ds7LZY2W59fq9cWgqi3W6so1NGFa7JdjO8zlhK3hGu2a2WG1W/rVftom rCf0gdI5q4BZJnq2o0SdLd/U7he1uWz8ATntEETiNs9/8G7myNK17wQu AN/+3gol+qT4DX0CA3Boz7Z+xFQbTwnnJJvGASa/1jPMIYU8DiyNx3Pe SSh9lbyU/4YI0mshn5ZC2HCFChxr+aVJxk4UHjaPfHhWwVu9oM4IbEfn KD9x4ltKjjy0pXMYqVlNs9+tG2nXdwr/6Q4G+yfRBAcW+cWeW5w4igxf xYFq4Y5gkZetGOReoNODZ9YC9WvcxBo+qY/iUN2k+lEFq+oL8+DthAGH uA1krw==
93 SECTION AUTHORITY
94 SECTION ADDITIONAL
95 ENTRY_END
96
97 ENTRY_BEGIN
98 MATCH opcode qtype qname
99 ADJUST copy_id
100 REPLY QR NOERROR
101 SECTION QUESTION
102 www.infoblox.com. IN A
103 SECTION ANSWER
104 www.infoblox.com. 3600 IN A 161.47.10.70
105 www.infoblox.com. 3600 IN RRSIG A 5 3 3600 20161003223322 20160929221122 14916 infoblox.com. WbO9ydRAoRTPvdK18atTdLEkkMGoOjuwbcb6vVI0d6Sea3xkcBMNmtst Wdzr+pKEJqO2bfm167X6uhcOHanHZRnirlTnEbuTdsP0HCiIEGQD5iHg UNH2FJSKGNYBmgZKJpuLhDca7oqtkl8EyGA+UEt6Rtq6aW8V0wpkhPHi Pug='
106 SECTION AUTHORITY
107 SECTION ADDITIONAL
108 ENTRY_END
109
110 ; example.org
111 ENTRY_BEGIN
112 MATCH opcode qtype qname
113 ADJUST copy_id
114 REPLY QR NOERROR
115 SECTION QUESTION
116 example.org. IN A
117 SECTION ANSWER
118 example.org. IN A 192.0.2.1
119 SECTION AUTHORITY
120 SECTION ADDITIONAL
121 ENTRY_END
122
123 ENTRY_BEGIN
124 MATCH opcode qtype qname
125 ADJUST copy_id
126 REPLY QR NOERROR
127 SECTION QUESTION
128 cname.example.org. IN A
129 SECTION ANSWER
130 cname.example.org. IN A 192.0.2.2
131 SECTION AUTHORITY
132 SECTION ADDITIONAL
133 ENTRY_END
134
135 ENTRY_BEGIN
136 MATCH opcode qtype qname
137 ADJUST copy_id
138 REPLY QR NOERROR
139 SECTION QUESTION
140 example.org. IN AAAA
141 SECTION ANSWER
142 SECTION AUTHORITY
143 example.org. IN SOA ns.example.org. hostmaster.example.org. 2016101900 28800 7200 604800 3600
144 SECTION ADDITIONAL
145 ENTRY_END
146
147 ENTRY_BEGIN
148 MATCH opcode qtype qname
149 ADJUST copy_id
150 REPLY QR NXDOMAIN
151 SECTION QUESTION
152 nx.example.org. IN A
153 SECTION ANSWER
154 SECTION AUTHORITY
155 example.org. IN SOA ns.example.org. hostmaster.example.org. 2016101900 28800 7200 604800 3600
156 SECTION ADDITIONAL
157 ENTRY_END
158
159 ; for norec query
160 ENTRY_BEGIN
161 MATCH opcode qtype qname
162 ADJUST copy_id
163 REPLY QR NOERROR
164 SECTION QUESTION
165 example.org. IN NS
166 SECTION ANSWER
167 example.org. IN NS ns.example.
168 SECTION AUTHORITY
169 SECTION ADDITIONAL
170 ENTRY_END
171
172 ENTRY_BEGIN
173 MATCH opcode qtype qname
174 ADJUST copy_id
175 REPLY QR SERVFAIL
176 SECTION QUESTION
177 servfail.example.org. IN A
178 SECTION ANSWER
179 SECTION AUTHORITY
180 SECTION ADDITIONAL
181 ENTRY_END
182
183 ; end of entries with answers from upstream server
184 RANGE_END
185 ; Steps where queries are sent, one at a time, to unbound.
186 ; QUERY is what the downstream client sends to unbound.
187 ; CHECK_ANSWER contains the response from unbound.
188
189
190 ; Basic case: both exact and subdomain matches result in the same CNAME
191 STEP 10 QUERY
192 ENTRY_BEGIN
193 REPLY RD
194 SECTION QUESTION
195 example.com. IN CNAME
196 ENTRY_END
197
198 ; For type-CNAME queries, the CNAME itself will be returned
199 STEP 20 CHECK_ANSWER
200 ENTRY_BEGIN
201 MATCH all
202 REPLY QR RD RA AA NOERROR
203 SECTION QUESTION
204 example.com. IN CNAME
205 SECTION ANSWER
206 example.com. IN CNAME example.org.
207 SECTION AUTHORITY
208 SECTION ADDITIONAL
209 ENTRY_END
210
211 STEP 30 QUERY
212 ENTRY_BEGIN
213 REPLY RD
214 SECTION QUESTION
215 alias.example.com. IN CNAME
216 ENTRY_END
217
218 ; For type-CNAME queries, the CNAME itself will be returned
219 STEP 40 CHECK_ANSWER
220 ENTRY_BEGIN
221 MATCH all
222 REPLY QR RD RA AA NOERROR
223 SECTION QUESTION
224 alias.example.com. IN CNAME
225 SECTION ANSWER
226 alias.example.com. IN CNAME example.org.
227 SECTION AUTHORITY
228 SECTION ADDITIONAL
229 ENTRY_END
230
231 ; Basic case: both exact and subdomain matches result in the same CNAME
232 ; For other types, a complete CNAME chain will have to be returned
233 STEP 50 QUERY
234 ENTRY_BEGIN
235 REPLY RD
236 SECTION QUESTION
237 example.com. IN A
238 ENTRY_END
239
240 STEP 60 CHECK_ANSWER
241 ENTRY_BEGIN
242 MATCH all
243 REPLY QR RD RA AA NOERROR
244 SECTION QUESTION
245 example.com. IN A
246 SECTION ANSWER
247 example.com. IN CNAME example.org.
248 example.org. IN A 192.0.2.1
249 SECTION AUTHORITY
250 SECTION ADDITIONAL
251 ENTRY_END
252
253 STEP 70 QUERY
254 ENTRY_BEGIN
255 REPLY RD
256 SECTION QUESTION
257 alias.example.com. IN A
258 ENTRY_END
259
260 STEP 80 CHECK_ANSWER
261 ENTRY_BEGIN
262 MATCH all
263 REPLY QR RD RA AA NOERROR
264 SECTION QUESTION
265 alias.example.com. IN A
266 SECTION ANSWER
267 alias.example.com. IN CNAME example.org.
268 example.org. IN A 192.0.2.1
269 SECTION AUTHORITY
270 SECTION ADDITIONAL
271 ENTRY_END
272
273 ; Basic case: both exact and subdomain matches result in the same CNAME.
274 ; The result is the same for non-recursive query as long as a
275 ; complete chain is cached.
276 STEP 90 QUERY
277 ENTRY_BEGIN
278 REPLY 
279 SECTION QUESTION
280 example.com. IN A
281 ENTRY_END
282
283 STEP 100 CHECK_ANSWER
284 ENTRY_BEGIN
285 MATCH all
286 REPLY QR RA AA NOERROR
287 SECTION QUESTION
288 example.com. IN A
289 SECTION ANSWER
290 example.com. IN CNAME example.org.
291 example.org. IN A 192.0.2.1
292 SECTION AUTHORITY
293 SECTION ADDITIONAL
294 ENTRY_END
295
296 STEP 110 QUERY
297 ENTRY_BEGIN
298 REPLY 
299 SECTION QUESTION
300 alias.example.com. IN A
301 ENTRY_END
302
303 STEP 120 CHECK_ANSWER
304 ENTRY_BEGIN
305 MATCH all
306 REPLY QR RA AA NOERROR
307 SECTION QUESTION
308 alias.example.com. IN A
309 SECTION ANSWER
310 alias.example.com. IN CNAME example.org.
311 example.org. IN A 192.0.2.1
312 SECTION AUTHORITY
313 SECTION ADDITIONAL
314 ENTRY_END
315
316 ; Similar to the above, but these are local-zone redirect, instead of
317 ; tag-based policies.
318 STEP 130 QUERY
319 ENTRY_BEGIN
320 REPLY RD
321 SECTION QUESTION
322 example.net. IN CNAME
323 ENTRY_END
324
325 ; For type-CNAME queries, the CNAME itself will be returned
326 STEP 140 CHECK_ANSWER
327 ENTRY_BEGIN
328 MATCH all
329 REPLY QR RD RA AA NOERROR
330 SECTION QUESTION
331 example.net. IN CNAME
332 SECTION ANSWER
333 example.net. IN CNAME cname.example.org.
334 SECTION AUTHORITY
335 SECTION ADDITIONAL
336 ENTRY_END
337
338 STEP 150 QUERY
339 ENTRY_BEGIN
340 REPLY RD
341 SECTION QUESTION
342 alias.example.net. IN CNAME
343 ENTRY_END
344
345 ; For type-CNAME queries, the CNAME itself will be returned
346 STEP 160 CHECK_ANSWER
347 ENTRY_BEGIN
348 MATCH all
349 REPLY QR RD RA AA NOERROR
350 SECTION QUESTION
351 alias.example.net. IN CNAME
352 SECTION ANSWER
353 alias.example.net. IN CNAME cname.example.org.
354 SECTION AUTHORITY
355 SECTION ADDITIONAL
356 ENTRY_END
357
358 STEP 170 QUERY
359 ENTRY_BEGIN
360 REPLY RD
361 SECTION QUESTION
362 example.net. IN A
363 ENTRY_END
364
365 STEP 180 CHECK_ANSWER
366 ENTRY_BEGIN
367 MATCH all
368 REPLY QR RD RA AA NOERROR
369 SECTION QUESTION
370 example.net. IN A
371 SECTION ANSWER
372 example.net. IN CNAME cname.example.org.
373 cname.example.org. IN A 192.0.2.2
374 SECTION AUTHORITY
375 SECTION ADDITIONAL
376 ENTRY_END
377
378 STEP 190 QUERY
379 ENTRY_BEGIN
380 REPLY RD
381 SECTION QUESTION
382 alias.example.net. IN A
383 ENTRY_END
384
385 STEP 200 CHECK_ANSWER
386 ENTRY_BEGIN
387 MATCH all
388 REPLY QR RD RA AA NOERROR
389 SECTION QUESTION
390 alias.example.net. IN A
391 SECTION ANSWER
392 alias.example.net. IN CNAME cname.example.org.
393 cname.example.org. IN A 192.0.2.2
394 SECTION AUTHORITY
395 SECTION ADDITIONAL
396 ENTRY_END
397
398
399 ; Relatively minor cases follow
400
401 ; query type doesn't exist for the CNAME target.  The original query
402 ; succeeds with an "incomplete" chain only containing the CNAME.
403 STEP 210 QUERY
404 ENTRY_BEGIN
405 REPLY RD
406 SECTION QUESTION
407 example.com. IN AAAA
408 ENTRY_END
409
410 STEP 220 CHECK_ANSWER
411 ENTRY_BEGIN
412 MATCH all
413 REPLY QR RD RA AA NOERROR
414 SECTION QUESTION
415 example.com. IN AAAA
416 SECTION ANSWER
417 example.com. IN CNAME example.org.
418 SECTION AUTHORITY
419 example.org.    3600    IN      SOA     ns.example.org. hostmaster.example.org. 2016101900 28800 7200 604800 3600
420 SECTION ADDITIONAL
421 ENTRY_END
422
423 ; The CNAME target name doesn't exist.  NXDOMAIN with the CNAME will
424 ; be returned.
425 STEP 230 QUERY
426 ENTRY_BEGIN
427 REPLY RD
428 SECTION QUESTION
429 nx.example.com. IN A
430 ENTRY_END
431
432 STEP 240 CHECK_ANSWER
433 ENTRY_BEGIN
434 MATCH all
435 REPLY QR RD RA AA NXDOMAIN
436 SECTION QUESTION
437 nx.example.com. IN A
438 SECTION ANSWER
439 nx.example.com. IN CNAME nx.example.org.
440 SECTION AUTHORITY
441 example.org.    3600    IN      SOA     ns.example.org. hostmaster.example.org. 2016101900 28800 7200 604800 3600
442 SECTION ADDITIONAL
443 ENTRY_END
444
445 ; Resolution for the CNAME target will result in SERVFAIL.  It will
446 ; be forwarded to the original query.  The answer section should be
447 ; empty.
448 STEP 250 QUERY
449 ENTRY_BEGIN
450 REPLY RD
451 SECTION QUESTION
452 servfail.example.com. IN A
453 ENTRY_END
454
455 STEP 260 CHECK_ANSWER
456 ENTRY_BEGIN
457 MATCH all
458 REPLY QR RD RA SERVFAIL
459 SECTION QUESTION
460 servfail.example.com. IN A
461 SECTION ANSWER
462 SECTION AUTHORITY
463 SECTION ADDITIONAL
464 ENTRY_END
465
466 ; The CNAME target is DNSSEC-signed and it's validated.  If the original
467 ; query enabled the DNSSEC, the RRSIGs will be included in the answer,
468 ; but the response should have the AD bit off
469 STEP 270 QUERY
470 ENTRY_BEGIN
471 REPLY RD DO
472 SECTION QUESTION
473 sec.example.com. IN A
474 ENTRY_END
475
476 STEP 280 CHECK_ANSWER
477 ENTRY_BEGIN
478 MATCH all
479 REPLY QR RD DO RA AA NOERROR
480 SECTION QUESTION
481 sec.example.com. IN A
482 SECTION ANSWER
483 sec.example.com. IN CNAME www.infoblox.com.
484 www.infoblox.com. 3600 IN A 161.47.10.70
485 www.infoblox.com. 3600 IN RRSIG A 5 3 3600 20161003223322 20160929221122 14916 infoblox.com. WbO9ydRAoRTPvdK18atTdLEkkMGoOjuwbcb6vVI0d6Sea3xkcBMNmtst Wdzr+pKEJqO2bfm167X6uhcOHanHZRnirlTnEbuTdsP0HCiIEGQD5iHg UNH2FJSKGNYBmgZKJpuLhDca7oqtkl8EyGA+UEt6Rtq6aW8V0wpkhPHi Pug='
486 SECTION AUTHORITY
487 SECTION ADDITIONAL
488 ENTRY_END
489
490
491 SCENARIO_END