xref: /netbsd-src/external/bsd/unbound/dist/testdata/subnet_prefetch.crpl (revision 91f7d55fb697b5e0475da4718fa34c3a3ebeac85)
1; Check if the prefetch option works properly for messages stored in ECS cache
2; for non-ECS clients.
3
4server:
5	trust-anchor-signaling: no
6	target-fetch-policy: "0 0 0 0 0"
7	send-client-subnet: 1.2.3.4
8	max-client-subnet-ipv4: 21
9	client-subnet-always-forward: yes
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	prefetch: yes
16
17stub-zone:
18	name: "."
19	stub-addr: 193.0.14.129 	# K.ROOT-SERVERS.NET.
20CONFIG_END
21
22SCENARIO_BEGIN Test prefetch option for ECS cache
23
24; K.ROOT-SERVERS.NET.
25RANGE_BEGIN 0 100
26	ADDRESS 193.0.14.129
27	ENTRY_BEGIN
28		MATCH opcode qtype qname ednsdata
29		ADJUST copy_id
30		REPLY QR NOERROR
31		SECTION QUESTION
32			. IN NS
33		SECTION ANSWER
34			. IN NS	K.ROOT-SERVERS.NET.
35		SECTION ADDITIONAL
36			K.ROOT-SERVERS.NET.	IN	A	193.0.14.129
37	ENTRY_END
38
39	ENTRY_BEGIN
40		MATCH opcode qtype qname
41		ADJUST copy_id
42		REPLY QR NOERROR
43		SECTION QUESTION
44			www.example.com. IN A
45		SECTION AUTHORITY
46			com.	IN NS	a.gtld-servers.net.
47		SECTION ADDITIONAL
48			a.gtld-servers.net.	IN 	A	192.5.6.30
49	ENTRY_END
50RANGE_END
51
52; a.gtld-servers.net.
53RANGE_BEGIN 0 100
54	ADDRESS 192.5.6.30
55	ENTRY_BEGIN
56		MATCH opcode qtype qname ednsdata
57		ADJUST copy_id
58		REPLY QR NOERROR
59		SECTION QUESTION
60			com. IN NS
61		SECTION ANSWER
62			com.    IN NS   a.gtld-servers.net.
63		SECTION ADDITIONAL
64			a.gtld-servers.net.     IN      A       192.5.6.30
65	ENTRY_END
66
67	ENTRY_BEGIN
68		MATCH opcode qtype qname
69		ADJUST copy_id
70		REPLY QR NOERROR
71		SECTION QUESTION
72			www.example.com. IN A
73		SECTION AUTHORITY
74			example.com.	IN NS	ns.example.com.
75		SECTION ADDITIONAL
76			ns.example.com.		IN 	A	1.2.3.4
77	ENTRY_END
78RANGE_END
79
80; ns.example.com.
81RANGE_BEGIN 0 100
82	ADDRESS 1.2.3.4
83	ENTRY_BEGIN
84		MATCH opcode qtype qname
85		ADJUST copy_id
86		REPLY QR NOERROR
87		SECTION QUESTION
88			example.com. IN NS
89		SECTION ANSWER
90			example.com.    IN NS   ns.example.com.
91		SECTION ADDITIONAL
92			ns.example.com.         IN      A       1.2.3.4
93	ENTRY_END
94
95	; response to query of interest
96	ENTRY_BEGIN
97		MATCH opcode qtype qname ednsdata
98		ADJUST copy_id copy_ednsdata_assume_clientsubnet
99		REPLY QR NOERROR
100		SECTION QUESTION
101			www.example.com. IN A
102		SECTION ANSWER
103			www.example.com. 10 IN A	10.20.30.40
104		SECTION AUTHORITY
105			example.com.	IN NS	ns.example.com.
106		SECTION ADDITIONAL
107			HEX_EDNSDATA_BEGIN
108						; client is 127.0.0.1
109				00 08 		; OPC
110				00 07 		; option length
111				00 01 		; Family
112				15 00 		; source mask, scopemask
113				7f 00 00 	; address
114			HEX_EDNSDATA_END
115			ns.example.com.		IN 	A	1.2.3.4
116	ENTRY_END
117RANGE_END
118
119STEP 1 QUERY
120ENTRY_BEGIN
121REPLY RD
122SECTION QUESTION
123www.example.com. IN A
124ENTRY_END
125
126; This answer will end up in the subnet cache
127STEP 2 CHECK_ANSWER
128ENTRY_BEGIN
129MATCH all
130REPLY QR RD RA NOERROR
131SECTION QUESTION
132www.example.com.	IN A
133SECTION ANSWER
134www.example.com.	IN A	10.20.30.40
135SECTION AUTHORITY
136example.com.		IN NS	ns.example.com.
137SECTION ADDITIONAL
138ns.example.com.		IN A	1.2.3.4
139ENTRY_END
140
141; Try to trigger a prefetch
142STEP 3 TIME_PASSES ELAPSE 9
143
144STEP 4 QUERY
145ENTRY_BEGIN
146REPLY RD
147SECTION QUESTION
148www.example.com. IN A
149ENTRY_END
150
151; This record came from the cache and a prefetch is triggered
152STEP 5 CHECK_ANSWER
153ENTRY_BEGIN
154MATCH all ttl
155REPLY QR RD RA NOERROR
156SECTION QUESTION
157www.example.com.		IN A
158SECTION ANSWER
159www.example.com. 1 IN A	10.20.30.40
160SECTION AUTHORITY
161example.com.	3591 IN NS	ns.example.com.
162SECTION ADDITIONAL
163ns.example.com.	3591 IN 	A	1.2.3.4
164ENTRY_END
165
166; Allow for some time to pass to differentiate from a cached vs resolved answer
167STEP 6 TIME_PASSES ELAPSE 1
168
169STEP 7 QUERY
170ENTRY_BEGIN
171REPLY RD
172SECTION QUESTION
173www.example.com. IN A
174ENTRY_END
175
176; This prefetched record came from the ECS cache
177STEP 8 CHECK_ANSWER
178ENTRY_BEGIN
179MATCH all ttl
180REPLY QR RD RA NOERROR
181SECTION QUESTION
182www.example.com. IN A
183SECTION ANSWER
184www.example.com. 9 IN A	10.20.30.40
185SECTION AUTHORITY
186example.com.	3599 IN NS	ns.example.com.
187SECTION ADDITIONAL
188ns.example.com.	3599 IN 	A	1.2.3.4
189ENTRY_END
190
191SCENARIO_END
192