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 christos qname-minimisation: no 5 1.1 christos minimal-responses: no 6 1.1 christos serve-expired: yes 7 1.1.1.2 christos serve-expired-reply-ttl: 123 8 1.1 christos 9 1.1 christos ; disable the serve expired client timeout. 10 1.1 christos serve-expired-client-timeout: 0 11 1.1 christos send-client-subnet: 1.2.3.4 12 1.1 christos max-client-subnet-ipv4: 17 13 1.1 christos ; subnetcache is to the left of cachedb, because it sets no cache 14 1.1 christos ; store for edns subnet content for modules to the right of it. 15 1.1 christos ; this keeps subnet content out of cachedb as global content. 16 1.1 christos module-config: "subnetcache cachedb iterator" 17 1.1.1.2 christos ede: yes 18 1.1.1.2 christos ede-serve-expired: yes 19 1.1 christos 20 1.1 christos cachedb: 21 1.1 christos backend: "testframe" 22 1.1 christos secret-seed: "testvalue" 23 1.1 christos cachedb-check-when-serve-expired: yes 24 1.1 christos 25 1.1 christos stub-zone: 26 1.1 christos name: "." 27 1.1 christos stub-addr: 193.0.14.129 28 1.1 christos CONFIG_END 29 1.1 christos 30 1.1 christos SCENARIO_BEGIN Test cachedb, subnet and serve-expired, with a domain change from global to subnet. 31 1.1 christos ; So the CNAME first points to a global record, then points to a subnet record. 32 1.1 christos 33 1.1 christos ; K.ROOT-SERVERS.NET. 34 1.1 christos RANGE_BEGIN 0 400 35 1.1 christos ADDRESS 193.0.14.129 36 1.1 christos ENTRY_BEGIN 37 1.1 christos MATCH opcode qtype qname 38 1.1 christos ADJUST copy_id 39 1.1 christos REPLY QR NOERROR 40 1.1 christos SECTION QUESTION 41 1.1 christos . IN NS 42 1.1 christos SECTION ANSWER 43 1.1 christos . IN NS K.ROOT-SERVERS.NET. 44 1.1 christos SECTION ADDITIONAL 45 1.1 christos K.ROOT-SERVERS.NET. IN A 193.0.14.129 46 1.1 christos ENTRY_END 47 1.1 christos 48 1.1 christos ENTRY_BEGIN 49 1.1 christos MATCH opcode subdomain 50 1.1 christos ADJUST copy_id copy_query 51 1.1 christos REPLY QR NOERROR 52 1.1 christos SECTION QUESTION 53 1.1 christos com. IN NS 54 1.1 christos SECTION AUTHORITY 55 1.1 christos com. IN NS a.gtld-servers.net. 56 1.1 christos SECTION ADDITIONAL 57 1.1 christos a.gtld-servers.net. IN A 192.5.6.30 58 1.1 christos ENTRY_END 59 1.1 christos RANGE_END 60 1.1 christos 61 1.1 christos ; a.gtld-servers.net. 62 1.1 christos RANGE_BEGIN 0 400 63 1.1 christos ADDRESS 192.5.6.30 64 1.1 christos ENTRY_BEGIN 65 1.1 christos MATCH opcode subdomain 66 1.1 christos ADJUST copy_id copy_query 67 1.1 christos REPLY QR NOERROR 68 1.1 christos SECTION QUESTION 69 1.1 christos example.com. IN NS 70 1.1 christos SECTION AUTHORITY 71 1.1 christos example.com. IN NS ns2.example.com. 72 1.1 christos SECTION ADDITIONAL 73 1.1 christos ns2.example.com. IN A 1.2.3.5 74 1.1 christos ENTRY_END 75 1.1 christos 76 1.1 christos ENTRY_BEGIN 77 1.1 christos MATCH opcode subdomain 78 1.1 christos ADJUST copy_id copy_query 79 1.1 christos REPLY QR NOERROR 80 1.1 christos SECTION QUESTION 81 1.1 christos foo.com. IN NS 82 1.1 christos SECTION AUTHORITY 83 1.1 christos foo.com. IN NS ns.foo.com. 84 1.1 christos SECTION ADDITIONAL 85 1.1 christos ns.foo.com. IN A 1.2.3.4 86 1.1 christos ENTRY_END 87 1.1 christos 88 1.1 christos ENTRY_BEGIN 89 1.1 christos MATCH opcode subdomain 90 1.1 christos ADJUST copy_id copy_query 91 1.1 christos REPLY QR NOERROR 92 1.1 christos SECTION QUESTION 93 1.1 christos initial.com. IN NS 94 1.1 christos SECTION AUTHORITY 95 1.1 christos initial.com. IN NS ns.initial.com. 96 1.1 christos SECTION ADDITIONAL 97 1.1 christos ns.initial.com. IN A 1.2.3.6 98 1.1 christos ENTRY_END 99 1.1 christos RANGE_END 100 1.1 christos 101 1.1 christos ; ns2.example.com. 102 1.1 christos RANGE_BEGIN 0 30 103 1.1 christos ADDRESS 1.2.3.5 104 1.1 christos ENTRY_BEGIN 105 1.1 christos MATCH opcode qname qtype 106 1.1 christos REPLY QR AA NOERROR 107 1.1 christos SECTION QUESTION 108 1.1 christos www.example.com. IN A 109 1.1 christos SECTION ANSWER 110 1.1.1.2 christos www.example.com. 200 IN CNAME www.initial.com. 111 1.1 christos ENTRY_END 112 1.1 christos RANGE_END 113 1.1 christos 114 1.1 christos ; ns2.example.com. - after change 115 1.1 christos RANGE_BEGIN 40 80 116 1.1 christos ADDRESS 1.2.3.5 117 1.1 christos ENTRY_BEGIN 118 1.1 christos MATCH opcode qname qtype 119 1.1 christos REPLY QR AA NOERROR 120 1.1 christos SECTION QUESTION 121 1.1 christos www.example.com. IN A 122 1.1 christos SECTION ANSWER 123 1.1.1.2 christos www.example.com. 200 IN CNAME example.foo.com. 124 1.1 christos ENTRY_END 125 1.1 christos RANGE_END 126 1.1 christos 127 1.1 christos ; ns.initial.com. 128 1.1 christos RANGE_BEGIN 0 400 129 1.1 christos ADDRESS 1.2.3.6 130 1.1 christos ENTRY_BEGIN 131 1.1 christos MATCH opcode qname qtype 132 1.1 christos REPLY QR AA NOERROR 133 1.1 christos SECTION QUESTION 134 1.1 christos www.initial.com. IN A 135 1.1 christos SECTION ANSWER 136 1.1.1.2 christos www.initial.com. 200 IN A 1.2.3.4 137 1.1 christos ENTRY_END 138 1.1 christos RANGE_END 139 1.1 christos 140 1.1 christos ; ns.foo.com. 141 1.1 christos RANGE_BEGIN 40 80 142 1.1 christos ADDRESS 1.2.3.4 143 1.1 christos ENTRY_BEGIN 144 1.1 christos MATCH opcode qname qtype ednsdata 145 1.1 christos REPLY QR AA NOERROR 146 1.1 christos SECTION QUESTION 147 1.1 christos example.foo.com. IN A 148 1.1 christos SECTION ANSWER 149 1.1.1.2 christos example.foo.com. 200 IN A 1.2.3.5 150 1.1 christos SECTION ADDITIONAL 151 1.1 christos HEX_EDNSDATA_BEGIN 152 1.1 christos ; client is 127.0.0.1 153 1.1 christos 00 08 ; OPC 154 1.1 christos 00 07 ; option length 155 1.1 christos 00 01 ; Family 156 1.1 christos 11 00 ; source mask, scopemask 157 1.1 christos 7f 00 00 ; address 158 1.1 christos HEX_EDNSDATA_END 159 1.1 christos ENTRY_END 160 1.1 christos RANGE_END 161 1.1 christos 162 1.1 christos ; ns2.example.com. - later 163 1.1 christos RANGE_BEGIN 90 200 164 1.1 christos ADDRESS 1.2.3.5 165 1.1 christos ENTRY_BEGIN 166 1.1 christos MATCH opcode qname qtype 167 1.1 christos REPLY QR AA NOERROR 168 1.1 christos SECTION QUESTION 169 1.1 christos www.example.com. IN A 170 1.1 christos SECTION ANSWER 171 1.1.1.2 christos www.example.com. 200 IN CNAME example.foo.com. 172 1.1 christos ENTRY_END 173 1.1 christos RANGE_END 174 1.1 christos 175 1.1 christos ; ns.foo.com. - later 176 1.1 christos RANGE_BEGIN 90 200 177 1.1 christos ADDRESS 1.2.3.4 178 1.1 christos ENTRY_BEGIN 179 1.1 christos MATCH opcode qname qtype ednsdata 180 1.1 christos REPLY QR AA NOERROR 181 1.1 christos SECTION QUESTION 182 1.1 christos example.foo.com. IN A 183 1.1 christos SECTION ANSWER 184 1.1.1.2 christos example.foo.com. 200 IN A 1.2.3.6 185 1.1 christos SECTION ADDITIONAL 186 1.1 christos HEX_EDNSDATA_BEGIN 187 1.1 christos ; client is 127.0.0.1 188 1.1 christos 00 08 ; OPC 189 1.1 christos 00 07 ; option length 190 1.1 christos 00 01 ; Family 191 1.1 christos 11 00 ; source mask, scopemask 192 1.1 christos 7f 00 00 ; address 193 1.1 christos HEX_EDNSDATA_END 194 1.1 christos ENTRY_END 195 1.1 christos RANGE_END 196 1.1 christos 197 1.1 christos ; make time not 0 198 1.1 christos STEP 2 TIME_PASSES ELAPSE 212 199 1.1 christos 200 1.1 christos ; Get an entry in cache. 201 1.1 christos STEP 4 QUERY 202 1.1 christos ENTRY_BEGIN 203 1.1 christos REPLY RD 204 1.1 christos SECTION QUESTION 205 1.1 christos www.example.com. IN A 206 1.1 christos ENTRY_END 207 1.1 christos 208 1.1 christos ; get the answer for it 209 1.1 christos STEP 10 CHECK_ANSWER 210 1.1 christos ENTRY_BEGIN 211 1.1 christos MATCH all ttl 212 1.1 christos REPLY QR RD RA NOERROR 213 1.1 christos SECTION QUESTION 214 1.1 christos www.example.com. IN A 215 1.1 christos SECTION ANSWER 216 1.1.1.2 christos www.example.com. 200 IN CNAME www.initial.com. 217 1.1.1.2 christos www.initial.com. 200 IN A 1.2.3.4 218 1.1 christos ENTRY_END 219 1.1 christos 220 1.1 christos ; now valid in cache and valid in cachedb, without subnet. 221 1.1.1.2 christos STEP 30 TIME_PASSES ELAPSE 200 222 1.1 christos 223 1.1 christos ; now the cache and cachedb have an expired entry. 224 1.1 christos ; the upstream is updated to CNAME to a subnet zone A record. 225 1.1 christos 226 1.1 christos STEP 40 QUERY ADDRESS 127.0.0.1 227 1.1 christos ENTRY_BEGIN 228 1.1.1.2 christos REPLY RD DO 229 1.1 christos SECTION QUESTION 230 1.1 christos www.example.com. IN A 231 1.1 christos ENTRY_END 232 1.1 christos 233 1.1 christos ; the expired answer, while the ECS answer is looked up. 234 1.1 christos STEP 50 CHECK_ANSWER 235 1.1 christos ENTRY_BEGIN 236 1.1.1.2 christos MATCH all ttl ede=3 237 1.1.1.2 christos REPLY QR RD RA DO NOERROR 238 1.1 christos SECTION QUESTION 239 1.1 christos www.example.com. IN A 240 1.1 christos SECTION ANSWER 241 1.1.1.2 christos www.example.com. 123 IN CNAME www.initial.com. 242 1.1.1.2 christos www.initial.com. 123 IN A 1.2.3.4 243 1.1 christos ENTRY_END 244 1.1 christos 245 1.1 christos ; check that subnet has the query in cache. 246 1.1 christos STEP 58 TIME_PASSES ELAPSE 2 247 1.1 christos STEP 60 QUERY ADDRESS 127.0.0.1 248 1.1 christos ENTRY_BEGIN 249 1.1 christos REPLY RD 250 1.1 christos SECTION QUESTION 251 1.1 christos www.example.com. IN A 252 1.1 christos ENTRY_END 253 1.1 christos 254 1.1 christos STEP 70 CHECK_ANSWER 255 1.1 christos ENTRY_BEGIN 256 1.1 christos MATCH all 257 1.1 christos REPLY QR RD RA NOERROR 258 1.1 christos SECTION QUESTION 259 1.1 christos www.example.com. IN A 260 1.1 christos SECTION ANSWER 261 1.1.1.2 christos www.example.com. 198 IN CNAME example.foo.com. 262 1.1.1.2 christos example.foo.com. 198 IN A 1.2.3.5 263 1.1 christos ENTRY_END 264 1.1 christos 265 1.1 christos ; everything is expired, cache, subnetcache and cachedb. 266 1.1.1.2 christos STEP 80 TIME_PASSES ELAPSE 200 267 1.1 christos 268 1.1 christos STEP 90 QUERY ADDRESS 127.0.0.1 269 1.1 christos ENTRY_BEGIN 270 1.1 christos REPLY RD 271 1.1 christos SECTION QUESTION 272 1.1 christos www.example.com. IN A 273 1.1 christos ENTRY_END 274 1.1 christos 275 1.1 christos STEP 100 CHECK_ANSWER 276 1.1 christos ENTRY_BEGIN 277 1.1 christos MATCH all 278 1.1 christos REPLY QR RD RA NOERROR 279 1.1 christos SECTION QUESTION 280 1.1 christos www.example.com. IN A 281 1.1 christos SECTION ANSWER 282 1.1.1.2 christos www.example.com. 200 IN CNAME example.foo.com. 283 1.1.1.2 christos example.foo.com. 200 IN A 1.2.3.6 284 1.1 christos ENTRY_END 285 1.1 christos 286 1.1 christos ; see the entry now in cache, from the subnetcache. 287 1.1 christos STEP 142 TIME_PASSES ELAPSE 2 288 1.1 christos STEP 150 QUERY ADDRESS 127.0.0.1 289 1.1 christos ENTRY_BEGIN 290 1.1 christos REPLY RD 291 1.1 christos SECTION QUESTION 292 1.1 christos www.example.com. IN A 293 1.1 christos ENTRY_END 294 1.1 christos 295 1.1 christos STEP 160 CHECK_ANSWER 296 1.1 christos ENTRY_BEGIN 297 1.1 christos MATCH all 298 1.1 christos REPLY QR RD RA NOERROR 299 1.1 christos SECTION QUESTION 300 1.1 christos www.example.com. IN A 301 1.1 christos SECTION ANSWER 302 1.1.1.2 christos www.example.com. 198 IN CNAME example.foo.com. 303 1.1.1.2 christos example.foo.com. 198 IN A 1.2.3.6 304 1.1 christos ENTRY_END 305 1.1 christos 306 1.1 christos SCENARIO_END 307