1 ; config options 2 ; Test DNAME TTL=0 grace period: synthesis from cache within 1 second 3 ; Island of trust at example.com, DNSSEC signed DNAME with TTL=0 (RFC 2308) 4 server: 5 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b" 6 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}" 7 val-override-date: "20070916134226" 8 target-fetch-policy: "0 0 0 0 0" 9 qname-minimisation: "no" 10 fake-sha1: yes 11 trust-anchor-signaling: no 12 13 stub-zone: 14 name: "." 15 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 16 CONFIG_END 17 18 SCENARIO_BEGIN Test DNAME TTL=0 and the grace period 19 ; the grace period ends, and new data appears, while traffic queries the 20 ; store DNAME record, for synthesis. 21 22 ; K.ROOT-SERVERS.NET. 23 RANGE_BEGIN 0 100 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 subdomain 39 ADJUST copy_id copy_query 40 REPLY QR NOERROR 41 SECTION QUESTION 42 com. IN NS 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 net. IN A 55 SECTION AUTHORITY 56 net. IN NS a.gtld-servers.net. 57 SECTION ADDITIONAL 58 a.gtld-servers.net. IN A 192.5.6.30 59 ENTRY_END 60 RANGE_END 61 62 ; a.gtld-servers.net. 63 RANGE_BEGIN 0 100 64 ADDRESS 192.5.6.30 65 ENTRY_BEGIN 66 MATCH opcode qtype qname 67 ADJUST copy_id 68 REPLY QR NOERROR 69 SECTION QUESTION 70 com. IN NS 71 SECTION ANSWER 72 com. IN NS a.gtld-servers.net. 73 SECTION ADDITIONAL 74 a.gtld-servers.net. IN A 192.5.6.30 75 ENTRY_END 76 77 ENTRY_BEGIN 78 MATCH opcode qtype qname 79 ADJUST copy_id 80 REPLY QR NOERROR 81 SECTION QUESTION 82 net. IN NS 83 SECTION ANSWER 84 net. IN NS a.gtld-servers.net. 85 SECTION ADDITIONAL 86 a.gtld-servers.net. IN A 192.5.6.30 87 ENTRY_END 88 89 ENTRY_BEGIN 90 MATCH opcode subdomain 91 ADJUST copy_id copy_query 92 REPLY QR NOERROR 93 SECTION QUESTION 94 example.com. IN NS 95 SECTION AUTHORITY 96 example.com. IN NS ns.example.com. 97 SECTION ADDITIONAL 98 ns.example.com. IN A 1.2.3.4 99 ENTRY_END 100 101 ENTRY_BEGIN 102 MATCH opcode subdomain 103 ADJUST copy_id copy_query 104 REPLY QR NOERROR 105 SECTION QUESTION 106 example.net. IN A 107 SECTION AUTHORITY 108 example.net. IN NS ns.example.net. 109 SECTION ADDITIONAL 110 ns.example.net. IN A 1.2.3.5 111 ENTRY_END 112 RANGE_END 113 114 ; ns.example.com. - DNAME with TTL=0 (RRSIG Original TTL=0) 115 RANGE_BEGIN 0 100 116 ADDRESS 1.2.3.4 117 ENTRY_BEGIN 118 MATCH opcode qtype qname 119 ADJUST copy_id 120 REPLY QR NOERROR 121 SECTION QUESTION 122 example.com. IN NS 123 SECTION ANSWER 124 example.com. IN NS ns.example.com. 125 example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} 126 SECTION ADDITIONAL 127 ns.example.com. IN A 1.2.3.4 128 ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} 129 ENTRY_END 130 131 ENTRY_BEGIN 132 MATCH opcode qtype qname 133 ADJUST copy_id 134 REPLY QR NOERROR 135 SECTION QUESTION 136 example.com. IN DNSKEY 137 SECTION ANSWER 138 example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJII s70j+sDS/UT2QRp61SE7S3E EXopNXoFE73JLRmvpi/UrOO/Vz4Se 6wXv/CYCKjGw06U4WRgR YXcpEhJROyNapmdIKSx hOzfLVE1gqA0PweZR8d tY3aNQSRn3sPpwJr6Mi /PqQKAMMrZ9ckJpf1+b QMOOvxgzz2U1GS18b3y ZKcgTMEaJzd/GZYzi/B N2DzQ0MsrSwYXfsNLFO Bbs8PJMW4LYIxeeOe6rUgkWOF 7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b} 139 example.com. 3600 IN RRSIG DNSKEY DSA 2 3600 20070926134150 20070829134150 2854 example.com. MCwCFBQRtlR4BEv9ohi+PGFjp+AHsJuHAhRCvz0shggvnvI88DFnBDCczHUcVA== ;{id = 2854} 140 SECTION AUTHORITY 141 example.com. IN NS ns.example.com. 142 example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} 143 SECTION ADDITIONAL 144 ns.example.com. IN A 1.2.3.4 145 ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} 146 ENTRY_END 147 148 ; DNAME with TTL=0, RRSIG Original TTL=0 (signed with ldns-signzone) 149 ENTRY_BEGIN 150 MATCH opcode qtype qname 151 ADJUST copy_id 152 REPLY QR NOERROR 153 SECTION QUESTION 154 foo.test-dname.example.com. IN A 155 SECTION ANSWER 156 test-dname.example.com. 0 IN DNAME example.net. 157 test-dname.example.com. 0 IN RRSIG DNAME 3 3 0 20070926135752 20070829135752 2854 example.com. ADRb2Jl5SCTF2a9/5QFOCfwFzh4Cpt90pJptwrKc+vBHnlivGyPShrU= 158 foo.test-dname.example.com. 0 IN CNAME foo.example.net. 159 ENTRY_END 160 161 RANGE_END 162 163 ; ns.example.net. 164 RANGE_BEGIN 0 100 165 ADDRESS 1.2.3.5 166 ENTRY_BEGIN 167 MATCH opcode qtype qname 168 ADJUST copy_id 169 REPLY QR NOERROR 170 SECTION QUESTION 171 example.net. IN NS 172 SECTION ANSWER 173 example.net. IN NS ns.example.net. 174 example.net. 3600 IN RRSIG NS RSASHA1 2 3600 20070926134150 20070829134150 30899 example.net. E8JX0l4B+cSR5bkHQwOJy1pBmlLMTYCJ8EwfNMU/eCv0YhKwo26rHhn52FGisgv+Nwp7/NbhHqQ+kJgoZC94XA== ;{id = 30899} 175 SECTION ADDITIONAL 176 ns.example.net. IN A 1.2.3.5 177 ns.example.net. 3600 IN RRSIG A RSASHA1 3 3600 20070926134150 20070829134150 30899 example.net. x+tQMC9FhzT7Fcy1pM5NrOC7E8nLd7THPI3C6ie4EwL8PrxllqlR3q/DKB0d/m0qCOPcgN6HFOYURV1s4uAcsw== ;{id = 30899} 178 ENTRY_END 179 180 ENTRY_BEGIN 181 MATCH opcode qtype qname 182 ADJUST copy_id 183 REPLY QR NOERROR 184 SECTION QUESTION 185 example.net. IN DNSKEY 186 SECTION ANSWER 187 example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b} 188 example.net. 3600 IN RRSIG DNSKEY RSASHA1 2 3600 20070926134150 20070829134150 30899 example.net. hiFzlQ8VoYgCuvIsfVuxC3mfJDqsTh0yc6abs5xMx5uEcIjb0dndFQx7INOM+imlzveEN73Hqp4OLFpFhsWLlw== ;{id = 30899} 189 SECTION AUTHORITY 190 example.net. IN NS ns.example.net. 191 example.net. 3600 IN RRSIG NS RSASHA1 2 3600 20070926134150 20070829134150 30899 example.net. E8JX0l4B+cSR5bkHQwOJy1pBmlLMTYCJ8EwfNMU/eCv0YhKwo26rHhn52FGisgv+Nwp7/NbhHqQ+kJgoZC94XA== ;{id = 30899} 192 SECTION ADDITIONAL 193 ns.example.net. IN A 1.2.3.5 194 ns.example.net. 3600 IN RRSIG A RSASHA1 3 3600 20070926134150 20070829134150 30899 example.net. x+tQMC9FhzT7Fcy1pM5NrOC7E8nLd7THPI3C6ie4EwL8PrxllqlR3q/DKB0d/m0qCOPcgN6HFOYURV1s4uAcsw== ;{id = 30899} 195 ENTRY_END 196 197 ENTRY_BEGIN 198 MATCH opcode qtype qname 199 ADJUST copy_id 200 REPLY QR NOERROR 201 SECTION QUESTION 202 foo.example.net. IN A 203 SECTION ANSWER 204 foo.example.net. IN A 11.12.13.15 205 foo.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. X6T6SE9UzxAD/4zKpwGOxEDyE4g7lfYYw3lvw533uwRN8mWTcBvSva0/jjyhrogJcuLO32jPHK6zGb93w2xnuA== 206 SECTION AUTHORITY 207 SECTION ADDITIONAL 208 ENTRY_END 209 210 ENTRY_BEGIN 211 MATCH opcode qtype qname 212 ADJUST copy_id 213 REPLY QR NOERROR 214 SECTION QUESTION 215 foo2.example.net. IN A 216 SECTION ANSWER 217 foo2.example.net. IN A 11.12.13.16 218 foo2.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. BZm+GljD8m9N+pNJN8D+LlSyHqM+InNUe0+heKILR9be+Goqv6SEb7LKtX6+kj3239Y5by7u+/Cuk8kkWistEQ== 219 SECTION AUTHORITY 220 SECTION ADDITIONAL 221 ENTRY_END 222 RANGE_END 223 224 ; ns.example.com. - it has retracted the DNAME 225 RANGE_BEGIN 100 200 226 ADDRESS 1.2.3.4 227 ENTRY_BEGIN 228 MATCH opcode qtype qname 229 ADJUST copy_id 230 REPLY QR NOERROR 231 SECTION QUESTION 232 foo2.test-dname.example.com. IN A 233 SECTION ANSWER 234 foo2.test-dname.example.com. 3600 IN A 10.20.30.40 235 foo2.test-dname.example.com. 3600 IN RRSIG A 3 4 3600 20070926135752 20070829135752 2854 example.com. AI9LJPn/HKBYnuSTnK3Pv9eV+m3aYOa6ogB/jtUoWASLmYHXuetNFGw= 236 ENTRY_END 237 RANGE_END 238 239 STEP 1 TIME_PASSES ELAPSE 10 240 ; First query: get DNAME TTL=0 into cache 241 STEP 10 QUERY 242 ENTRY_BEGIN 243 REPLY RD DO 244 SECTION QUESTION 245 foo.test-dname.example.com. IN A 246 ENTRY_END 247 248 STEP 20 CHECK_ANSWER 249 ENTRY_BEGIN 250 MATCH all ttl 251 REPLY QR RD RA AD DO NOERROR 252 SECTION QUESTION 253 foo.test-dname.example.com. IN A 254 SECTION ANSWER 255 test-dname.example.com. 0 IN DNAME example.net. 256 test-dname.example.com. 0 IN RRSIG DNAME 3 3 0 20070926135752 20070829135752 2854 example.com. ADRb2Jl5SCTF2a9/5QFOCfwFzh4Cpt90pJptwrKc+vBHnlivGyPShrU= 257 foo.test-dname.example.com. 0 IN CNAME foo.example.net. 258 foo.example.net. IN A 11.12.13.15 259 foo.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. X6T6SE9UzxAD/4zKpwGOxEDyE4g7lfYYw3lvw533uwRN8mWTcBvSva0/jjyhrogJcuLO32jPHK6zGb93w2xnuA== 260 ENTRY_END 261 262 STEP 29 TIME_PASSES ELAPSE 0.1 263 264 ; Second query: within grace period (TIME_PASSES above) 265 ; With cache grace: synthesis from cached TTL=0 DNAME 266 STEP 30 QUERY 267 ENTRY_BEGIN 268 REPLY RD DO 269 SECTION QUESTION 270 foo2.test-dname.example.com. IN A 271 ENTRY_END 272 273 ; foo2.test-dname.example.com is not answered upstream 274 ; so this reply is synthesized by the cached (1 second grace period) DNAME 275 STEP 40 CHECK_ANSWER 276 ENTRY_BEGIN 277 MATCH all ttl 278 REPLY QR RD RA AD DO NOERROR 279 SECTION QUESTION 280 foo2.test-dname.example.com. IN A 281 SECTION ANSWER 282 test-dname.example.com. 0 IN DNAME example.net. 283 test-dname.example.com. 0 IN RRSIG DNAME 3 3 0 20070926135752 20070829135752 2854 example.com. ADRb2Jl5SCTF2a9/5QFOCfwFzh4Cpt90pJptwrKc+vBHnlivGyPShrU= 284 foo2.test-dname.example.com. 0 IN CNAME foo2.example.net. 285 foo2.example.net. 3600 IN A 11.12.13.16 286 foo2.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. BZm+GljD8m9N+pNJN8D+LlSyHqM+InNUe0+heKILR9be+Goqv6SEb7LKtX6+kj3239Y5by7u+/Cuk8kkWistEQ== 287 ENTRY_END 288 289 STEP 45 TIME_PASSES ELAPSE 0.2 290 291 STEP 46 QUERY 292 ENTRY_BEGIN 293 REPLY RD DO 294 SECTION QUESTION 295 foo2.test-dname.example.com. IN A 296 ENTRY_END 297 298 STEP 47 CHECK_ANSWER 299 ENTRY_BEGIN 300 MATCH all ttl 301 REPLY QR RD RA AD DO NOERROR 302 SECTION QUESTION 303 foo2.test-dname.example.com. IN A 304 SECTION ANSWER 305 test-dname.example.com. 0 IN DNAME example.net. 306 test-dname.example.com. 0 IN RRSIG DNAME 3 3 0 20070926135752 20070829135752 2854 example.com. ADRb2Jl5SCTF2a9/5QFOCfwFzh4Cpt90pJptwrKc+vBHnlivGyPShrU= 307 foo2.test-dname.example.com. 0 IN CNAME foo2.example.net. 308 foo2.example.net. 3600 IN A 11.12.13.16 309 foo2.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. BZm+GljD8m9N+pNJN8D+LlSyHqM+InNUe0+heKILR9be+Goqv6SEb7LKtX6+kj3239Y5by7u+/Cuk8kkWistEQ== 310 ENTRY_END 311 312 STEP 50 TIME_PASSES ELAPSE 0.5 313 314 STEP 51 QUERY 315 ENTRY_BEGIN 316 REPLY RD DO 317 SECTION QUESTION 318 foo2.test-dname.example.com. IN A 319 ENTRY_END 320 321 STEP 52 CHECK_ANSWER 322 ENTRY_BEGIN 323 MATCH all ttl 324 REPLY QR RD RA AD DO NOERROR 325 SECTION QUESTION 326 foo2.test-dname.example.com. IN A 327 SECTION ANSWER 328 test-dname.example.com. 0 IN DNAME example.net. 329 test-dname.example.com. 0 IN RRSIG DNAME 3 3 0 20070926135752 20070829135752 2854 example.com. ADRb2Jl5SCTF2a9/5QFOCfwFzh4Cpt90pJptwrKc+vBHnlivGyPShrU= 330 foo2.test-dname.example.com. 0 IN CNAME foo2.example.net. 331 foo2.example.net. 3600 IN A 11.12.13.16 332 foo2.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. BZm+GljD8m9N+pNJN8D+LlSyHqM+InNUe0+heKILR9be+Goqv6SEb7LKtX6+kj3239Y5by7u+/Cuk8kkWistEQ== 333 ENTRY_END 334 335 STEP 55 TIME_PASSES ELAPSE 0.5 336 337 STEP 56 QUERY 338 ENTRY_BEGIN 339 REPLY RD DO 340 SECTION QUESTION 341 foo2.test-dname.example.com. IN A 342 ENTRY_END 343 344 STEP 57 CHECK_ANSWER 345 ENTRY_BEGIN 346 MATCH all ttl 347 REPLY QR RD RA AD DO NOERROR 348 SECTION QUESTION 349 foo2.test-dname.example.com. IN A 350 SECTION ANSWER 351 test-dname.example.com. 0 IN DNAME example.net. 352 test-dname.example.com. 0 IN RRSIG DNAME 3 3 0 20070926135752 20070829135752 2854 example.com. ADRb2Jl5SCTF2a9/5QFOCfwFzh4Cpt90pJptwrKc+vBHnlivGyPShrU= 353 foo2.test-dname.example.com. 0 IN CNAME foo2.example.net. 354 foo2.example.net. 3599 IN A 11.12.13.16 355 foo2.example.net. 3599 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. BZm+GljD8m9N+pNJN8D+LlSyHqM+InNUe0+heKILR9be+Goqv6SEb7LKtX6+kj3239Y5by7u+/Cuk8kkWistEQ== 356 ENTRY_END 357 358 ; upstream has new DNAME record to check. 359 STEP 110 TIME_PASSES ELAPSE 0.8 360 361 STEP 111 QUERY 362 ENTRY_BEGIN 363 REPLY RD DO 364 SECTION QUESTION 365 foo2.test-dname.example.com. IN A 366 ENTRY_END 367 368 STEP 112 CHECK_ANSWER 369 ENTRY_BEGIN 370 MATCH all ttl 371 REPLY QR RD RA AD DO NOERROR 372 SECTION QUESTION 373 foo2.test-dname.example.com. IN A 374 SECTION ANSWER 375 foo2.test-dname.example.com. 3600 IN A 10.20.30.40 376 foo2.test-dname.example.com. 3600 IN RRSIG A 3 4 3600 20070926135752 20070829135752 2854 example.com. AI9LJPn/HKBYnuSTnK3Pv9eV+m3aYOa6ogB/jtUoWASLmYHXuetNFGw= 377 ENTRY_END 378 SCENARIO_END 379