]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - testdata/iter_dname_insec.rpl
Vendor import of Unbound 1.6.2.
[FreeBSD/FreeBSD.git] / testdata / iter_dname_insec.rpl
1 ; config options
2 server:
3         harden-referral-path: no
4         target-fetch-policy: "0 0 0 0 0"
5
6 stub-zone:
7         name: "."
8         stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
9 CONFIG_END
10
11 SCENARIO_BEGIN Test scrub of insecure DNAME in answer section
12
13 ; root infrastucture
14 RANGE_BEGIN 0 10000000
15         ADDRESS 193.0.14.129
16 ENTRY_BEGIN
17 MATCH qname qtype opcode
18 ADJUST copy_id
19 REPLY QR AA NOERROR
20 SECTION QUESTION
21 . IN NS
22 SECTION ANSWER
23 . IN NS K.ROOT-SERVERS.NET.
24 SECTION ADDITIONAL
25 K.ROOT-SERVERS.NET. IN A 193.0.14.129
26 ENTRY_END
27
28 ENTRY_BEGIN
29 MATCH qname qtype opcode
30 ADJUST copy_id
31 REPLY QR AA NOERROR
32 SECTION QUESTION
33 shortloop. IN TXT
34 SECTION ANSWER
35 shortloop. IN TXT "shortloop end"
36 ENTRY_END
37
38 ENTRY_BEGIN
39 MATCH qname qtype opcode
40 ADJUST copy_id
41 REPLY QR AA NOERROR
42 SECTION QUESTION
43 K.ROOT-SERVERS.NET. IN A
44 SECTION ANSWER
45 K.ROOT-SERVERS.NET. IN A 193.0.14.129
46 ENTRY_END
47
48 ENTRY_BEGIN
49 MATCH qname qtype opcode
50 ADJUST copy_id
51 REPLY QR AA NOERROR
52 SECTION QUESTION
53 K.ROOT-SERVERS.NET. IN AAAA
54 SECTION ANSWER
55 ENTRY_END
56
57 ENTRY_BEGIN
58 MATCH subdomain opcode
59 ADJUST copy_id copy_query
60 REPLY QR NOERROR
61 SECTION QUESTION
62 com. IN A
63 SECTION AUTHORITY
64 com. IN NS a.gtld-servers.net.
65 SECTION ADDITIONAL
66 a.gtld-servers.net. IN A 192.5.6.30
67 ENTRY_END
68
69 ENTRY_BEGIN
70 MATCH subdomain opcode
71 ADJUST copy_id copy_query
72 REPLY QR NOERROR
73 SECTION QUESTION
74 net. IN A
75 SECTION AUTHORITY
76 net. IN NS a.gtld-servers.net.
77 SECTION ADDITIONAL
78 a.gtld-servers.net. IN A 192.5.6.30
79 ENTRY_END
80
81 ENTRY_BEGIN
82 MATCH subdomain opcode
83 ADJUST copy_id copy_query
84 REPLY QR NOERROR
85 SECTION QUESTION
86 x. IN A
87 SECTION AUTHORITY
88 x. IN NS a.gtld-servers.net.
89 SECTION ADDITIONAL
90 a.gtld-servers.net. IN A 192.5.6.30
91 ENTRY_END
92
93 ENTRY_BEGIN
94 MATCH opcode subdomain
95 ADJUST copy_id copy_query
96 REPLY QR NOERROR
97 SECTION QUESTION
98 long. IN NS
99 SECTION AUTHORITY
100 long. IN NS a.gtld-servers.net.
101 SECTION ADDITIONAL
102 a.gtld-servers.net. IN A 192.5.6.30
103 ENTRY_END
104
105 ENTRY_BEGIN
106 MATCH opcode subdomain
107 ADJUST copy_id copy_query
108 REPLY QR NOERROR
109 SECTION QUESTION
110 60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. IN NS
111 SECTION AUTHORITY
112 60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. IN NS a.gtld-servers.net.
113 SECTION ADDITIONAL
114 a.gtld-servers.net. IN A 192.5.6.30
115 ENTRY_END
116
117 ENTRY_BEGIN
118 MATCH qname qtype opcode
119 ADJUST copy_id
120 REPLY QR NOERROR
121 SECTION QUESTION
122 a.gtld-servers.net. IN A
123 SECTION ANSWER
124 a.gtld-servers.net. IN A 192.5.6.30
125 ENTRY_END
126
127 ENTRY_BEGIN
128 MATCH qname qtype opcode
129 ADJUST copy_id
130 REPLY QR NOERROR
131 SECTION QUESTION
132 a.gtld-servers.net. IN AAAA
133 SECTION ANSWER
134 ENTRY_END
135 RANGE_END
136 ; end of root infrastucture
137
138 ; a.gtld-servers.net. (com. net. x.)
139 RANGE_BEGIN 0 10000000
140         ADDRESS 192.5.6.30
141 ENTRY_BEGIN
142 MATCH qname qtype opcode
143 ADJUST copy_id
144 REPLY QR NOERROR
145 SECTION QUESTION
146 a.gtld-servers.net. IN A
147 SECTION ANSWER
148 a.gtld-servers.net. IN A 192.5.6.30
149 ENTRY_END
150
151 ENTRY_BEGIN
152 MATCH qname qtype opcode
153 ADJUST copy_id
154 REPLY QR NOERROR
155 SECTION QUESTION
156 a.gtld-servers.net. IN AAAA
157 SECTION ANSWER
158 ENTRY_END
159
160 ENTRY_BEGIN
161 MATCH qname qtype opcode
162 ADJUST copy_id
163 REPLY QR NOERROR
164 SECTION QUESTION
165 com. IN NS
166 SECTION AUTHORITY
167 com. IN NS a.gtld-servers.net.
168 SECTION ADDITIONAL
169 a.gtld-servers.net. IN A 192.5.6.30
170 ENTRY_END
171
172 ENTRY_BEGIN
173 MATCH qname qtype opcode
174 ADJUST copy_id
175 REPLY QR NOERROR
176 SECTION QUESTION
177 net. IN NS
178 SECTION AUTHORITY
179 net. IN NS a.gtld-servers.net.
180 SECTION ADDITIONAL
181 a.gtld-servers.net. IN A 192.5.6.30
182 ENTRY_END
183
184 ENTRY_BEGIN
185 MATCH opcode subdomain
186 ADJUST copy_id copy_query
187 REPLY QR NOERROR
188 SECTION QUESTION
189 example.com. IN A
190 SECTION AUTHORITY
191 example.com. IN NS ns1.example.com.
192 SECTION ADDITIONAL
193 ns1.example.com. IN A 168.192.2.2
194 ENTRY_END
195
196 ENTRY_BEGIN
197 MATCH opcode subdomain
198 ADJUST copy_id copy_query
199 REPLY QR NOERROR
200 SECTION QUESTION
201 example.net. IN A
202 SECTION AUTHORITY
203 example.net. IN NS ns1.example.net.
204 SECTION ADDITIONAL
205 ns1.example.net. IN A 168.192.3.3
206 ENTRY_END
207
208 ENTRY_BEGIN
209 MATCH qname qtype opcode
210 ADJUST copy_id
211 REPLY QR NOERROR
212 SECTION QUESTION
213 x. IN NS
214 SECTION AUTHORITY
215 x. IN NS a.gtld-servers.net.
216 SECTION ADDITIONAL
217 a.gtld-servers.net. IN A 192.5.6.30
218 ENTRY_END
219
220 ENTRY_BEGIN
221 MATCH qname qtype opcode
222 ADJUST copy_id
223 REPLY QR NOERROR
224 SECTION QUESTION
225 x. IN DNAME
226 SECTION AUTHORITY
227 x. IN DNAME .
228 SECTION ADDITIONAL
229 a.gtld-servers.net. IN A 192.5.6.30
230 ENTRY_END
231
232 ENTRY_BEGIN
233 MATCH qname opcode
234 ADJUST copy_id copy_query
235 REPLY QR NOERROR
236 SECTION QUESTION
237 shortloop.x.x. IN CNAME
238 SECTION ANSWER
239 x. DNAME .
240 shortloop.x.x. IN CNAME shortloop.x.
241 shortloop.x. IN CNAME shortloop.
242 ENTRY_END
243
244 ENTRY_BEGIN
245 MATCH qname opcode
246 ADJUST copy_id copy_query
247 REPLY QR NOERROR
248 SECTION QUESTION
249 shortloop.x. IN CNAME
250 SECTION ANSWER
251 x. DNAME .
252 shortloop.x. IN CNAME shortloop.
253 ENTRY_END
254
255 ENTRY_BEGIN
256 MATCH qname qtype opcode
257 ADJUST copy_id
258 REPLY QR NOERROR
259 SECTION QUESTION
260 60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. IN NS
261 SECTION AUTHORITY
262 60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. IN NS a.gtld-servers.net.
263 SECTION ADDITIONAL
264 a.gtld-servers.net. IN A 192.5.6.30
265 ENTRY_END
266
267 ENTRY_BEGIN
268 MATCH qname qtype opcode
269 ADJUST copy_id
270 REPLY QR NOERROR
271 SECTION QUESTION
272 long. IN NS
273 SECTION AUTHORITY
274 long. IN NS a.gtld-servers.net.
275 SECTION ADDITIONAL
276 a.gtld-servers.net. IN A 192.5.6.30
277 ENTRY_END
278
279 ; DNAME at zone apex, allowed by RFC 6672 section 2.3
280 ENTRY_BEGIN
281 MATCH qname qtype opcode
282 ADJUST copy_id
283 REPLY QR NOERROR
284 SECTION QUESTION
285 long. IN DNAME
286 SECTION ANSWER
287 long.                   3600    IN      DNAME   63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
288 ENTRY_END
289
290 ENTRY_BEGIN
291 MATCH qname qtype opcode
292 ADJUST copy_id
293 REPLY QR NOERROR
294 SECTION QUESTION
295 x.long. IN A
296 SECTION ANSWER
297 long.                   3600    IN      DNAME   63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
298 x.long.                 3600    IN      CNAME   x.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
299 x.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.  3600    IN      A       192.0.2.1
300 ENTRY_END
301
302 ENTRY_BEGIN
303 MATCH qname qtype opcode
304 ADJUST copy_id
305 REPLY QR NOERROR
306 SECTION QUESTION
307 x.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. IN A
308 SECTION ANSWER
309 x.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.  3600    IN      A       192.0.2.1
310 ENTRY_END
311
312 ENTRY_BEGIN
313 MATCH qname opcode
314 ADJUST copy_id copy_query
315 REPLY QR YXDOMAIN
316 SECTION QUESTION
317 too.long. IN A
318 SECTION ANSWER
319 long.                   3600    IN      DNAME   63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
320 ENTRY_END
321 RANGE_END
322 ; end of a.gtld-servers.net.
323
324 ; RFC 6672 section 2.2. The DNAME Substitution table tests
325 ;#  QNAME            owner  DNAME   target         result
326 ;-- ---------------- -------------- -------------- -----------------
327 ;1  com.             example.com.   example.net.   <no match>
328 ;2  example.com.     example.com.   example.net.   [0]
329 ;3  a.example.com.   example.com.   example.net.   a.example.net.
330 ;4  a.b.example.com. example.com.   example.net.   a.b.example.net.
331 ;5  ab.example.com.  b.example.com. example.net.   <no match>
332 ;6  foo.example.com. example.com.   example.net.   foo.example.net.
333 ;7  a.x.example.com. x.example.com. example.net.   a.example.net.
334 ;8  a.example.com.   example.com.   y.example.net. a.y.example.net.
335 ;9  cyc.example.com. example.com.   example.com.   cyc.example.com.
336 ;10 cyc.example.com. example.com.   c.example.com. cyc.c.example.com.
337 ;11 shortloop.x.x.   x.             .              shortloop.x.
338 ;12 shortloop.x.     x.             .              shortloop.
339 ;
340 ;  [0] The result depends on the QTYPE.  If the QTYPE = DNAME, then
341 ;      the result is "example.com.", else "<no match>".
342 ;
343 ;                  Table 1. DNAME Substitution Examples
344
345 ; line no. 1 is mostly for authoritative server
346 ; line no. 2 QTYPE != DNAME
347 STEP 220201 QUERY
348 ENTRY_BEGIN
349 REPLY RD DO
350 SECTION QUESTION
351 example.com. IN NS
352 ENTRY_END
353
354 STEP 220202 CHECK_ANSWER
355 ENTRY_BEGIN
356 MATCH all
357 REPLY QR RD RA DO
358 SECTION QUESTION
359 example.com. IN NS
360 SECTION ANSWER
361 example.com. IN NS ns1.example.com.
362 SECTION ADDITIONAL
363 ns1.example.com.        0       IN      A       168.192.2.2
364 ENTRY_END
365
366 ; line no. 2 QTYPE == DNAME
367 STEP 220203 QUERY
368 ENTRY_BEGIN
369 REPLY RD DO
370 SECTION QUESTION
371 example.com. IN DNAME
372 ENTRY_END
373
374 STEP 220204 CHECK_ANSWER
375 ENTRY_BEGIN
376 MATCH all
377 REPLY QR RD RA DO
378 SECTION QUESTION
379 example.com. IN DNAME
380 SECTION ANSWER
381 example.com. IN DNAME example.net.
382 ENTRY_END
383
384
385 ;#  QNAME            owner  DNAME   target         result
386 ;-- ---------------- -------------- -------------- -----------------
387 ;3  a.example.com.   example.com.   example.net.   a.example.net.
388
389 STEP 220301 QUERY
390 ENTRY_BEGIN
391 REPLY RD DO
392 SECTION QUESTION
393 a.example.com. IN A
394 ENTRY_END
395
396 STEP 220302 CHECK_ANSWER
397 ENTRY_BEGIN
398 MATCH all
399 REPLY QR RD RA DO
400 SECTION QUESTION
401 a.example.com. IN A
402 SECTION ANSWER
403 example.com. IN DNAME example.net.
404 a.example.com. IN CNAME a.example.net.
405 a.example.net. IN A 10.0.0.97
406 ENTRY_END
407
408 ;#  QNAME            owner  DNAME   target         result
409 ;-- ---------------- -------------- -------------- -----------------
410 ;4  a.b.example.com. example.com.   example.net.   a.b.example.net.
411
412 STEP 220401 QUERY
413 ENTRY_BEGIN
414 REPLY RD DO
415 SECTION QUESTION
416 a.b.example.com. IN A
417 ENTRY_END
418
419 STEP 220402 CHECK_ANSWER
420 ENTRY_BEGIN
421 MATCH all
422 REPLY QR RD RA DO
423 SECTION QUESTION
424 a.b.example.com. IN A
425 SECTION ANSWER
426 example.com. IN DNAME example.net.
427 a.b.example.com. IN CNAME a.b.example.net.
428 a.b.example.net. IN A 10.0.97.98
429 ENTRY_END
430
431 ;#  QNAME            owner  DNAME   target         result
432 ;-- ---------------- -------------- -------------- -----------------
433 ;5  ab.example.com.  b.example.com. example.net.   <no match>
434 ;6  foo.example.com. example.com.   example.net.   foo.example.net.
435
436 ; line no. 5 is mostly for authoritative server
437 ; line no. 6 is basically the same as line no. 3
438
439 ; ns1.example.com.
440 RANGE_BEGIN 220000 220699
441         ADDRESS 168.192.2.2
442 ENTRY_BEGIN
443 MATCH opcode qtype qname
444 ADJUST copy_id
445 REPLY QR AA NOERROR
446 SECTION QUESTION
447 example.com. IN NS
448 SECTION ANSWER
449 example.com. IN NS ns1.example.com.
450 SECTION ADDITIONAL
451 ns1.example.com. IN A 168.192.2.2
452 ENTRY_END
453
454 ENTRY_BEGIN
455 MATCH opcode qtype qname
456 ADJUST copy_id
457 REPLY QR AA NOERROR
458 SECTION QUESTION
459 ns1.example.com. IN A
460 SECTION ANSWER
461 ns1.example.com. IN A 168.192.2.2
462 ENTRY_END
463
464 ENTRY_BEGIN
465 MATCH opcode qtype qname
466 ADJUST copy_id
467 REPLY QR AA NOERROR
468 SECTION QUESTION
469 ns1.example.com. IN AAAA
470 SECTION ANSWER
471 ENTRY_END
472
473 ; line 2 DNAME
474 ENTRY_BEGIN
475 MATCH opcode qtype qname
476 ADJUST copy_id
477 REPLY QR AA NOERROR
478 SECTION QUESTION
479 example.com. IN DNAME
480 SECTION ANSWER
481 example.com. IN DNAME example.net.
482 ENTRY_END
483
484 ; line 3
485 ENTRY_BEGIN
486 MATCH opcode qtype qname
487 ADJUST copy_id
488 REPLY QR AA NOERROR
489 SECTION QUESTION
490 a.example.com. IN A
491 SECTION ANSWER
492 example.com. IN DNAME example.net.
493 a.example.com. IN CNAME a.example.net.
494 ENTRY_END
495
496 ; line 4
497 ENTRY_BEGIN
498 MATCH opcode qtype qname
499 ADJUST copy_id
500 REPLY QR AA NOERROR
501 SECTION QUESTION
502 a.b.example.com. IN A
503 SECTION ANSWER
504 example.com. IN DNAME example.net.
505 a.b.example.com. IN CNAME a.b.example.net.
506 ENTRY_END
507 RANGE_END
508 ; end of ns1.example.com.
509
510
511 ;#  QNAME            owner  DNAME   target         result
512 ;-- ---------------- -------------- -------------- -----------------
513 ;7  a.x.example.com. x.example.com. example.net.   a.example.net.
514
515 STEP 220701 QUERY
516 ENTRY_BEGIN
517 REPLY RD DO
518 SECTION QUESTION
519 a.x.example.com. IN A
520 ENTRY_END
521
522 STEP 220702 CHECK_ANSWER
523 ENTRY_BEGIN
524 MATCH all
525 REPLY QR RD RA DO
526 SECTION QUESTION
527 a.x.example.com. IN A
528 SECTION ANSWER
529 x.example.com. IN DNAME example.net.
530 a.x.example.com. IN CNAME a.example.net.
531 a.example.net. IN A 10.0.0.97
532 ENTRY_END
533
534 ; ns1.example.com.
535 RANGE_BEGIN 220700 220799
536         ADDRESS 168.192.2.2
537 ENTRY_BEGIN
538 MATCH opcode qtype qname
539 ADJUST copy_id
540 REPLY QR AA NOERROR
541 SECTION QUESTION
542 example.com. IN NS
543 SECTION ANSWER
544 example.com. IN NS ns1.example.com.
545 SECTION ADDITIONAL
546 ns1.example.com. IN A 168.192.2.2
547 ENTRY_END
548
549 ENTRY_BEGIN
550 MATCH opcode qtype qname
551 ADJUST copy_id
552 REPLY QR AA NOERROR
553 SECTION QUESTION
554 ns1.example.com. IN A
555 SECTION ANSWER
556 ns1.example.com. IN A 168.192.2.2
557 ENTRY_END
558
559 ENTRY_BEGIN
560 MATCH opcode qtype qname
561 ADJUST copy_id
562 REPLY QR AA NOERROR
563 SECTION QUESTION
564 ns1.example.com. IN AAAA
565 SECTION ANSWER
566 ENTRY_END
567
568 ; line 7 DNAME
569 ENTRY_BEGIN
570 MATCH opcode qtype qname
571 ADJUST copy_id
572 REPLY QR AA NOERROR
573 SECTION QUESTION
574 example.com. IN DNAME
575 SECTION ANSWER
576 x.example.com. IN DNAME example.net.
577 ENTRY_END
578
579 ENTRY_BEGIN
580 MATCH opcode qtype qname
581 ADJUST copy_id
582 REPLY QR AA NOERROR
583 SECTION QUESTION
584 a.x.example.com. IN A
585 SECTION ANSWER
586 x.example.com. IN DNAME example.net.
587 a.x.example.com. IN CNAME a.example.net.
588 ENTRY_END
589 RANGE_END
590 ; end of ns1.example.com.
591
592 ;#  QNAME            owner  DNAME   target         result
593 ;-- ---------------- -------------- -------------- -----------------
594 ;8  a.example.com.   example.com.   y.example.net. a.y.example.net.
595 ;
596 ; a.example.com. was renamed to a2.example.com. to avoid cache clashes
597 ; on the synthetized CNAME (caching CNAMEs is allowed by RFC 6672 section 3.4)
598
599 STEP 220801 QUERY
600 ENTRY_BEGIN
601 REPLY RD DO
602 SECTION QUESTION
603 a2.example.com. IN A
604 ENTRY_END
605
606 STEP 220802 CHECK_ANSWER
607 ENTRY_BEGIN
608 MATCH all
609 REPLY QR RD RA DO
610 SECTION QUESTION
611 a2.example.com. IN A
612 SECTION ANSWER
613 example.com. IN DNAME y.example.net.
614 a2.example.com. IN CNAME a2.y.example.net.
615 a2.y.example.net. IN A 10.97.50.121
616 ENTRY_END
617
618 ; ns1.example.com.
619 RANGE_BEGIN 220800 220899
620         ADDRESS 168.192.2.2
621 ENTRY_BEGIN
622 MATCH opcode qtype qname
623 ADJUST copy_id
624 REPLY QR AA NOERROR
625 SECTION QUESTION
626 example.com. IN NS
627 SECTION ANSWER
628 example.com. IN NS ns1.example.com.
629 SECTION ADDITIONAL
630 ns1.example.com. IN A 168.192.2.2
631 ENTRY_END
632
633 ENTRY_BEGIN
634 MATCH opcode qtype qname
635 ADJUST copy_id
636 REPLY QR AA NOERROR
637 SECTION QUESTION
638 ns1.example.com. IN A
639 SECTION ANSWER
640 ns1.example.com. IN A 168.192.2.2
641 ENTRY_END
642
643 ENTRY_BEGIN
644 MATCH opcode qtype qname
645 ADJUST copy_id
646 REPLY QR AA NOERROR
647 SECTION QUESTION
648 ns1.example.com. IN AAAA
649 SECTION ANSWER
650 ENTRY_END
651
652 ; line 8 DNAME
653 ENTRY_BEGIN
654 MATCH opcode qtype qname
655 ADJUST copy_id
656 REPLY QR AA NOERROR
657 SECTION QUESTION
658 example.com. IN DNAME
659 SECTION ANSWER
660 example.com. IN DNAME y.example.net.
661 ENTRY_END
662
663 ENTRY_BEGIN
664 MATCH opcode qtype qname
665 ADJUST copy_id
666 REPLY QR AA NOERROR
667 SECTION QUESTION
668 a2.example.com. IN A
669 SECTION ANSWER
670 example.com. IN DNAME y.example.net.
671 a2.example.com. IN CNAME a2.y.example.net.
672 ENTRY_END
673 RANGE_END
674 ; end of ns1.example.com.
675
676
677 ;#  QNAME            owner  DNAME   target         result
678 ;-- ---------------- -------------- -------------- -----------------
679 ;9  cyc.example.com. example.com.   example.com.   cyc.example.com.
680
681 STEP 220901 QUERY
682 ENTRY_BEGIN
683 REPLY RD DO
684 SECTION QUESTION
685 cyc.example.com. IN A
686 ENTRY_END
687
688 ; Expected result is defined by RFC 1034 section 3.6.2:
689 ; CNAME chains should be followed and CNAME loops signalled as an error
690 STEP 220902 CHECK_ANSWER
691 ENTRY_BEGIN
692 MATCH all
693 REPLY QR RD RA DO
694 REPLY NOERROR
695 SECTION QUESTION
696 cyc.example.com. IN A
697 SECTION ANSWER
698 example.com.    0       IN      DNAME   example.com.
699 cyc.example.com.        0       IN      CNAME   cyc.example.com.
700 ENTRY_END
701
702 ; ns1.example.com.
703 RANGE_BEGIN 220900 220999
704         ADDRESS 168.192.2.2
705 ENTRY_BEGIN
706 MATCH opcode qtype qname
707 ADJUST copy_id
708 REPLY QR AA NOERROR
709 SECTION QUESTION
710 example.com. IN NS
711 SECTION ANSWER
712 example.com. IN NS ns1.example.com.
713 SECTION ADDITIONAL
714 ns1.example.com. IN A 168.192.2.2
715 ENTRY_END
716
717 ENTRY_BEGIN
718 MATCH opcode qtype qname
719 ADJUST copy_id
720 REPLY QR AA NOERROR
721 SECTION QUESTION
722 ns1.example.com. IN A
723 SECTION ANSWER
724 ns1.example.com. IN A 168.192.2.2
725 ENTRY_END
726
727 ENTRY_BEGIN
728 MATCH opcode qtype qname
729 ADJUST copy_id
730 REPLY QR AA NOERROR
731 SECTION QUESTION
732 ns1.example.com. IN AAAA
733 SECTION ANSWER
734 ENTRY_END
735
736 ; line 9 DNAME
737 ENTRY_BEGIN
738 MATCH opcode qtype qname
739 ADJUST copy_id
740 REPLY QR AA NOERROR
741 SECTION QUESTION
742 example.com. IN DNAME
743 SECTION ANSWER
744 example.com. IN DNAME example.com.
745 ENTRY_END
746
747 ENTRY_BEGIN
748 MATCH opcode qtype qname
749 ADJUST copy_id
750 REPLY QR AA NOERROR
751 SECTION QUESTION
752 cyc.example.com. IN A
753 SECTION ANSWER
754 example.com. IN DNAME example.com.
755 cyc.example.com. IN CNAME cyc.example.com.
756 ENTRY_END
757 RANGE_END
758 ; end of ns1.example.com.
759
760 ;#  QNAME            owner  DNAME   target         result
761 ;-- ---------------- -------------- -------------- -----------------
762 ;10 cyc.example.com. example.com.   c.example.com. cyc.c.example.com.
763 ;
764 ; cyc.example.com. was renamed to cyc2.example.com. to avoid cache clashes
765 ; on the synthetized CNAME (caching CNAMEs is allowed by RFC 6672 section 3.4)
766 ;
767 ; target c.example.com. was renamed to cyc2.example.net.
768 ; to limit number of pre-canned answers required for the test
769
770 STEP 221001 QUERY
771 ENTRY_BEGIN
772 REPLY RD DO
773 SECTION QUESTION
774 cyc2.example.com. IN A
775 ENTRY_END
776
777 ; Expected result is defined by RFC 1034 section 3.6.2:
778 ; CNAME chains should be followed and CNAME loops signalled as an error
779 STEP 221002 CHECK_ANSWER
780 ENTRY_BEGIN
781 MATCH all
782 REPLY QR RD RA DO SERVFAIL
783 SECTION QUESTION
784 cyc2.example.com. IN A
785 ENTRY_END
786
787 ; ns1.example.com.
788 RANGE_BEGIN 221000 221099
789         ADDRESS 168.192.2.2
790 ENTRY_BEGIN
791 MATCH opcode qtype qname
792 ADJUST copy_id
793 REPLY QR AA NOERROR
794 SECTION QUESTION
795 example.com. IN NS
796 SECTION ANSWER
797 example.com. IN NS ns1.example.com.
798 SECTION ADDITIONAL
799 ns1.example.com. IN A 168.192.2.2
800 ENTRY_END
801
802 ENTRY_BEGIN
803 MATCH opcode qtype qname
804 ADJUST copy_id
805 REPLY QR AA NOERROR
806 SECTION QUESTION
807 ns1.example.com. IN A
808 SECTION ANSWER
809 ns1.example.com. IN A 168.192.2.2
810 ENTRY_END
811
812 ENTRY_BEGIN
813 MATCH opcode qtype qname
814 ADJUST copy_id
815 REPLY QR AA NOERROR
816 SECTION QUESTION
817 ns1.example.com. IN AAAA
818 SECTION ANSWER
819 ENTRY_END
820
821 ; line 10 DNAME
822 ENTRY_BEGIN
823 MATCH opcode qtype qname
824 ADJUST copy_id
825 REPLY QR AA NOERROR
826 SECTION QUESTION
827 example.com. IN DNAME
828 SECTION ANSWER
829 example.com. IN DNAME cyc2.example.net.
830 ENTRY_END
831
832 ENTRY_BEGIN
833 MATCH opcode qtype qname
834 ADJUST copy_id
835 REPLY QR AA NOERROR
836 SECTION QUESTION
837 cyc2.example.com. IN A
838 SECTION ANSWER
839 example.com. IN DNAME cyc2.example.net.
840 cyc2.example.com. IN CNAME cyc2.cyc2.example.net.
841 ENTRY_END
842 RANGE_END
843 ; end of ns1.example.com.
844
845 ;#  QNAME            owner  DNAME   target         result
846 ;-- ---------------- -------------- -------------- -----------------
847 ;11 shortloop.x.x.   x.             .              shortloop.x.
848
849 STEP 221101 QUERY
850 ENTRY_BEGIN
851 REPLY RD DO
852 SECTION QUESTION
853 shortloop.x.x.  TXT
854 ENTRY_END
855
856 STEP 221102 CHECK_ANSWER
857 ENTRY_BEGIN
858 MATCH all
859 REPLY QR RD RA DO
860 SECTION QUESTION
861 shortloop.x.x.  IN TXT
862 SECTION ANSWER
863 x.              IN DNAME        .
864 shortloop.x.x.  IN CNAME        shortloop.x.
865 ;;x.            IN DNAME        .
866 shortloop.x.    IN CNAME        shortloop.
867 shortloop.      IN TXT          "shortloop end"
868 ENTRY_END
869
870 ;#  QNAME            owner  DNAME   target         result
871 ;-- ---------------- -------------- -------------- -----------------
872 ;12 shortloop.x.     x.             .              shortloop.
873
874 ; expire potentically cached CNAMEs for shortloop.x. from cache
875 STEP 221200 TIME_PASSES ELAPSE 10000
876
877 STEP 221201 QUERY
878 ENTRY_BEGIN
879 REPLY RD DO
880 SECTION QUESTION
881 shortloop.x.    TXT
882 ENTRY_END
883
884 STEP 221202 CHECK_ANSWER
885 ENTRY_BEGIN
886 MATCH all
887 REPLY QR RD RA DO
888 SECTION QUESTION
889 shortloop.x.    IN TXT
890 SECTION ANSWER
891 x.              IN DNAME        .
892 shortloop.x.    IN CNAME        shortloop.
893 shortloop.      IN TXT          "shortloop end"
894 ENTRY_END
895
896
897 ; ns1.example.net. (data shared by whole 22xxxx range)
898 RANGE_BEGIN 220000 229999
899         ADDRESS 168.192.3.3
900 ENTRY_BEGIN
901 MATCH opcode qtype qname
902 ADJUST copy_id
903 REPLY QR AA NOERROR
904 SECTION QUESTION
905 example.net. IN NS
906 SECTION ANSWER
907 example.net. IN NS ns1.example.net.
908 SECTION ADDITIONAL
909 example.net. IN A 168.192.3.3
910 ENTRY_END
911
912 ENTRY_BEGIN
913 MATCH opcode qtype qname
914 ADJUST copy_id
915 REPLY QR AA NOERROR
916 SECTION QUESTION
917 ns1.example.net. IN A
918 SECTION ANSWER
919 ns1.example.net. IN A 168.192.3.3
920 ENTRY_END
921
922 ENTRY_BEGIN
923 MATCH opcode qtype qname
924 ADJUST copy_id
925 REPLY QR AA NOERROR
926 SECTION QUESTION
927 ns1.example.net. IN AAAA
928 SECTION ANSWER
929 ENTRY_END
930
931 ; line 3
932 ENTRY_BEGIN
933 MATCH opcode qtype qname
934 ADJUST copy_id
935 REPLY QR AA NOERROR
936 SECTION QUESTION
937 a.example.net. IN A
938 SECTION ANSWER
939 a.example.net. IN A 10.0.0.97
940 ENTRY_END
941
942 ; line 4
943 ENTRY_BEGIN
944 MATCH opcode qtype qname
945 ADJUST copy_id
946 REPLY QR AA NOERROR
947 SECTION QUESTION
948 a.b.example.net. IN A
949 SECTION ANSWER
950 a.b.example.net. IN A 10.0.97.98
951 ENTRY_END
952
953 ENTRY_BEGIN
954 MATCH opcode qtype qname
955 ADJUST copy_id
956 REPLY QR AA NOERROR
957 SECTION QUESTION
958 a2.y.example.net. IN A
959 SECTION ANSWER
960 a2.y.example.net. IN A 10.97.50.121
961 ENTRY_END
962
963 ; line 10
964 ENTRY_BEGIN
965 MATCH opcode qtype qname
966 ADJUST copy_id
967 REPLY QR AA NOERROR
968 SECTION QUESTION
969 cyc2.example.net. IN DNAME
970 SECTION ANSWER
971 cyc2.example.net. IN DNAME example.com.
972 ENTRY_END
973
974 ENTRY_BEGIN
975 MATCH opcode qtype qname
976 ADJUST copy_id
977 REPLY QR AA NOERROR
978 SECTION QUESTION
979 cyc2.cyc2.example.net. IN A
980 SECTION ANSWER
981 cyc2.example.net. IN DNAME example.com.
982 cyc2.cyc2.example.com. IN CNAME cyc2.example.com.
983 ENTRY_END
984 RANGE_END
985 ; end of ns1.example.net.
986
987
988 ; RFC 6672 section 2.2: YXDOMAIN answers for too long results for substitution
989 ; RFC 6672 section 2.3: DNAME can be at zone apex: zone apex = long.
990 STEP 229001 QUERY
991 ENTRY_BEGIN
992 REPLY RD DO
993 SECTION QUESTION
994 x.long. IN A
995 ENTRY_END
996
997 ; query returning maximal permissible length - should work
998 STEP 229002 CHECK_ANSWER
999 ENTRY_BEGIN
1000 MATCH all
1001 REPLY QR RD RA DO
1002 SECTION QUESTION
1003 x.long. IN A
1004 SECTION ANSWER
1005 long.                   3600    IN      DNAME   63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
1006 x.long.                 3600    IN      CNAME   x.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
1007 x.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.  3600    IN      A       192.0.2.1
1008 ENTRY_END
1009
1010 ; result of substitution has too long name
1011 ; YXDOMAIN should be propagated to the client
1012 ; Unbound SEVFAILs: https://www.ietf.org/mail-archive/web/dnsext/current/msg11282.html
1013 ;TODO
1014 ; STEP 229003 QUERY
1015 ; ENTRY_BEGIN
1016 ; REPLY RD DO
1017 ; SECTION QUESTION
1018 ; too.long.     IN A
1019 ; ENTRY_END
1020 ;
1021 ; STEP 229004 CHECK_ANSWER
1022 ; ENTRY_BEGIN
1023 ; MATCH all
1024 ; REPLY QR YXDOMAIN
1025 ; SECTION QUESTION
1026 ; x.long.       IN A
1027 ; SECTION ANSWER
1028 ; long.                 3600    IN      DNAME   63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
1029 ; ENTRY_END
1030
1031 ; YXDOMAIN should work even if the cache is empty
1032 STEP 229005 TIME_PASSES ELAPSE 4000
1033
1034 ; STEP 229006 QUERY
1035 ; ENTRY_BEGIN
1036 ; REPLY RD DO
1037 ; SECTION QUESTION
1038 ; too.long.     IN A
1039 ; ENTRY_END
1040
1041 ; STEP 229007 CHECK_ANSWER
1042 ; ENTRY_BEGIN
1043 ; MATCH all
1044 ; REPLY QR YXDOMAIN
1045 ; SECTION QUESTION
1046 ; x.long.       IN A
1047 ; SECTION ANSWER
1048 ; long.                 3600    IN      DNAME   63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
1049 ; ENTRY_END
1050
1051
1052
1053
1054 SCENARIO_END