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