1; config options 2server: 3 target-fetch-policy: "0 0 0 0 0" 4 module-config: "dns64 validator iterator" 5 dns64-prefix: 64:ff9b::0/96 6 7stub-zone: 8 name: "." 9 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 10CONFIG_END 11 12SCENARIO_BEGIN Test dns64 lookup and synthesis. 13; normal A lookup should still succeed 14; AAAA is synthesized if not present. 15; AAAA if present, is passed through unchanged. 16 17; K.ROOT-SERVERS.NET. 18RANGE_BEGIN 0 200 19 ADDRESS 193.0.14.129 20ENTRY_BEGIN 21MATCH opcode qtype qname 22ADJUST copy_id 23REPLY QR NOERROR 24SECTION QUESTION 25. IN NS 26SECTION ANSWER 27. IN NS K.ROOT-SERVERS.NET. 28SECTION ADDITIONAL 29K.ROOT-SERVERS.NET. IN A 193.0.14.129 30ENTRY_END 31 32ENTRY_BEGIN 33MATCH opcode qtype qname 34ADJUST copy_id 35REPLY QR NOERROR 36SECTION QUESTION 37www.example.com. IN A 38SECTION AUTHORITY 39com. IN NS a.gtld-servers.net. 40SECTION ADDITIONAL 41a.gtld-servers.net. IN A 192.5.6.30 42ENTRY_END 43 44ENTRY_BEGIN 45MATCH opcode subdomain 46ADJUST copy_id copy_query 47REPLY QR NOERROR 48SECTION QUESTION 497.6.5.in-addr.arpa. IN A 50SECTION AUTHORITY 517.6.5.in-addr.arpa. IN NS ns.example.com. 52SECTION ADDITIONAL 53ns.example.com. IN A 1.2.3.4 54ENTRY_END 55 56RANGE_END 57 58; a.gtld-servers.net. 59RANGE_BEGIN 0 200 60 ADDRESS 192.5.6.30 61ENTRY_BEGIN 62MATCH opcode qtype qname 63ADJUST copy_id 64REPLY QR NOERROR 65SECTION QUESTION 66com. IN NS 67SECTION ANSWER 68com. IN NS a.gtld-servers.net. 69SECTION ADDITIONAL 70a.gtld-servers.net. IN A 192.5.6.30 71ENTRY_END 72 73ENTRY_BEGIN 74MATCH opcode qtype qname 75ADJUST copy_id 76REPLY QR NOERROR 77SECTION QUESTION 78www.example.com. IN A 79SECTION AUTHORITY 80example.com. IN NS ns.example.com. 81SECTION ADDITIONAL 82ns.example.com. IN A 1.2.3.4 83ENTRY_END 84RANGE_END 85 86; ns.example.com. 87RANGE_BEGIN 0 200 88 ADDRESS 1.2.3.4 89ENTRY_BEGIN 90MATCH opcode qtype qname 91ADJUST copy_id 92REPLY QR NOERROR 93SECTION QUESTION 94example.com. IN NS 95SECTION ANSWER 96example.com. IN NS ns.example.com. 97SECTION ADDITIONAL 98ns.example.com. IN A 1.2.3.4 99ENTRY_END 100 101ENTRY_BEGIN 102MATCH opcode qtype qname 103ADJUST copy_id 104REPLY QR NOERROR 105SECTION QUESTION 106www.example.com. IN A 107SECTION ANSWER 108www.example.com. IN A 10.20.30.40 109SECTION AUTHORITY 110example.com. IN NS ns.example.com. 111SECTION ADDITIONAL 112ns.example.com. IN A 1.2.3.4 113ENTRY_END 114 115ENTRY_BEGIN 116MATCH opcode qtype qname 117ADJUST copy_id 118REPLY QR NOERROR 119SECTION QUESTION 120ip4.example.com. IN AAAA 121SECTION ANSWER 122; NO AAAA present 123SECTION AUTHORITY 124example.com. IN SOA a. b. 1 2 3 4 5 125ENTRY_END 126 127ENTRY_BEGIN 128MATCH opcode qtype qname 129ADJUST copy_id 130REPLY QR NOERROR 131SECTION QUESTION 132ip4.example.com. IN A 133SECTION ANSWER 134ip4.example.com. IN A 5.6.7.8 135SECTION AUTHORITY 136example.com. IN NS ns.example.com. 137SECTION ADDITIONAL 138ns.example.com. IN A 1.2.3.4 139ENTRY_END 140 141ENTRY_BEGIN 142MATCH opcode qtype qname 143ADJUST copy_id 144REPLY QR NOERROR 145SECTION QUESTION 146broken.example.com. IN AAAA 147SECTION ANSWER 148; NO AAAA present 149SECTION AUTHORITY 150example.com. IN SOA a. b. 1 2 3 4 5 151ENTRY_END 152 153ENTRY_BEGIN 154MATCH opcode qtype qname 155ADJUST copy_id 156REPLY QR NOERROR 157SECTION QUESTION 158broken.example.com. IN A 159SECTION ANSWER 160broken.example.com. IN A 5.6.7.8 161broken.example.com. IN A \# 3 030405 162SECTION AUTHORITY 163example.com. IN NS ns.example.com. 164SECTION ADDITIONAL 165ns.example.com. IN A 1.2.3.4 166ENTRY_END 167 168ENTRY_BEGIN 169MATCH opcode qtype qname 170ADJUST copy_id 171REPLY QR NOERROR 172SECTION QUESTION 173ip6.example.com. IN AAAA 174SECTION ANSWER 175ip6.example.com. IN AAAA 1:2:3::4 176SECTION AUTHORITY 177example.com. IN NS ns.example.com. 178SECTION ADDITIONAL 179ns.example.com. IN A 1.2.3.4 180ENTRY_END 181 182ENTRY_BEGIN 183MATCH opcode qtype qname 184ADJUST copy_id 185REPLY QR NOERROR 186SECTION QUESTION 1878.7.6.5.in-addr.arpa. IN PTR 188SECTION ANSWER 1898.7.6.5.in-addr.arpa. PTR ip4.example.com. 190SECTION AUTHORITY 1917.6.5.in-addr.arpa. IN NS ns.example.com. 192ENTRY_END 193 194RANGE_END 195 196STEP 1 QUERY 197ENTRY_BEGIN 198REPLY RD 199SECTION QUESTION 200www.example.com. IN A 201ENTRY_END 202 203; recursion happens here. 204STEP 10 CHECK_ANSWER 205ENTRY_BEGIN 206MATCH all 207REPLY QR RD RA NOERROR 208SECTION QUESTION 209www.example.com. IN A 210SECTION ANSWER 211www.example.com. IN A 10.20.30.40 212SECTION AUTHORITY 213example.com. IN NS ns.example.com. 214SECTION ADDITIONAL 215ns.example.com. IN A 1.2.3.4 216ENTRY_END 217 218; synthesize from A record 5.6.7.8 219STEP 20 QUERY 220ENTRY_BEGIN 221REPLY RD 222SECTION QUESTION 223ip4.example.com. IN AAAA 224ENTRY_END 225 226; recursion happens here. 227STEP 30 CHECK_ANSWER 228ENTRY_BEGIN 229MATCH all 230REPLY QR RD RA NOERROR 231SECTION QUESTION 232ip4.example.com. IN AAAA 233SECTION ANSWER 234ip4.example.com. IN AAAA 64:ff9b::506:708 235SECTION AUTHORITY 236example.com. IN NS ns.example.com. 237SECTION ADDITIONAL 238ns.example.com. IN A 1.2.3.4 239ENTRY_END 240 241; this node has its own ipv6 address 242STEP 40 QUERY 243ENTRY_BEGIN 244REPLY RD 245SECTION QUESTION 246ip6.example.com. IN AAAA 247ENTRY_END 248 249; recursion happens here. 250STEP 50 CHECK_ANSWER 251ENTRY_BEGIN 252MATCH all 253REPLY QR RD RA NOERROR 254SECTION QUESTION 255ip6.example.com. IN AAAA 256SECTION ANSWER 257ip6.example.com. IN AAAA 1:2:3::4 258SECTION AUTHORITY 259example.com. IN NS ns.example.com. 260SECTION ADDITIONAL 261ns.example.com. IN A 1.2.3.4 262ENTRY_END 263 264; test ptr lookup 265STEP 60 QUERY 266ENTRY_BEGIN 267REPLY RD 268SECTION QUESTION 2698.0.7.0.6.0.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.b.9.f.f.4.6.0.0.ip6.arpa. IN PTR 270ENTRY_END 271 272; recursion happens here. 273STEP 70 CHECK_ANSWER 274ENTRY_BEGIN 275MATCH all 276REPLY QR RD RA NOERROR 277SECTION QUESTION 2788.0.7.0.6.0.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.b.9.f.f.4.6.0.0.ip6.arpa. IN PTR 279SECTION ANSWER 2808.0.7.0.6.0.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.b.9.f.f.4.6.0.0.ip6.arpa. IN PTR ip4.example.com. 281SECTION AUTHORITY 2827.6.5.in-addr.arpa. IN NS ns.example.com. 283ENTRY_END 284 285; synthesize from broken, malformed A records 286STEP 80 QUERY 287ENTRY_BEGIN 288REPLY RD 289SECTION QUESTION 290broken.example.com. IN AAAA 291ENTRY_END 292 293; recursion happens here. 294STEP 90 CHECK_ANSWER 295ENTRY_BEGIN 296MATCH all 297REPLY QR RD RA NOERROR 298SECTION QUESTION 299broken.example.com. IN AAAA 300SECTION ANSWER 301SECTION AUTHORITY 302example.com. IN SOA a. b. 1 2 3 4 5 303SECTION ADDITIONAL 304ENTRY_END 305 306SCENARIO_END 307