1 ; config options 2 server: 3 target-fetch-policy: "0 0 0 0 0" 4 5 auth-zone: 6 name: "example.tld." 7 for-upstream: yes 8 for-downstream: no 9 fallback-enabled: no 10 ## this line generates zonefile: "/tmp/xxx.example.tld" 11 zonefile: 12 TEMPFILE_NAME example.tld 13 ## this is the inline file /tmp/xxx.example.tld 14 ## the tempfiles are deleted when the testrun is over. 15 TEMPFILE_CONTENTS example.tld 16 $ORIGIN tld. 17 example 3600 IN SOA a b 1 2 3 4 5 18 3600 IN NS ns.example.tld. 19 $ORIGIN example.tld. 20 ns 3600 IN A 1.2.3.4 21 www 3600 IN A 3.3.3.3 22 more 3600 IN NS ns.more.tld. 23 TEMPFILE_END 24 25 forward-zone: 26 name: "." 27 forward-addr: 9.9.9.9 28 29 stub-zone: 30 name: "tld" 31 stub-addr: 2.3.4.5 32 stub-zone: 33 name: "more.example.tld" 34 stub-addr: 2.3.4.7 35 CONFIG_END 36 37 SCENARIO_BEGIN Test iterator's ability to route the request to the correct, configured delegation point 38 ; Preference should be auth-zone > stub-zone > forward-zone 39 ; But configuration-wise, since everything is an entry on the forwards tree 40 ; (or a hole in the case of stub/auth), forwards cannot be replaced by 41 ; stubs/auth. 42 ; Also stub/auth zones end the part of the tree that gets forwarded, e.g., 43 ; delegations from an auth/stub cannot be caught by a higher forwarder, it will 44 ; be recursively resolved instead. 45 46 ; '.' forwarder 47 RANGE_BEGIN 0 100 48 ADDRESS 9.9.9.9 49 ENTRY_BEGIN 50 MATCH opcode qtype qname 51 ADJUST copy_id 52 REPLY QR NOERROR 53 SECTION QUESTION 54 www.deleg.tld. IN A 55 SECTION ANSWER 56 www.deleg.tld. IN A 3.3.3.3 57 ENTRY_END 58 59 ENTRY_BEGIN 60 MATCH opcode qtype qname 61 ADJUST copy_id 62 REPLY QR NOERROR 63 SECTION QUESTION 64 www.more.example.tld. IN A 65 SECTION ANSWER 66 www.more.example.tld. IN A 3.3.3.3 67 ENTRY_END 68 RANGE_END 69 70 ; 'tld.' stub server 71 RANGE_BEGIN 0 100 72 ADDRESS 2.3.4.5 73 ENTRY_BEGIN 74 MATCH opcode qtype qname 75 ADJUST copy_id 76 REPLY QR AA NOERROR 77 SECTION QUESTION 78 www.tld. IN A 79 SECTION ANSWER 80 www.tld. IN A 3.3.3.3 81 ENTRY_END 82 RANGE_END 83 84 ; 'more.example.tld.' stub server 85 RANGE_BEGIN 0 100 86 ADDRESS 2.3.4.7 87 ENTRY_BEGIN 88 MATCH opcode qtype qname 89 ADJUST copy_id 90 REPLY QR AA NOERROR 91 SECTION QUESTION 92 www.more.example.tld. IN A 93 SECTION ANSWER 94 www.more.example.tld. IN A 3.3.3.3 95 ENTRY_END 96 RANGE_END 97 98 ; query www.tld ... 99 STEP 1 QUERY 100 ENTRY_BEGIN 101 REPLY RD 102 SECTION QUESTION 103 www.tld. IN A 104 ENTRY_END 105 106 ; ... answer should come from 'tld.' stub zone 107 STEP 2 CHECK_ANSWER 108 ENTRY_BEGIN 109 MATCH all 110 REPLY QR RD RA NOERROR 111 SECTION QUESTION 112 www.tld. IN A 113 SECTION ANSWER 114 www.tld. IN A 3.3.3.3 115 ENTRY_END 116 117 ; query www.example.tld ... 118 STEP 3 QUERY 119 ENTRY_BEGIN 120 REPLY RD 121 SECTION QUESTION 122 www.example.tld. IN A 123 ENTRY_END 124 125 ; ... answer should come from 'example.tld.' auth zone 126 STEP 4 CHECK_ANSWER 127 ENTRY_BEGIN 128 MATCH all 129 REPLY QR RD RA NOERROR 130 SECTION QUESTION 131 www.example.tld. IN A 132 SECTION ANSWER 133 www.example.tld. IN A 3.3.3.3 134 ENTRY_END 135 136 ; query www.more.example.tld ... 137 STEP 5 QUERY 138 ENTRY_BEGIN 139 REPLY RD 140 SECTION QUESTION 141 www.more.example.tld. IN A 142 ENTRY_END 143 144 ; ... answer should come from 'more.example.tld.' stub zone 145 STEP 6 CHECK_ANSWER 146 ENTRY_BEGIN 147 MATCH all 148 REPLY QR RD RA NOERROR 149 SECTION QUESTION 150 www.more.example.tld. IN A 151 SECTION ANSWER 152 www.more.example.tld. IN A 3.3.3.3 153 ENTRY_END 154 155 SCENARIO_END 156