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: 30
      8 	; at least one second, so we can time skip past the timer in the
      9 	; testbound script steps, but also reply within the time.
     10 	serve-expired-client-timeout: 1200
     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 
     18 cachedb:
     19 	backend: "testframe"
     20 	secret-seed: "testvalue"
     21 	cachedb-check-when-serve-expired: yes
     22 
     23 stub-zone:
     24 	name: "."
     25 	stub-addr: 193.0.14.129
     26 CONFIG_END
     27 
     28 SCENARIO_BEGIN Test cachedb, subnet and serve-expired, with a domain change from global to subnet with serve-expired-client-timeout enabled.
     29 ; So the CNAME first points to a global record, then points to a subnet record.
     30 
     31 ; K.ROOT-SERVERS.NET.
     32 RANGE_BEGIN 0 400
     33 	ADDRESS 193.0.14.129
     34 ENTRY_BEGIN
     35 MATCH opcode qtype qname
     36 ADJUST copy_id
     37 REPLY QR NOERROR
     38 SECTION QUESTION
     39 . IN NS
     40 SECTION ANSWER
     41 . IN NS K.ROOT-SERVERS.NET.
     42 SECTION ADDITIONAL
     43 K.ROOT-SERVERS.NET.     IN      A       193.0.14.129
     44 ENTRY_END
     45 
     46 ENTRY_BEGIN
     47 MATCH opcode subdomain
     48 ADJUST copy_id copy_query
     49 REPLY QR NOERROR
     50 SECTION QUESTION
     51 com. IN NS
     52 SECTION AUTHORITY
     53 com. IN NS a.gtld-servers.net.
     54 SECTION ADDITIONAL
     55 a.gtld-servers.net.	IN	A	192.5.6.30
     56 ENTRY_END
     57 RANGE_END
     58 
     59 ; a.gtld-servers.net.
     60 RANGE_BEGIN 0 400
     61 	ADDRESS 192.5.6.30
     62 ENTRY_BEGIN
     63 MATCH opcode subdomain
     64 ADJUST copy_id copy_query
     65 REPLY QR NOERROR
     66 SECTION QUESTION
     67 example.com. IN NS
     68 SECTION AUTHORITY
     69 example.com. IN NS ns2.example.com.
     70 SECTION ADDITIONAL
     71 ns2.example.com.	IN	A	1.2.3.5
     72 ENTRY_END
     73 
     74 ENTRY_BEGIN
     75 MATCH opcode subdomain
     76 ADJUST copy_id copy_query
     77 REPLY QR NOERROR
     78 SECTION QUESTION
     79 foo.com. IN NS
     80 SECTION AUTHORITY
     81 foo.com. IN NS ns.foo.com.
     82 SECTION ADDITIONAL
     83 ns.foo.com.	IN	A	1.2.3.4
     84 ENTRY_END
     85 
     86 ENTRY_BEGIN
     87 MATCH opcode subdomain
     88 ADJUST copy_id copy_query
     89 REPLY QR NOERROR
     90 SECTION QUESTION
     91 initial.com. IN NS
     92 SECTION AUTHORITY
     93 initial.com. IN NS ns.initial.com.
     94 SECTION ADDITIONAL
     95 ns.initial.com.	IN	A	1.2.3.6
     96 ENTRY_END
     97 RANGE_END
     98 
     99 ; ns2.example.com.
    100 RANGE_BEGIN 0 30
    101 	ADDRESS 1.2.3.5
    102 ENTRY_BEGIN
    103 MATCH opcode qname qtype
    104 REPLY QR AA NOERROR
    105 SECTION QUESTION
    106 www.example.com. IN A
    107 SECTION ANSWER
    108 www.example.com. 10 IN CNAME www.initial.com.
    109 ENTRY_END
    110 RANGE_END
    111 
    112 ; ns2.example.com. - after change
    113 RANGE_BEGIN 40 100
    114 	ADDRESS 1.2.3.5
    115 ENTRY_BEGIN
    116 MATCH opcode qname qtype
    117 REPLY QR AA NOERROR
    118 SECTION QUESTION
    119 www.example.com. IN A
    120 SECTION ANSWER
    121 www.example.com. 10 IN CNAME example.foo.com.
    122 ENTRY_END
    123 RANGE_END
    124 
    125 ; ns.initial.com.
    126 RANGE_BEGIN 0 400
    127 	ADDRESS 1.2.3.6
    128 ENTRY_BEGIN
    129 MATCH opcode qname qtype
    130 REPLY QR AA NOERROR
    131 SECTION QUESTION
    132 www.initial.com. IN A
    133 SECTION ANSWER
    134 www.initial.com. 10 IN A 1.2.3.4
    135 ENTRY_END
    136 RANGE_END
    137 
    138 ; ns.foo.com.
    139 RANGE_BEGIN 40 100
    140 	ADDRESS 1.2.3.4
    141 ENTRY_BEGIN
    142 MATCH opcode qname qtype ednsdata
    143 REPLY QR AA NOERROR
    144 SECTION QUESTION
    145 example.foo.com. IN A
    146 SECTION ANSWER
    147 example.foo.com. 10 IN A 1.2.3.5
    148 SECTION ADDITIONAL
    149 	HEX_EDNSDATA_BEGIN
    150 				; client is 127.0.0.1
    151 		00 08 		; OPC
    152 		00 07 		; option length
    153 		00 01 		; Family
    154 		11 00 		; source mask, scopemask
    155 		7f 00 00 	; address
    156 	HEX_EDNSDATA_END
    157 ENTRY_END
    158 RANGE_END
    159 
    160 ; make time not 0
    161 STEP 2 TIME_PASSES ELAPSE 212
    162 
    163 ; Get an entry in cache.
    164 STEP 4 QUERY
    165 ENTRY_BEGIN
    166 REPLY RD
    167 SECTION QUESTION
    168 www.example.com. IN A
    169 ENTRY_END
    170 
    171 ; get the answer for it
    172 STEP 10 CHECK_ANSWER
    173 ENTRY_BEGIN
    174 MATCH all ttl
    175 REPLY QR RD RA NOERROR
    176 SECTION QUESTION
    177 www.example.com. IN A
    178 SECTION ANSWER
    179 www.example.com. 10 IN CNAME www.initial.com.
    180 www.initial.com. 10 IN A 1.2.3.4
    181 ENTRY_END
    182 
    183 ; now valid in cache and valid in cachedb, without subnet.
    184 STEP 30 TIME_PASSES ELAPSE 20
    185 
    186 ; now the cache and cachedb have an expired entry.
    187 ; the upstream is updated to CNAME to a subnet zone A record.
    188 
    189 STEP 40 QUERY ADDRESS 127.0.0.1
    190 ENTRY_BEGIN
    191 REPLY RD
    192 SECTION QUESTION
    193 www.example.com. IN A
    194 ENTRY_END
    195 
    196 ; this answer is returned by the subnet lookup within
    197 ; the serve-expired-client-timeout.
    198 STEP 50 CHECK_ANSWER
    199 ENTRY_BEGIN
    200 MATCH all ttl
    201 REPLY QR RD RA NOERROR
    202 SECTION QUESTION
    203 www.example.com. IN A
    204 SECTION ANSWER
    205 www.example.com. 10 IN CNAME example.foo.com.
    206 example.foo.com. 10 IN A 1.2.3.5
    207 ENTRY_END
    208 
    209 ; check that subnet has the query in cache.
    210 STEP 58 TIME_PASSES ELAPSE 2
    211 STEP 60 QUERY ADDRESS 127.0.0.1
    212 ENTRY_BEGIN
    213 REPLY RD
    214 SECTION QUESTION
    215 www.example.com. IN A
    216 ENTRY_END
    217 
    218 STEP 70 CHECK_ANSWER
    219 ENTRY_BEGIN
    220 MATCH all
    221 REPLY QR RD RA NOERROR
    222 SECTION QUESTION
    223 www.example.com. IN A
    224 SECTION ANSWER
    225 www.example.com. 8 IN CNAME example.foo.com.
    226 example.foo.com. 8 IN A 1.2.3.5
    227 ENTRY_END
    228 
    229 SCENARIO_END
    230