1 ; config options 2 server: 3 target-fetch-policy: "0 0 0 0 0" 4 qname-minimisation: "no" 5 prefetch: "yes" 6 minimal-responses: no 7 iter-scrub-promiscuous: no 8 9 stub-zone: 10 name: "." 11 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 12 CONFIG_END 13 14 SCENARIO_BEGIN Test resolver prefetch of NS record for moved domain 15 16 ; K.ROOT-SERVERS.NET. 17 RANGE_BEGIN 0 200 18 ADDRESS 193.0.14.129 19 ENTRY_BEGIN 20 MATCH opcode qtype qname 21 ADJUST copy_id 22 REPLY QR NOERROR 23 SECTION QUESTION 24 . IN NS 25 SECTION ANSWER 26 . IN NS K.ROOT-SERVERS.NET. 27 SECTION ADDITIONAL 28 K.ROOT-SERVERS.NET. IN A 193.0.14.129 29 ENTRY_END 30 31 ENTRY_BEGIN 32 MATCH opcode subdomain 33 ADJUST copy_id copy_query 34 REPLY QR NOERROR 35 SECTION QUESTION 36 example.com. IN A 37 SECTION AUTHORITY 38 com. IN NS a.gtld-servers.net. 39 SECTION ADDITIONAL 40 a.gtld-servers.net. IN A 192.5.6.30 41 ENTRY_END 42 RANGE_END 43 44 ; a.gtld-servers.net. (before sale of domain) 45 RANGE_BEGIN 0 20 46 ADDRESS 192.5.6.30 47 ENTRY_BEGIN 48 MATCH opcode qtype qname 49 ADJUST copy_id 50 REPLY QR NOERROR 51 SECTION QUESTION 52 com. IN NS 53 SECTION ANSWER 54 com. IN NS a.gtld-servers.net. 55 SECTION ADDITIONAL 56 a.gtld-servers.net. IN A 192.5.6.30 57 ENTRY_END 58 59 ENTRY_BEGIN 60 MATCH opcode subdomain 61 ADJUST copy_id copy_query 62 REPLY QR NOERROR 63 SECTION QUESTION 64 example.com. IN A 65 SECTION AUTHORITY 66 example.com. IN NS ns.example.com. 67 SECTION ADDITIONAL 68 ns.example.com. IN A 1.2.3.4 69 ENTRY_END 70 RANGE_END 71 72 ; a.gtld-servers.net. (after sale of domain) 73 RANGE_BEGIN 30 200 74 ADDRESS 192.5.6.30 75 ENTRY_BEGIN 76 MATCH opcode qtype qname 77 ADJUST copy_id 78 REPLY QR NOERROR 79 SECTION QUESTION 80 com. IN NS 81 SECTION ANSWER 82 com. IN NS a.gtld-servers.net. 83 SECTION ADDITIONAL 84 a.gtld-servers.net. IN A 192.5.6.30 85 ENTRY_END 86 87 ENTRY_BEGIN 88 MATCH opcode subdomain 89 ADJUST copy_id copy_query 90 REPLY QR NOERROR 91 SECTION QUESTION 92 example.com. IN A 93 SECTION AUTHORITY 94 example.com. IN NS ns.example.com. 95 SECTION ADDITIONAL 96 ns.example.com. IN A 8.8.8.8 97 ENTRY_END 98 RANGE_END 99 100 ; ns.example.com. first owner 101 RANGE_BEGIN 0 200 102 ADDRESS 1.2.3.4 103 ENTRY_BEGIN 104 MATCH opcode qtype qname 105 ADJUST copy_id 106 REPLY QR NOERROR 107 SECTION QUESTION 108 example.com. IN NS 109 SECTION ANSWER 110 example.com. IN NS ns.example.com. 111 SECTION ADDITIONAL 112 ns.example.com. IN A 1.2.3.4 113 ENTRY_END 114 115 ENTRY_BEGIN 116 MATCH opcode qtype qname 117 ADJUST copy_id 118 REPLY QR NOERROR 119 SECTION QUESTION 120 www.example.com. IN A 121 SECTION ANSWER 122 www.example.com. 3600 IN A 10.20.30.40 123 SECTION AUTHORITY 124 example.com. 3600 IN NS ns.example.com. 125 SECTION ADDITIONAL 126 ns.example.com. 3600 IN A 1.2.3.4 127 ENTRY_END 128 RANGE_END 129 130 ; ns.example.com. new owner 131 RANGE_BEGIN 0 200 132 ADDRESS 8.8.8.8 133 ENTRY_BEGIN 134 MATCH opcode qtype qname 135 ADJUST copy_id 136 REPLY QR NOERROR 137 SECTION QUESTION 138 example.com. IN NS 139 SECTION ANSWER 140 example.com. IN NS ns.example.com. 141 SECTION ADDITIONAL 142 ns.example.com. IN A 8.8.8.8 143 ENTRY_END 144 145 ENTRY_BEGIN 146 MATCH opcode qtype qname 147 ADJUST copy_id 148 REPLY QR NOERROR 149 SECTION QUESTION 150 www.example.com. IN A 151 SECTION ANSWER 152 www.example.com. 3600 IN A 88.88.88.88 153 SECTION AUTHORITY 154 example.com. 3600 IN NS ns.example.com. 155 SECTION ADDITIONAL 156 ns.example.com. 3600 IN A 8.8.8.8 157 ENTRY_END 158 RANGE_END 159 160 STEP 1 QUERY 161 ENTRY_BEGIN 162 REPLY RD 163 SECTION QUESTION 164 www.example.com. IN A 165 ENTRY_END 166 ; recursion happens here. 167 STEP 5 CHECK_ANSWER 168 ENTRY_BEGIN 169 MATCH all ttl 170 REPLY QR RD RA NOERROR 171 SECTION QUESTION 172 www.example.com. IN A 173 SECTION ANSWER 174 www.example.com. 3600 IN A 10.20.30.40 175 SECTION AUTHORITY 176 example.com. 3600 IN NS ns.example.com. 177 SECTION ADDITIONAL 178 ns.example.com. 3600 IN A 1.2.3.4 179 ENTRY_END 180 181 STEP 10 QUERY 182 ENTRY_BEGIN 183 REPLY RD 184 SECTION QUESTION 185 example.com. IN NS 186 ENTRY_END 187 ; recursion happens here. 188 STEP 15 CHECK_ANSWER 189 ENTRY_BEGIN 190 MATCH all ttl 191 REPLY QR RD RA NOERROR 192 SECTION QUESTION 193 example.com. IN NS 194 SECTION ANSWER 195 example.com. 3600 IN NS ns.example.com. 196 SECTION AUTHORITY 197 SECTION ADDITIONAL 198 ns.example.com. 3600 IN A 1.2.3.4 199 ENTRY_END 200 201 ; after 1800 secs still the cached answer 202 STEP 20 TIME_PASSES ELAPSE 1800 203 204 STEP 30 QUERY 205 ENTRY_BEGIN 206 REPLY RD 207 SECTION QUESTION 208 www.example.com. IN A 209 ENTRY_END 210 ; recursion happens here. 211 STEP 40 CHECK_ANSWER 212 ENTRY_BEGIN 213 MATCH all ttl 214 REPLY QR RD RA NOERROR 215 SECTION QUESTION 216 www.example.com. IN A 217 SECTION ANSWER 218 www.example.com. 1800 IN A 10.20.30.40 219 SECTION AUTHORITY 220 example.com. 1800 IN NS ns.example.com. 221 SECTION ADDITIONAL 222 ns.example.com. 1800 IN A 1.2.3.4 223 ENTRY_END 224 225 STEP 44 QUERY 226 ENTRY_BEGIN 227 REPLY RD 228 SECTION QUESTION 229 example.com. IN NS 230 ENTRY_END 231 ; recursion happens here. 232 STEP 45 CHECK_ANSWER 233 ENTRY_BEGIN 234 MATCH all ttl 235 REPLY QR RD RA NOERROR 236 SECTION QUESTION 237 example.com. IN NS 238 SECTION ANSWER 239 example.com. 1800 IN NS ns.example.com. 240 SECTION AUTHORITY 241 SECTION ADDITIONAL 242 ns.example.com. 1800 IN A 1.2.3.4 243 ENTRY_END 244 245 ; after 1440 we are 360 seconds before the expiry 246 STEP 50 TIME_PASSES ELAPSE 1440 247 248 STEP 60 QUERY 249 ENTRY_BEGIN 250 REPLY RD 251 SECTION QUESTION 252 example.com. IN NS 253 ENTRY_END 254 ; recursion happens here. 255 STEP 70 CHECK_ANSWER 256 ENTRY_BEGIN 257 MATCH all ttl 258 REPLY QR RD RA NOERROR 259 SECTION QUESTION 260 example.com. IN NS 261 SECTION ANSWER 262 example.com. 360 IN NS ns.example.com. 263 SECTION AUTHORITY 264 SECTION ADDITIONAL 265 ns.example.com. 360 IN A 1.2.3.4 266 ENTRY_END 267 268 STEP 80 TRAFFIC 269 ; let traffic flow for prefetch to happen 270 271 ; check result of that prefetch 272 STEP 90 QUERY 273 ENTRY_BEGIN 274 REPLY RD 275 SECTION QUESTION 276 example.com. IN NS 277 ENTRY_END 278 ; recursion happens here. 279 280 ; because the prefetch+current makes old-NS expired, new delegation is picked up 281 STEP 91 CHECK_ANSWER 282 ENTRY_BEGIN 283 MATCH all ttl 284 REPLY QR RD RA NOERROR 285 SECTION QUESTION 286 example.com. IN NS 287 SECTION ANSWER 288 example.com. 3600 IN NS ns.example.com. 289 SECTION AUTHORITY 290 SECTION ADDITIONAL 291 ns.example.com. 3600 IN A 8.8.8.8 292 ENTRY_END 293 294 STEP 100 TIME_PASSES ELAPSE 2360 295 296 STEP 120 QUERY 297 ENTRY_BEGIN 298 REPLY RD 299 SECTION QUESTION 300 www.example.com. IN A 301 ENTRY_END 302 ; recursion happens here. 303 STEP 130 CHECK_ANSWER 304 ENTRY_BEGIN 305 MATCH all ttl 306 REPLY QR RD RA NOERROR 307 SECTION QUESTION 308 www.example.com. IN A 309 SECTION ANSWER 310 www.example.com. 3600 IN A 88.88.88.88 311 SECTION AUTHORITY 312 example.com. 1240 IN NS ns.example.com. 313 SECTION ADDITIONAL 314 ns.example.com. 1240 IN A 8.8.8.8 315 ENTRY_END 316 317 SCENARIO_END 318