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