1 ; config options 2 ; The island of trust is at test. 3 server: 4 target-fetch-policy: "0 0 0 0 0" 5 qname-minimisation: "no" 6 fake-sha1: yes 7 trust-anchor-signaling: no 8 minimal-responses: no 9 iter-scrub-promiscuous: no 10 aggressive-nsec: no 11 local-zone: test. nodefault 12 log-servfail: yes 13 discard-timeout: 0 14 module-config: "respip iterator" 15 serve-expired: yes 16 serve-expired-client-timeout: 500 17 serve-expired-ttl: 3600 18 serve-expired-reply-ttl: 30 19 response-ip: 192.0.2.0/24 deny 20 21 stub-zone: 22 name: "." 23 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 24 CONFIG_END 25 26 SCENARIO_BEGIN Test expired response respip drop 27 28 ; K.ROOT-SERVERS.NET. 29 RANGE_BEGIN 0 100 30 ADDRESS 193.0.14.129 31 ENTRY_BEGIN 32 MATCH opcode qtype qname 33 ADJUST copy_id 34 REPLY QR NOERROR 35 SECTION QUESTION 36 . IN NS 37 SECTION ANSWER 38 . IN NS K.ROOT-SERVERS.NET. 39 SECTION ADDITIONAL 40 K.ROOT-SERVERS.NET. IN A 193.0.14.129 41 ENTRY_END 42 43 ENTRY_BEGIN 44 MATCH opcode subdomain 45 ADJUST copy_id copy_query 46 REPLY QR NOERROR 47 SECTION QUESTION 48 test. IN NS 49 SECTION AUTHORITY 50 test. IN NS ns.test. 51 SECTION ADDITIONAL 52 ns.test. IN A 1.2.3.5 53 ENTRY_END 54 RANGE_END 55 56 ; ns.test 57 RANGE_BEGIN 0 100 58 ADDRESS 1.2.3.5 59 ENTRY_BEGIN 60 MATCH opcode qtype qname 61 ADJUST copy_id 62 REPLY QR AA NOERROR 63 SECTION QUESTION 64 test. IN NS 65 SECTION ANSWER 66 test. IN NS ns.test 67 SECTION ADDITIONAL 68 ns.test. IN A 1.2.3.5 69 ENTRY_END 70 71 ENTRY_BEGIN 72 MATCH opcode qtype qname 73 ADJUST copy_id 74 REPLY QR AA NOERROR 75 SECTION QUESTION 76 ns.test. IN A 77 SECTION ANSWER 78 ns.test. IN A 1.2.3.5 79 ENTRY_END 80 81 ENTRY_BEGIN 82 MATCH opcode qtype qname 83 ADJUST copy_id 84 REPLY QR AA NOERROR 85 SECTION QUESTION 86 ns.test. IN AAAA 87 SECTION AUTHORITY 88 test. 3600 IN SOA ns.test. host.test. 20201 3600 1800 604800 3600 89 ENTRY_END 90 91 ENTRY_BEGIN 92 MATCH opcode subdomain 93 ADJUST copy_id copy_query 94 REPLY QR NOERROR 95 SECTION QUESTION 96 example.test. IN NS 97 SECTION AUTHORITY 98 example.test. IN NS ns.example.test. 99 SECTION ADDITIONAL 100 ns.example.test. IN A 1.2.3.4 101 ENTRY_END 102 103 ENTRY_BEGIN 104 MATCH opcode subdomain 105 ADJUST copy_id copy_query 106 REPLY QR NOERROR 107 SECTION QUESTION 108 far.test. IN NS 109 SECTION AUTHORITY 110 far.test. IN NS ns.far.test. 111 SECTION ADDITIONAL 112 ns.far.test. IN A 1.2.3.6 113 ENTRY_END 114 RANGE_END 115 116 ; ns.example.test. 117 RANGE_BEGIN 0 20 118 ADDRESS 1.2.3.4 119 ENTRY_BEGIN 120 MATCH opcode qtype qname 121 ADJUST copy_id 122 REPLY QR NOERROR 123 SECTION QUESTION 124 example.test. IN NS 125 SECTION ANSWER 126 example.test. IN NS ns.example.test. 127 SECTION ADDITIONAL 128 ns.example.test. IN A 1.2.3.4 129 ENTRY_END 130 131 ENTRY_BEGIN 132 MATCH opcode qtype qname 133 ADJUST copy_id 134 REPLY QR AA NOERROR 135 SECTION QUESTION 136 ns.example.test. IN A 137 SECTION ANSWER 138 ns.example.test. IN A 1.2.3.4 139 ENTRY_END 140 141 ENTRY_BEGIN 142 MATCH opcode qtype qname 143 ADJUST copy_id 144 REPLY QR AA NOERROR 145 SECTION QUESTION 146 ns.example.test. IN AAAA 147 SECTION AUTHORITY 148 example.test. 3600 IN SOA ns.example.test. host.example.test. 20301 3600 1800 604800 3600 149 ENTRY_END 150 151 ; response to query of interest 152 ENTRY_BEGIN 153 MATCH opcode qtype qname 154 ADJUST copy_id 155 REPLY QR AA NOERROR 156 SECTION QUESTION 157 www.example.test. IN A 158 SECTION ANSWER 159 www.example.test. 1 IN A 192.0.2.1 160 ENTRY_END 161 RANGE_END 162 163 ; ns.example.test. 164 RANGE_BEGIN 45 100 165 ADDRESS 1.2.3.4 166 ENTRY_BEGIN 167 MATCH opcode qtype qname 168 ADJUST copy_id 169 REPLY QR AA NOERROR 170 SECTION QUESTION 171 www.example.test. IN A 172 SECTION ANSWER 173 www.example.test. 1 IN A 192.0.2.1 174 ENTRY_END 175 RANGE_END 176 177 ; ns.far.test. 178 RANGE_BEGIN 0 100 179 ADDRESS 1.2.3.6 180 ENTRY_BEGIN 181 MATCH opcode qtype qname 182 ADJUST copy_id 183 REPLY QR NOERROR 184 SECTION QUESTION 185 far.test. IN NS 186 SECTION ANSWER 187 far.test. IN NS ns.far.test. 188 SECTION ADDITIONAL 189 ns.far.test. IN A 1.2.3.6 190 ENTRY_END 191 192 ENTRY_BEGIN 193 MATCH opcode qtype qname 194 ADJUST copy_id 195 REPLY QR AA NOERROR 196 SECTION QUESTION 197 ns.far.test. IN A 198 SECTION ANSWER 199 ns.far.test. IN A 1.2.3.6 200 ENTRY_END 201 202 ENTRY_BEGIN 203 MATCH opcode qtype qname 204 ADJUST copy_id 205 REPLY QR AA NOERROR 206 SECTION QUESTION 207 ns.far.test. IN AAAA 208 SECTION AUTHORITY 209 far.test. 3600 IN SOA ns.far.test. host.far.test. 20301 3600 1800 604800 3600 210 ENTRY_END 211 212 ; response to query of interest 213 ENTRY_BEGIN 214 MATCH opcode qtype qname 215 ADJUST copy_id 216 REPLY QR AA NOERROR 217 SECTION QUESTION 218 tgt.far.test. IN A 219 SECTION ANSWER 220 tgt.far.test. 1 IN A 10.20.30.40 221 ENTRY_END 222 RANGE_END 223 224 ; Put items with TTL 1 in cache. 225 STEP 10 QUERY 226 ENTRY_BEGIN 227 REPLY RD DO 228 SECTION QUESTION 229 www.example.test. IN A 230 ENTRY_END 231 232 ; Answer is dropped 233 ;STEP 11 CHECK_ANSWER 234 ;ENTRY_BEGIN 235 ;MATCH all 236 ;REPLY QR RD RA DO NOERROR 237 ;SECTION QUESTION 238 ;www.example.test. IN A 239 ;SECTION ANSWER 240 ;www.example.test. 3600 IN CNAME tgt.far.test. 241 ;tgt.far.test. 1 IN A 10.20.30.40 242 ;ENTRY_END 243 244 ; Move time to expire the cache entries. 245 STEP 20 TIME_PASSES ELAPSE 2 246 247 ; the upstream RANGE is removed, so serve-expired has to act. 248 249 STEP 30 QUERY 250 ENTRY_BEGIN 251 REPLY RD DO 252 SECTION QUESTION 253 www.example.test. IN A 254 ENTRY_END 255 256 ; for serve expired callback. 257 STEP 31 TIME_PASSES ELAPSE 2 258 259 ; Answer is dropped 260 ;STEP 40 CHECK_ANSWER 261 ;ENTRY_BEGIN 262 ;MATCH all 263 ;REPLY QR RD RA DO NOERROR 264 ;SECTION QUESTION 265 ;www.example.test. IN A 266 ;SECTION ANSWER 267 ;www.example.test. 3600 IN CNAME tgt.far.test. 268 ;tgt.far.test. 1 IN A 10.20.30.40 269 ;ENTRY_END 270 271 ; The pending lookup for the data, that was answered with expired to the client. 272 STEP 50 TRAFFIC 273 274 SCENARIO_END 275