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