xref: /freebsd/contrib/unbound/testdata/subnet_noecs_mult.crpl (revision b2efd602aea8b3cbc3fb215b9611946d04fceb10)
1# config
2server:
3	send-client-subnet: 1.2.3.4
4	max-client-subnet-ipv4: 17
5	module-config: "subnetcache iterator"
6	qname-minimisation: no
7	minimal-responses: yes
8	target-fetch-policy: "0 0 0 0 0"
9
10stub-zone:
11	name: "."
12	stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
13CONFIG_END
14
15SCENARIO_BEGIN Test subnet with no edns subnet from server multiple times
16; Multiple queries are sent to a server that does not reply with the
17; edns-subnet option.
18
19; K.ROOT-SERVERS.NET.
20RANGE_BEGIN 0 100
21	ADDRESS 193.0.14.129
22ENTRY_BEGIN
23MATCH opcode qtype qname
24ADJUST copy_id
25REPLY QR NOERROR
26SECTION QUESTION
27. IN NS
28SECTION ANSWER
29. IN NS K.ROOT-SERVERS.NET.
30SECTION ADDITIONAL
31K.ROOT-SERVERS.NET. IN A 193.0.14.129
32ENTRY_END
33
34ENTRY_BEGIN
35MATCH opcode subdomain
36ADJUST copy_id copy_query
37REPLY QR NOERROR
38SECTION QUESTION
39com. IN NS
40SECTION AUTHORITY
41com. IN NS a.gtld-servers.net.
42SECTION ADDITIONAL
43a.gtld-servers.net. IN A 192.5.6.30
44ENTRY_END
45RANGE_END
46
47; a.gtld-servers.net.
48RANGE_BEGIN 0 100
49	ADDRESS 192.5.6.30
50
51ENTRY_BEGIN
52MATCH opcode subdomain
53ADJUST copy_id copy_query
54REPLY QR NOERROR
55SECTION QUESTION
56example.com. IN NS
57SECTION AUTHORITY
58example.com. IN NS ns.example.com.
59SECTION ADDITIONAL
60ns.example.com. IN A 1.2.3.4
61ENTRY_END
62RANGE_END
63
64; ns.example.com.
65RANGE_BEGIN 50 52
66	ADDRESS 1.2.3.4
67
68ENTRY_BEGIN
69MATCH opcode qtype qname
70ADJUST copy_id
71REPLY QR AA NOERROR
72SECTION QUESTION
73example.com. IN NS
74SECTION ANSWER
75example.com. IN NS ns.example.com.
76ENTRY_END
77
78ENTRY_BEGIN
79MATCH opcode qtype qname
80ADJUST copy_id
81REPLY QR AA NOERROR
82SECTION QUESTION
83ns.example.com. IN A
84SECTION ANSWER
85ns.example.com. IN A 1.2.3.4
86ENTRY_END
87
88ENTRY_BEGIN
89MATCH opcode qtype qname
90ADJUST copy_id
91REPLY QR AA NOERROR
92SECTION QUESTION
93ns.example.com. IN AAAA
94SECTION ANSWER
95SECTION AUTHORITY
96example.com. IN SOA ns.example.com. host.example.com. 4 86400 3600 86400 3600
97ENTRY_END
98
99ENTRY_BEGIN
100MATCH opcode qtype qname ednsdata
101ADJUST copy_id
102REPLY QR AA NOERROR
103SECTION QUESTION
104www.example.com. IN A
105SECTION ANSWER
106SECTION ADDITIONAL
107	; Match this subnet option
108	HEX_EDNSDATA_BEGIN
109				; client is 127.0.0.1
110		00 08		; OPC
111		00 07		; option length
112		00 01		; Family
113		11 00		; source mask, scopemask
114		7f 00 00	; address
115	HEX_EDNSDATA_END
116	; This is the response, without the subnet option
117	HEX_ANSWER_BEGIN;
118		00 00 84 00 00 01 00 01	 ; ID 0 QR AA NOERROR
119		00 00 00 01 03 77 77 77	 ; www.example.com A (DO)
120		07 65 78 61 6d 70 6c 65
121		03 63 6f 6d 00 00 01 00
122		01
123		C0 0C 00 01 00 01 00 00 0E 10 ; www.example.com. A IN 3600
124		00 04 0A 14 1E 2C	 ; rdata 10.20.30.44
125		00 00 29 10 00 00 00
126		80 00 00 00
127	HEX_ANSWER_END
128ENTRY_END
129
130ENTRY_BEGIN
131MATCH opcode qtype qname ednsdata
132ADJUST copy_id
133REPLY QR AA NOERROR
134SECTION QUESTION
135www.example.com. IN A
136SECTION ANSWER
137SECTION ADDITIONAL
138	; Match this subnet option
139	HEX_EDNSDATA_BEGIN
140				; client is 127.2.0.1
141		00 08		; OPC
142		00 07		; option length
143		00 01		; Family
144		11 00		; source mask, scopemask
145		7f 02 00	; address
146	HEX_EDNSDATA_END
147	; This is the response, without the subnet option
148	HEX_ANSWER_BEGIN;
149		00 00 84 00 00 01 00 01	 ; ID 0 QR AA NOERROR
150		00 00 00 01 03 77 77 77	 ; www.example.com A (DO)
151		07 65 78 61 6d 70 6c 65
152		03 63 6f 6d 00 00 01 00
153		01
154		C0 0C 00 01 00 01 00 00 0E 10 ; www.example.com. A IN 3600
155		00 04 0A 14 1E 2C	 ; rdata 10.20.30.44
156		00 00 29 10 00 00 00
157		80 00 00 00
158	HEX_ANSWER_END
159ENTRY_END
160
161ENTRY_BEGIN
162MATCH opcode qtype qname ednsdata
163ADJUST copy_id
164REPLY QR AA NOERROR
165SECTION QUESTION
166www.example.com. IN A
167SECTION ANSWER
168SECTION ADDITIONAL
169	; Match this subnet option
170	HEX_EDNSDATA_BEGIN
171				; client is 127.3.0.1
172		00 08		; OPC
173		00 07		; option length
174		00 01		; Family
175		11 00		; source mask, scopemask
176		7f 03 00	; address
177	HEX_EDNSDATA_END
178	; This is the response, without the subnet option
179	HEX_ANSWER_BEGIN;
180		00 00 84 00 00 01 00 01	 ; ID 0 QR AA NOERROR
181		00 00 00 01 03 77 77 77	 ; www.example.com A (DO)
182		07 65 78 61 6d 70 6c 65
183		03 63 6f 6d 00 00 01 00
184		01
185		C0 0C 00 01 00 01 00 00 0E 10 ; www.example.com. A IN 3600
186		00 04 0A 14 1E 2C	 ; rdata 10.20.30.44
187		00 00 29 10 00 00 00
188		80 00 00 00
189	HEX_ANSWER_END
190ENTRY_END
191
192; The answer for a query without subnet
193;ENTRY_BEGIN
194;MATCH opcode qtype qname
195;ADJUST copy_id
196;REPLY QR AA NOERROR
197;SECTION QUESTION
198;www.example.com. IN A
199;SECTION ANSWER
200;www.example.com. IN A 10.20.30.40
201;ENTRY_END
202RANGE_END
203
204; ns.example.com.
205RANGE_BEGIN 53 57
206	ADDRESS 1.2.3.4
207; The answer for a query without subnet
208ENTRY_BEGIN
209MATCH opcode qtype qname
210ADJUST copy_id
211REPLY QR AA NOERROR
212SECTION QUESTION
213www.example.com. IN A
214SECTION ANSWER
215www.example.com. IN A 10.20.30.40
216ENTRY_END
217RANGE_END
218
219STEP 10 QUERY
220ENTRY_BEGIN
221	HEX_ANSWER_BEGIN;
222		00 00 01 00 00 01 00 00	 ; ID 0
223		00 00 00 01 03 77 77 77	 ; www.example.com A? (DO)
224		07 65 78 61 6d 70 6c 65
225		03 63 6f 6d 00 00 01 00
226		01 00 00 29 10 00 00 00
227		80 00 00 0b
228
229		00 08 00 07		; OPC, optlen
230		00 01 11 00		; ip4, scope 17, source 0
231		7f 00 00		; 127.0.0.0/17
232	HEX_ANSWER_END
233ENTRY_END
234
235STEP 20 QUERY
236ENTRY_BEGIN
237	HEX_ANSWER_BEGIN;
238		00 00 01 00 00 01 00 00	 ; ID 0
239		00 00 00 01 03 77 77 77	 ; www.example.com A? (DO)
240		07 65 78 61 6d 70 6c 65
241		03 63 6f 6d 00 00 01 00
242		01 00 00 29 10 00 00 00
243		80 00 00 0b
244
245		00 08 00 07		; OPC, optlen
246		00 01 11 00		; ip4, scope 17, source 0
247		7f 02 00		; 127.2.0.0/17
248	HEX_ANSWER_END
249ENTRY_END
250
251STEP 30 QUERY
252ENTRY_BEGIN
253	HEX_ANSWER_BEGIN;
254		00 00 01 00 00 01 00 00	 ; ID 0
255		00 00 00 01 03 77 77 77	 ; www.example.com A? (DO)
256		07 65 78 61 6d 70 6c 65
257		03 63 6f 6d 00 00 01 00
258		01 00 00 29 10 00 00 00
259		80 00 00 0b
260
261		00 08 00 07		; OPC, optlen
262		00 01 11 00		; ip4, scope 17, source 0
263		7f 03 00		; 127.3.0.0/17
264	HEX_ANSWER_END
265ENTRY_END
266
267; recursion happens here.
268; The upstream server RANGE starts responding at STEP 50.
269STEP 50 TRAFFIC
270
271; The upstream server now responds for the nonsubnet response.
272STEP 55 TRAFFIC
273
274STEP 60 CHECK_ANSWER
275ENTRY_BEGIN
276MATCH all ednsdata
277REPLY QR RD RA DO NOERROR
278SECTION QUESTION
279www.example.com. IN A
280SECTION ANSWER
281www.example.com. IN A 10.20.30.40
282;www.example.com. IN A 10.20.30.44
283SECTION ADDITIONAL
284;	HEX_EDNSDATA_BEGIN
285;				; client is 127.3.0.1
286;		00 08		; OPC
287;		00 07		; option length
288;		00 01		; Family
289;		11 00		; source mask, scopemask
290;		7f 03 00	; address
291;	HEX_EDNSDATA_END
292ENTRY_END
293
294STEP 70 CHECK_ANSWER
295ENTRY_BEGIN
296MATCH all ednsdata
297REPLY QR RD RA DO NOERROR
298SECTION QUESTION
299www.example.com. IN A
300SECTION ANSWER
301www.example.com. IN A 10.20.30.40
302;www.example.com. IN A 10.20.30.44
303SECTION ADDITIONAL
304;	HEX_EDNSDATA_BEGIN
305;				; client is 127.2.0.1
306;		00 08		; OPC
307;		00 07		; option length
308;		00 01		; Family
309;		11 00		; source mask, scopemask
310;		7f 02 00	; address
311;	HEX_EDNSDATA_END
312ENTRY_END
313
314STEP 80 CHECK_ANSWER
315ENTRY_BEGIN
316MATCH all ednsdata
317REPLY QR RD RA DO NOERROR
318SECTION QUESTION
319www.example.com. IN A
320SECTION ANSWER
321www.example.com. IN A 10.20.30.40
322;www.example.com. IN A 10.20.30.44
323SECTION ADDITIONAL
324;	HEX_EDNSDATA_BEGIN
325;				; client is 127.0.0.1
326;		00 08		; OPC
327;		00 07		; option length
328;		00 01		; Family
329;		11 00		; source mask, scopemask
330;		7f 00 00	; address
331;	HEX_EDNSDATA_END
332ENTRY_END
333
334SCENARIO_END
335