1 ; config options 2 server: 3 target-fetch-policy: "0 0 0 0 0" 4 qname-minimisation: "no" 5 module-config: "dns64 validator iterator" 6 dns64-prefix: 64:ff9b::0/96 7 dns64-ignore-aaaa: ip6ignore.example.com 8 dns64-ignore-aaaa: ip6only.example.com 9 minimal-responses: no 10 11 stub-zone: 12 name: "." 13 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 14 CONFIG_END 15 16 SCENARIO_BEGIN Test dns64 lookup and synthesis. 17 ; normal A lookup should still succeed 18 ; AAAA is synthesized if not present. 19 ; AAAA if present, is passed through unchanged. 20 ; AAAA if present (but configured to be ignored) but no A, AAAA is passed through unchanged. 21 22 ; K.ROOT-SERVERS.NET. 23 RANGE_BEGIN 0 200 24 ADDRESS 193.0.14.129 25 ENTRY_BEGIN 26 MATCH opcode qtype qname 27 ADJUST copy_id 28 REPLY QR NOERROR 29 SECTION QUESTION 30 . IN NS 31 SECTION ANSWER 32 . IN NS K.ROOT-SERVERS.NET. 33 SECTION ADDITIONAL 34 K.ROOT-SERVERS.NET. IN A 193.0.14.129 35 ENTRY_END 36 37 ENTRY_BEGIN 38 MATCH opcode qtype qname 39 ADJUST copy_id 40 REPLY QR NOERROR 41 SECTION QUESTION 42 www.example.com. IN A 43 SECTION AUTHORITY 44 com. IN NS a.gtld-servers.net. 45 SECTION ADDITIONAL 46 a.gtld-servers.net. IN A 192.5.6.30 47 ENTRY_END 48 49 ENTRY_BEGIN 50 MATCH opcode subdomain 51 ADJUST copy_id copy_query 52 REPLY QR NOERROR 53 SECTION QUESTION 54 7.6.5.in-addr.arpa. IN A 55 SECTION AUTHORITY 56 7.6.5.in-addr.arpa. IN NS ns.example.com. 57 SECTION ADDITIONAL 58 ns.example.com. IN A 1.2.3.4 59 ENTRY_END 60 61 RANGE_END 62 63 ; a.gtld-servers.net. 64 RANGE_BEGIN 0 200 65 ADDRESS 192.5.6.30 66 ENTRY_BEGIN 67 MATCH opcode qtype qname 68 ADJUST copy_id 69 REPLY QR NOERROR 70 SECTION QUESTION 71 com. IN NS 72 SECTION ANSWER 73 com. IN NS a.gtld-servers.net. 74 SECTION ADDITIONAL 75 a.gtld-servers.net. IN A 192.5.6.30 76 ENTRY_END 77 78 ENTRY_BEGIN 79 MATCH opcode qtype qname 80 ADJUST copy_id 81 REPLY QR NOERROR 82 SECTION QUESTION 83 www.example.com. IN A 84 SECTION AUTHORITY 85 example.com. IN NS ns.example.com. 86 SECTION ADDITIONAL 87 ns.example.com. IN A 1.2.3.4 88 ENTRY_END 89 RANGE_END 90 91 ; ns.example.com. 92 RANGE_BEGIN 0 200 93 ADDRESS 1.2.3.4 94 ENTRY_BEGIN 95 MATCH opcode qtype qname 96 ADJUST copy_id 97 REPLY QR NOERROR 98 SECTION QUESTION 99 example.com. IN NS 100 SECTION ANSWER 101 example.com. IN NS ns.example.com. 102 SECTION ADDITIONAL 103 ns.example.com. IN A 1.2.3.4 104 ENTRY_END 105 106 ENTRY_BEGIN 107 MATCH opcode qtype qname 108 ADJUST copy_id 109 REPLY QR NOERROR 110 SECTION QUESTION 111 www.example.com. IN A 112 SECTION ANSWER 113 www.example.com. IN A 10.20.30.40 114 SECTION AUTHORITY 115 example.com. IN NS ns.example.com. 116 SECTION ADDITIONAL 117 ns.example.com. IN A 1.2.3.4 118 ENTRY_END 119 120 ENTRY_BEGIN 121 MATCH opcode qtype qname 122 ADJUST copy_id 123 REPLY QR NOERROR 124 SECTION QUESTION 125 ip4.example.com. IN AAAA 126 SECTION ANSWER 127 ; NO AAAA present 128 SECTION AUTHORITY 129 example.com. IN SOA a. b. 1 2 3 4 5 130 ENTRY_END 131 132 ENTRY_BEGIN 133 MATCH opcode qtype qname 134 ADJUST copy_id 135 REPLY QR NOERROR 136 SECTION QUESTION 137 ip4.example.com. IN A 138 SECTION ANSWER 139 ip4.example.com. IN A 5.6.7.8 140 SECTION AUTHORITY 141 example.com. IN NS ns.example.com. 142 SECTION ADDITIONAL 143 ns.example.com. IN A 1.2.3.4 144 ENTRY_END 145 146 ENTRY_BEGIN 147 MATCH opcode qtype qname 148 ADJUST copy_id 149 REPLY QR NOERROR 150 SECTION QUESTION 151 ip6.example.com. IN AAAA 152 SECTION ANSWER 153 ip6.example.com. IN AAAA 1:2:3::4 154 SECTION AUTHORITY 155 example.com. IN NS ns.example.com. 156 SECTION ADDITIONAL 157 ns.example.com. IN A 1.2.3.4 158 ENTRY_END 159 160 ENTRY_BEGIN 161 MATCH opcode qtype qname 162 ADJUST copy_id 163 REPLY QR NOERROR 164 SECTION QUESTION 165 ip6ignore.example.com. IN AAAA 166 SECTION ANSWER 167 ip6ignore.example.com. IN AAAA 1:2:3::4 168 SECTION AUTHORITY 169 example.com. IN NS ns.example.com. 170 SECTION ADDITIONAL 171 ns.example.com. IN A 1.2.3.4 172 ENTRY_END 173 174 ENTRY_BEGIN 175 MATCH opcode qtype qname 176 ADJUST copy_id 177 REPLY QR NOERROR 178 SECTION QUESTION 179 ip6ignore.example.com. IN A 180 SECTION ANSWER 181 ip6ignore.example.com. IN A 5.6.7.8 182 SECTION AUTHORITY 183 example.com. IN NS ns.example.com. 184 SECTION ADDITIONAL 185 ns.example.com. IN A 1.2.3.4 186 ENTRY_END 187 188 ENTRY_BEGIN 189 MATCH opcode qtype qname 190 ADJUST copy_id 191 REPLY QR NOERROR 192 SECTION QUESTION 193 ip6only.example.com. IN AAAA 194 SECTION ANSWER 195 ip6only.example.com. IN AAAA 1:2:3::4 196 SECTION AUTHORITY 197 example.com. IN NS ns.example.com. 198 SECTION ADDITIONAL 199 ns.example.com. IN A 1.2.3.4 200 ENTRY_END 201 202 ENTRY_BEGIN 203 MATCH opcode qtype qname 204 ADJUST copy_id 205 REPLY QR NOERROR 206 SECTION QUESTION 207 ip6only.example.com. IN A 208 SECTION ANSWER 209 ; NO A present 210 SECTION AUTHORITY 211 example.com. IN SOA a. b. 1 2 3 4 5 212 ENTRY_END 213 214 215 ENTRY_BEGIN 216 MATCH opcode qtype qname 217 ADJUST copy_id 218 REPLY QR NOERROR 219 SECTION QUESTION 220 8.7.6.5.in-addr.arpa. IN PTR 221 SECTION ANSWER 222 8.7.6.5.in-addr.arpa. PTR ip4.example.com. 223 SECTION AUTHORITY 224 7.6.5.in-addr.arpa. IN NS ns.example.com. 225 ENTRY_END 226 227 RANGE_END 228 229 STEP 1 QUERY 230 ENTRY_BEGIN 231 REPLY RD 232 SECTION QUESTION 233 www.example.com. IN A 234 ENTRY_END 235 236 ; recursion happens here. 237 STEP 10 CHECK_ANSWER 238 ENTRY_BEGIN 239 MATCH all 240 REPLY QR RD RA NOERROR 241 SECTION QUESTION 242 www.example.com. IN A 243 SECTION ANSWER 244 www.example.com. IN A 10.20.30.40 245 SECTION AUTHORITY 246 example.com. IN NS ns.example.com. 247 SECTION ADDITIONAL 248 ns.example.com. IN A 1.2.3.4 249 ENTRY_END 250 251 ; synthesize from A record 5.6.7.8 252 STEP 20 QUERY 253 ENTRY_BEGIN 254 REPLY RD 255 SECTION QUESTION 256 ip4.example.com. IN AAAA 257 ENTRY_END 258 259 ; recursion happens here. 260 STEP 30 CHECK_ANSWER 261 ENTRY_BEGIN 262 MATCH all 263 REPLY QR RD RA NOERROR 264 SECTION QUESTION 265 ip4.example.com. IN AAAA 266 SECTION ANSWER 267 ip4.example.com. IN AAAA 64:ff9b::506:708 268 SECTION AUTHORITY 269 example.com. IN NS ns.example.com. 270 SECTION ADDITIONAL 271 ns.example.com. IN A 1.2.3.4 272 ENTRY_END 273 274 ; this node has its own ipv6 address 275 STEP 40 QUERY 276 ENTRY_BEGIN 277 REPLY RD 278 SECTION QUESTION 279 ip6.example.com. IN AAAA 280 ENTRY_END 281 282 ; recursion happens here. 283 STEP 50 CHECK_ANSWER 284 ENTRY_BEGIN 285 MATCH all 286 REPLY QR RD RA NOERROR 287 SECTION QUESTION 288 ip6.example.com. IN AAAA 289 SECTION ANSWER 290 ip6.example.com. IN AAAA 1:2:3::4 291 SECTION AUTHORITY 292 example.com. IN NS ns.example.com. 293 SECTION ADDITIONAL 294 ns.example.com. IN A 1.2.3.4 295 ENTRY_END 296 297 ; test ptr lookup 298 STEP 60 QUERY 299 ENTRY_BEGIN 300 REPLY RD 301 SECTION QUESTION 302 8.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 303 ENTRY_END 304 305 ; recursion happens here. 306 STEP 70 CHECK_ANSWER 307 ENTRY_BEGIN 308 MATCH all 309 REPLY QR RD RA NOERROR 310 SECTION QUESTION 311 8.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 312 SECTION ANSWER 313 8.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. 314 SECTION AUTHORITY 315 7.6.5.in-addr.arpa. IN NS ns.example.com. 316 ENTRY_END 317 318 ; ignore AAAA and synthesize from A record 5.6.7.8 319 STEP 80 QUERY 320 ENTRY_BEGIN 321 REPLY RD 322 SECTION QUESTION 323 ip6ignore.example.com. IN AAAA 324 ENTRY_END 325 326 ; recursion happens here. 327 STEP 90 CHECK_ANSWER 328 ENTRY_BEGIN 329 MATCH all 330 REPLY QR RD RA NOERROR 331 SECTION QUESTION 332 ip6ignore.example.com. IN AAAA 333 SECTION ANSWER 334 ip6ignore.example.com. IN AAAA 64:ff9b::506:708 335 SECTION AUTHORITY 336 example.com. IN NS ns.example.com. 337 SECTION ADDITIONAL 338 ns.example.com. IN A 1.2.3.4 339 ENTRY_END 340 341 ; try to ignore AAAA but no A record to synthesize, fallback to AAAA 342 STEP 100 QUERY 343 ENTRY_BEGIN 344 REPLY RD 345 SECTION QUESTION 346 ip6only.example.com. IN AAAA 347 ENTRY_END 348 349 ; recursion happens here. 350 STEP 110 CHECK_ANSWER 351 ENTRY_BEGIN 352 MATCH all 353 REPLY QR RD RA NOERROR 354 SECTION QUESTION 355 ip6only.example.com. IN AAAA 356 SECTION ANSWER 357 ip6only.example.com. IN AAAA 1:2:3::4 358 SECTION AUTHORITY 359 example.com. IN NS ns.example.com. 360 SECTION ADDITIONAL 361 ns.example.com. IN A 1.2.3.4 362 ENTRY_END 363 364 SCENARIO_END 365