xref: /freebsd/contrib/unbound/testdata/subnet_global_prefetch_always_forward.crpl (revision 24e4dcf4ba5e9dedcf89efd358ea3e1fe5867020)
1; Check if the prefetch option works properly when serve-expired is combined
2; with client-subnet-always-forward for non-ECS clients. The prefetch query
3; needs to result in an outgoing query without ECS.
4
5server:
6	trust-anchor-signaling: no
7	target-fetch-policy: "0 0 0 0 0"
8	serve-expired: yes
9	serve-expired-client-timeout: 0
10	client-subnet-always-forward: yes
11	module-config: "subnetcache iterator"
12	verbosity: 3
13	access-control: 127.0.0.1 allow_snoop
14	qname-minimisation: no
15	minimal-responses: no
16
17stub-zone:
18	name: "."
19	stub-addr: 193.0.14.129 	# K.ROOT-SERVERS.NET.
20CONFIG_END
21
22SCENARIO_BEGIN Test serve-expired and client-subnet-always-forward without ECS in the request
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
98		ADJUST copy_id
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			ns.example.com.		IN 	A	1.2.3.4
108	ENTRY_END
109RANGE_END
110
111STEP 1 QUERY
112ENTRY_BEGIN
113REPLY RD
114SECTION QUESTION
115www.example.com. IN A
116ENTRY_END
117
118; This answer should be in the global cache
119STEP 2 CHECK_ANSWER
120ENTRY_BEGIN
121MATCH all
122REPLY QR RD RA NOERROR
123SECTION QUESTION
124www.example.com.	IN A
125SECTION ANSWER
126www.example.com.	IN A	10.20.30.40
127SECTION AUTHORITY
128example.com.		IN NS	ns.example.com.
129SECTION ADDITIONAL
130ns.example.com.		IN A	1.2.3.4
131ENTRY_END
132
133; Wait for the TTL to expire
134STEP 3 TIME_PASSES ELAPSE 20
135
136STEP 11 QUERY
137ENTRY_BEGIN
138REPLY RD
139SECTION QUESTION
140www.example.com. IN A
141ENTRY_END
142
143; This record came from the global cache and a prefetch was triggered
144STEP 12 CHECK_ANSWER
145ENTRY_BEGIN
146MATCH all ttl
147REPLY QR RD RA NOERROR
148SECTION QUESTION
149www.example.com.		IN A
150SECTION ANSWER
151www.example.com.	30	IN A	10.20.30.40
152SECTION AUTHORITY
153example.com.		3580	IN NS	ns.example.com.
154SECTION ADDITIONAL
155ns.example.com.		3580	IN A	1.2.3.4
156ENTRY_END
157
158STEP 13 CHECK_OUT_QUERY
159ENTRY_BEGIN
160        MATCH all
161	REPLY NOERROR DO
162        SECTION QUESTION
163                www.example.com. IN A
164ENTRY_END
165
166STEP 14 TRAFFIC
167
168SCENARIO_END
169