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