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