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