Home | History | Annotate | Line # | Download | only in testdata
      1 ; Check if the prefetch option works properly for messages stored in the global
      2 ; cache for non-ECS clients. The prefetch query needs to result in an ECS
      3 ; outgoing query based on the client's IP.
      4 
      5 server:
      6 	trust-anchor-signaling: no
      7 	target-fetch-policy: "0 0 0 0 0"
      8 	send-client-subnet: 1.2.3.4
      9 	max-client-subnet-ipv4: 21
     10 	module-config: "subnetcache iterator"
     11 	verbosity: 3
     12 	access-control: 127.0.0.1 allow_snoop
     13 	qname-minimisation: no
     14 	minimal-responses: no
     15 	iter-scrub-promiscuous: no
     16 	prefetch: yes
     17 
     18 stub-zone:
     19 	name: "."
     20 	stub-addr: 193.0.14.129 	# K.ROOT-SERVERS.NET.
     21 CONFIG_END
     22 
     23 SCENARIO_BEGIN Test prefetch option for global cache with ECS enabled
     24 
     25 ; K.ROOT-SERVERS.NET.
     26 RANGE_BEGIN 0 100
     27 	ADDRESS 193.0.14.129
     28 	ENTRY_BEGIN
     29 		MATCH opcode qtype qname ednsdata
     30 		ADJUST copy_id
     31 		REPLY QR NOERROR
     32 		SECTION QUESTION
     33 			. IN NS
     34 		SECTION ANSWER
     35 			. IN NS	K.ROOT-SERVERS.NET.
     36 		SECTION ADDITIONAL
     37 			HEX_EDNSDATA_BEGIN
     38 				;; we expect to receive empty
     39 			HEX_EDNSDATA_END
     40 			K.ROOT-SERVERS.NET.	IN	A	193.0.14.129
     41 	ENTRY_END
     42 
     43 	ENTRY_BEGIN
     44 		MATCH opcode qtype qname
     45 		ADJUST copy_id
     46 		REPLY QR NOERROR
     47 		SECTION QUESTION
     48 			www.example.com. IN A
     49 		SECTION AUTHORITY
     50 			com.	IN NS	a.gtld-servers.net.
     51 		SECTION ADDITIONAL
     52 			a.gtld-servers.net.	IN 	A	192.5.6.30
     53 	ENTRY_END
     54 RANGE_END
     55 
     56 ; a.gtld-servers.net.
     57 RANGE_BEGIN 0 100
     58 	ADDRESS 192.5.6.30
     59 	ENTRY_BEGIN
     60 		MATCH opcode qtype qname ednsdata
     61 		ADJUST copy_id
     62 		REPLY QR NOERROR
     63 		SECTION QUESTION
     64 			com. IN NS
     65 		SECTION ANSWER
     66 			com.    IN NS   a.gtld-servers.net.
     67 		SECTION ADDITIONAL
     68 			HEX_EDNSDATA_BEGIN
     69 				;; we expect to receive empty
     70 			HEX_EDNSDATA_END
     71 			a.gtld-servers.net.     IN      A       192.5.6.30
     72 	ENTRY_END
     73 
     74 	ENTRY_BEGIN
     75 		MATCH opcode qtype qname
     76 		ADJUST copy_id
     77 		REPLY QR NOERROR
     78 		SECTION QUESTION
     79 			www.example.com. IN A
     80 		SECTION AUTHORITY
     81 			example.com.	IN NS	ns.example.com.
     82 		SECTION ADDITIONAL
     83 			ns.example.com.		IN 	A	1.2.3.4
     84 	ENTRY_END
     85 RANGE_END
     86 
     87 ; ns.example.com.
     88 RANGE_BEGIN 0 10
     89 	ADDRESS 1.2.3.4
     90 	ENTRY_BEGIN
     91 		MATCH opcode qtype qname
     92 		ADJUST copy_id
     93 		REPLY QR NOERROR
     94 		SECTION QUESTION
     95 			example.com. IN NS
     96 		SECTION ANSWER
     97 			example.com.    IN NS   ns.example.com.
     98 		SECTION ADDITIONAL
     99 			HEX_EDNSDATA_BEGIN
    100 				;; we expect to receive empty
    101 			HEX_EDNSDATA_END
    102 			ns.example.com.         IN      A       1.2.3.4
    103 	ENTRY_END
    104 
    105 	; response to query of interest
    106 	ENTRY_BEGIN
    107 		MATCH opcode qtype qname
    108 		ADJUST copy_id
    109 		REPLY QR NOERROR
    110 		SECTION QUESTION
    111 			www.example.com. IN A
    112 		SECTION ANSWER
    113 			www.example.com. 10 IN A	10.20.30.40
    114 		SECTION AUTHORITY
    115 			example.com.	IN NS	ns.example.com.
    116 		SECTION ADDITIONAL
    117 			ns.example.com.		IN 	A	1.2.3.4
    118 	ENTRY_END
    119 RANGE_END
    120 
    121 ; ns.example.com.
    122 RANGE_BEGIN 11 100
    123 	ADDRESS 1.2.3.4
    124 	ENTRY_BEGIN
    125 		MATCH opcode qtype qname
    126 		ADJUST copy_id
    127 		REPLY QR NOERROR
    128 		SECTION QUESTION
    129 			example.com. IN NS
    130 		SECTION ANSWER
    131 			example.com.    IN NS   ns.example.com.
    132 		SECTION ADDITIONAL
    133 			HEX_EDNSDATA_BEGIN
    134 				;; we expect to receive empty
    135 			HEX_EDNSDATA_END
    136 			ns.example.com.         IN      A       1.2.3.4
    137 	ENTRY_END
    138 
    139 	; response to query of interest
    140 	ENTRY_BEGIN
    141 		MATCH opcode qtype qname ednsdata
    142 		ADJUST copy_id copy_ednsdata_assume_clientsubnet
    143 		REPLY QR NOERROR
    144 		SECTION QUESTION
    145 			www.example.com. IN A
    146 		SECTION ANSWER
    147 			www.example.com. 10 IN A	10.20.30.40
    148 		SECTION AUTHORITY
    149 			example.com.	IN NS	ns.example.com.
    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 				15 00 		; source mask, scopemask
    157 				7f 00 00 	; address
    158 			HEX_EDNSDATA_END
    159 			ns.example.com.		IN 	A	1.2.3.4
    160 	ENTRY_END
    161 RANGE_END
    162 
    163 STEP 1 QUERY
    164 ENTRY_BEGIN
    165 REPLY RD
    166 SECTION QUESTION
    167 www.example.com. IN A
    168 ENTRY_END
    169 
    170 ; This answer should be in the global cache (because no ECS from upstream)
    171 STEP 2 CHECK_ANSWER
    172 ENTRY_BEGIN
    173 MATCH all
    174 REPLY QR RD RA NOERROR
    175 SECTION QUESTION
    176 www.example.com. IN A
    177 SECTION ANSWER
    178 www.example.com. IN A	10.20.30.40
    179 SECTION AUTHORITY
    180 example.com.	IN NS	ns.example.com.
    181 SECTION ADDITIONAL
    182 ns.example.com.		IN 	A	1.2.3.4
    183 ENTRY_END
    184 
    185 ; Try to trigger a prefetch
    186 STEP 3 TIME_PASSES ELAPSE 9
    187 
    188 STEP 11 QUERY
    189 ENTRY_BEGIN
    190 REPLY RD
    191 SECTION QUESTION
    192 www.example.com. IN A
    193 ENTRY_END
    194 
    195 ; This record came from the global cache and a prefetch was triggered.
    196 STEP 12 CHECK_ANSWER
    197 ENTRY_BEGIN
    198 MATCH all ttl
    199 REPLY QR RD RA NOERROR
    200 SECTION QUESTION
    201 www.example.com. IN A
    202 SECTION ANSWER
    203 www.example.com. 1 IN A	10.20.30.40
    204 SECTION AUTHORITY
    205 example.com.	3591 IN NS	ns.example.com.
    206 SECTION ADDITIONAL
    207 ns.example.com.	3591 IN 	A	1.2.3.4
    208 ENTRY_END
    209 
    210 ; Allow time to pass so that the global cache record is expired.
    211 STEP 13 TIME_PASSES ELAPSE 2
    212 
    213 ; Query again to verify that the record was prefetched and stored in the ECS
    214 ; cache.
    215 STEP 15 QUERY
    216 ENTRY_BEGIN
    217 REPLY RD
    218 SECTION QUESTION
    219 www.example.com. IN A
    220 ENTRY_END
    221 
    222 ; This record came from the ECS cache.
    223 STEP 16 CHECK_ANSWER
    224 ENTRY_BEGIN
    225 MATCH all ttl
    226 REPLY QR RD RA NOERROR
    227 SECTION QUESTION
    228 www.example.com. IN A
    229 SECTION ANSWER
    230 www.example.com. 8 IN A	10.20.30.40
    231 SECTION AUTHORITY
    232 example.com.	3598 IN NS	ns.example.com.
    233 SECTION ADDITIONAL
    234 ns.example.com.	3598 IN 	A	1.2.3.4
    235 ENTRY_END
    236 
    237 SCENARIO_END
    238