xref: /netbsd-src/external/bsd/unbound/dist/testdata/autotrust_valid_use.rpl (revision 0cd9f4ecf44538bbdd5619b5b2081449960ab3e6)
1; config options
2server:
3	target-fetch-policy: "0 0 0 0 0"
4	log-time-ascii: yes
5	fake-sha1: yes
6	trust-anchor-signaling: no
7stub-zone:
8	name: "."
9	stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
10; initial content (say from dig example.com DNSKEY > example.com.key)
11AUTOTRUST_FILE example.com
12example.com.	10800	IN	DNSKEY	257 3 5 AwEAAc3Z5DQDJpH4oPdNtC4BUQHk50XMD+dHr4r8psHmivIa83hxR5CRgCtd9sENCW9Ae8OIO19xw9t/RPaEAqQa+OE= ;{id = 55582 (ksk), size = 512b}
13example.com.	10800	IN	DNSKEY	256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}
14AUTOTRUST_END
15CONFIG_END
16
17SCENARIO_BEGIN Test autotrust with using a valid key for validation
18
19; K-ROOT
20RANGE_BEGIN 0 100
21	ADDRESS 193.0.14.129
22ENTRY_BEGIN
23MATCH opcode qname qtype
24ADJUST copy_id copy_query
25REPLY QR AA
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
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
50ENTRY_BEGIN
51MATCH opcode subdomain
52ADJUST copy_id copy_query
53REPLY QR
54SECTION QUESTION
55example.com. IN NS
56SECTION AUTHORITY
57example.com. IN NS ns.example.com.
58SECTION ADDITIONAL
59ns.example.com. IN A 1.2.3.4
60ENTRY_END
61RANGE_END
62
63; ns.example.com.  KSK 55582
64RANGE_BEGIN 0 10
65	ADDRESS 1.2.3.4
66ENTRY_BEGIN
67MATCH opcode qname qtype
68ADJUST copy_id
69REPLY QR AA
70SECTION QUESTION
71www.example.com. IN A
72SECTION ANSWER
73www.example.com.	3600	IN	A	10.20.30.40
74www.example.com.	3600	IN	RRSIG	A 5 3 3600 20090924111500 20090821111500 30899 example.com. pYGxVLsWUvOp1wSf0iwPap+JnECfC5GAm1lRqy3YEqecNGld7U7x/5Imo3CerbdZrVptUQs2oH0lcjwYJXMnsw== ;{id = 30899}
75SECTION AUTHORITY
76example.com.	3600	IN	NS	ns.example.com.
77example.com.	3600	IN	RRSIG	NS 5 2 3600 20090924111500 20090821111500 30899 example.com. J5wxRq0jgwQL6yy530kvo9cHqNAUHV8IF4dvaYZL0bNraO2Oe6dVXqlJl4+cxNHI2TMsstwFPr2Zz8tv6Az2mQ== ;{id = 30899}
78SECTION ADDITIONAL
79ns.example.com.	3600	IN	A	1.2.3.4
80ns.example.com.	3600	IN	RRSIG	A 5 3 3600 20090924111500 20090821111500 30899 example.com. JsXbS18oyc0zkVaOWGSFdIQuOsZKflT0GraT9afDPoWLCgH4ApF7jNgfJV7Pqy1sTBRajME5IUAhpANwGBuW4A== ;{id = 30899}
81ENTRY_END
82
83ENTRY_BEGIN
84MATCH opcode qname qtype
85ADJUST copy_id
86REPLY QR AA
87SECTION QUESTION
88example.com. IN DNSKEY
89SECTION ANSWER
90; KSK 1
91example.com.	10800	IN	DNSKEY	257 3 5 AwEAAc3Z5DQDJpH4oPdNtC4BUQHk50XMD+dHr4r8psHmivIa83hxR5CRgCtd9sENCW9Ae8OIO19xw9t/RPaEAqQa+OE= ;{id = 55582 (ksk), size = 512b}
92; ZSK 1
93example.com.	10800	IN	DNSKEY	256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}
94; signatures
95example.com.	10800	IN	RRSIG	DNSKEY 5 2 10800 20090924111500 20090821111500 30899 example.com. b/HK231jIQLX8IhlZfup3r0yhpXaasbPE6LzxoEVVvWaTZWcLmeV8jDIcn0qO7Yvs7bIJN20lwVAV0GcHH3hWQ== ;{id = 30899}
96example.com.	10800	IN	RRSIG	DNSKEY 5 2 10800 20090924111500 20090821111500 55582 example.com. PCHme1QLoULxqjhg5tMlpR0qJlBfstEUVq18TtNoKQe9le1YhJ9caheXcTWoK+boLhXxg9u6Yyvq8FboQh0OjA== ;{id = 55582}
97ENTRY_END
98RANGE_END
99
100; ns.example.com.  KSK 55582 and 60946
101RANGE_BEGIN 11 30
102	ADDRESS 1.2.3.4
103ENTRY_BEGIN
104MATCH opcode qname qtype
105ADJUST copy_id
106REPLY QR AA
107SECTION QUESTION
108example.com. IN DNSKEY
109SECTION ANSWER
110; KSK 1
111example.com.	10800	IN	DNSKEY	257 3 5 AwEAAc3Z5DQDJpH4oPdNtC4BUQHk50XMD+dHr4r8psHmivIa83hxR5CRgCtd9sENCW9Ae8OIO19xw9t/RPaEAqQa+OE= ;{id = 55582 (ksk), size = 512b}
112; KSK 2
113example.com.	10800	IN	DNSKEY	257 3 5 AwEAAeiaUiUIpWMfYz5L0sfJTZWnuN9IyBX4em9VjsoqQTsOD1HDQpNb4buvJo7pN2aBCxNS7e0OL8e2mVB6CLZ+8ek= ;{id = 60946 (ksk), size = 512b}
114; ZSK 1
115example.com.	10800	IN	DNSKEY	256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}
116; signatures
117example.com.	10800	IN	RRSIG	DNSKEY 5 2 10800 20091024111500 20090921111500 30899 example.com. rkaCUpTFPWVu4Om5oMTR+39Mct6ZMs56xrE0rbxMMOokfvIQheIxsAEc5BFJeA/2y5WTewl6diCD6yQXCybrDg== ;{id = 30899}
118example.com.	10800	IN	RRSIG	DNSKEY 5 2 10800 20091024111500 20090921111500 55582 example.com. CoMon+lWPAsUvgfpCTDPx8Zn8dQpky3lu2O6T+oJ2Mat9a/u1YwGhSQHGPn7ZNG/4vKM97tx84sSlUGz3geD1w== ;{id = 55582}
119example.com.	10800	IN	RRSIG	DNSKEY 5 2 10800 20091024111500 20090921111500 60946 example.com. o+Cbs7DcYPYlSLd4hi3vkSVQpXGnKgKSi9MpHGfu1Uahv5190U2DUOxP1du/HOYbf+IHYL8zLbMZjVEG5wgnTg== ;{id = 60946}
120ENTRY_END
121RANGE_END
122
123; probe failures
124RANGE_BEGIN 31 40
125	ADDRESS 1.2.3.4
126ENTRY_BEGIN
127MATCH opcode qname qtype
128ADJUST copy_id
129REPLY QR AA SERVFAIL
130SECTION QUESTION
131example.com. IN DNSKEY
132ENTRY_END
133
134ENTRY_BEGIN
135MATCH opcode qname qtype
136ADJUST copy_id
137REPLY QR AA SERVFAIL
138SECTION QUESTION
139ns.example.com. IN AAAA
140ENTRY_END
141RANGE_END
142
143; ns.example.com.  KSK 55582 and 60946 (signatures updated)
144RANGE_BEGIN 41 50
145	ADDRESS 1.2.3.4
146ENTRY_BEGIN
147MATCH opcode qname qtype
148ADJUST copy_id
149REPLY QR AA
150SECTION QUESTION
151ns.example.com. IN A
152SECTION ANSWER
153ns.example.com.	3600	IN	A	1.2.3.4
154ns.example.com.	3600	IN	RRSIG	A 5 3 3600 20090924111500 20090821111500 30899 example.com. JsXbS18oyc0zkVaOWGSFdIQuOsZKflT0GraT9afDPoWLCgH4ApF7jNgfJV7Pqy1sTBRajME5IUAhpANwGBuW4A== ;{id = 30899}
155SECTION AUTHORITY
156example.com.	3600	IN	NS	ns.example.com.
157example.com.	3600	IN	RRSIG	NS 5 2 3600 20090924111500 20090821111500 30899 example.com. J5wxRq0jgwQL6yy530kvo9cHqNAUHV8IF4dvaYZL0bNraO2Oe6dVXqlJl4+cxNHI2TMsstwFPr2Zz8tv6Az2mQ== ;{id = 30899}
158SECTION ADDITIONAL
159ENTRY_END
160
161ENTRY_BEGIN
162MATCH opcode qname qtype
163ADJUST copy_id
164REPLY QR AA
165SECTION QUESTION
166ns.example.com. IN AAAA
167SECTION ANSWER
168SECTION AUTHORITY
169example.com.	3600	IN	NS	ns.example.com.
170example.com.	3600	IN	RRSIG	NS 5 2 3600 20090924111500 20090821111500 30899 example.com. J5wxRq0jgwQL6yy530kvo9cHqNAUHV8IF4dvaYZL0bNraO2Oe6dVXqlJl4+cxNHI2TMsstwFPr2Zz8tv6Az2mQ== ;{id = 30899}
171SECTION ADDITIONAL
172ns.example.com.	3600	IN	A	1.2.3.4
173ns.example.com.	3600	IN	RRSIG	A 5 3 3600 20090924111500 20090821111500 30899 example.com. JsXbS18oyc0zkVaOWGSFdIQuOsZKflT0GraT9afDPoWLCgH4ApF7jNgfJV7Pqy1sTBRajME5IUAhpANwGBuW4A== ;{id = 30899}
174ENTRY_END
175
176ENTRY_BEGIN
177MATCH opcode qname qtype
178ADJUST copy_id
179REPLY QR AA
180SECTION QUESTION
181example.com. IN DNSKEY
182SECTION ANSWER
183; KSK 1
184example.com.	10800	IN	DNSKEY	257 3 5 AwEAAc3Z5DQDJpH4oPdNtC4BUQHk50XMD+dHr4r8psHmivIa83hxR5CRgCtd9sENCW9Ae8OIO19xw9t/RPaEAqQa+OE= ;{id = 55582 (ksk), size = 512b}
185; KSK 2
186example.com.	10800	IN	DNSKEY	257 3 5 AwEAAeiaUiUIpWMfYz5L0sfJTZWnuN9IyBX4em9VjsoqQTsOD1HDQpNb4buvJo7pN2aBCxNS7e0OL8e2mVB6CLZ+8ek= ;{id = 60946 (ksk), size = 512b}
187; ZSK 1
188example.com.	10800	IN	DNSKEY	256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}
189; signatures
190example.com.	10800	IN	RRSIG	DNSKEY 5 2 10800 20091124111500 20091018111500 30899 example.com. rkaCUpTFPWVu4Om5oMTR+39Mct6ZMs56xrE0rbxMMOokfvIQheIxsAEc5BFJeA/2y5WTewl6diCD6yQXCybrDg== ;{id = 30899}
191example.com.	10800	IN	RRSIG	DNSKEY 5 2 10800 20091124111500 20091018111500 55582 example.com. v/HJbdpeVMpbhwYXrT1EDGpAFMvEgdKQII1cAbP6o8KHYNKDh8TIJ25/pXe3daEXfej6/Z5kpqJ79okPKUoi1Q== ;{id = 55582}
192example.com.	10800	IN	RRSIG	DNSKEY 5 2 10800 20091124111500 20091018111500 60946 example.com. HgXol1hdvbomOM1CFRW8qsHd3D0qOnN72EeMHTcpxIBBiuNLKZn4n1M14Voxj3vo0eAMNuG/y7EjQkxKvSsaDA== ;{id = 60946}
193ENTRY_END
194
195ENTRY_BEGIN
196MATCH opcode qname qtype
197ADJUST copy_id
198REPLY QR AA
199SECTION QUESTION
200www.example.com. IN A
201SECTION ANSWER
202www.example.com.	3600	IN	A	10.20.30.40
203www.example.com.	3600	IN	RRSIG	A 5 3 3600 20091124111500 20091018111500 60946 example.com. pI3iwElQXjhje3SnAfwAG/VwdRskQcLdiApbKdUbR7MIsDUpqVjxIUtSIRu/aXNt8EVA8SwZQXNmTYA2SrrBhA== ;{id = 60946}
204ENTRY_END
205
206RANGE_END
207
208; set date/time to Aug 24 07:46:40  (2009).
209STEP 5 TIME_PASSES ELAPSE 1251100000
210STEP 6 TRAFFIC   ; the initial probe
211STEP 7 ASSIGN t0 = ${time}
212STEP 8 ASSIGN probe0 = ${range 4800 ${timeout} 5400}
213
214; the auto probing should have been done now.
215STEP 10 CHECK_AUTOTRUST example.com
216FILE_BEGIN
217; autotrust trust anchor file
218;;id: example.com. 1
219;;last_queried: ${$t0} ;;${ctime $t0}
220;;last_success: ${$t0} ;;${ctime $t0}
221;;next_probe_time: ${$t0 + $probe0} ;;${ctime $t0 + $probe0}
222;;query_failed: 0
223;;query_interval: 5400
224;;retry_time: 3600
225example.com.	10800	IN	DNSKEY	257 3 5 AwEAAc3Z5DQDJpH4oPdNtC4BUQHk50XMD+dHr4r8psHmivIa83hxR5CRgCtd9sENCW9Ae8OIO19xw9t/RPaEAqQa+OE= ;{id = 55582 (ksk), size = 512b} ;;state=2 [  VALID  ] ;;count=0 ;;lastchange=${$t0} ;;${ctime $t0}
226FILE_END
227
228; key prepublished.  First poll. 30 days later
229STEP 11 TIME_PASSES EVAL ${30*24*3600}
230STEP 12 TRAFFIC
231STEP 13 ASSIGN t1 = ${time}
232STEP 14 ASSIGN probe1 = ${range 4800 ${timeout} 5400}
233STEP 15 CHECK_AUTOTRUST example.com
234FILE_BEGIN
235; autotrust trust anchor file
236;;id: example.com. 1
237;;last_queried: ${$t1} ;;${ctime $t1}
238;;last_success: ${$t1} ;;${ctime $t1}
239;;next_probe_time: ${$t1 + $probe1} ;;${ctime $t1 + $probe1}
240;;query_failed: 0
241;;query_interval: 5400
242;;retry_time: 3600
243example.com.	10800	IN	DNSKEY	257 3 5 AwEAAeiaUiUIpWMfYz5L0sfJTZWnuN9IyBX4em9VjsoqQTsOD1HDQpNb4buvJo7pN2aBCxNS7e0OL8e2mVB6CLZ+8ek= ;{id = 60946 (ksk), size = 512b} ;;state=1 [ ADDPEND ] ;;count=1 ;;lastchange=${$t1} ;;${ctime $t1}
244example.com.	10800	IN	DNSKEY	257 3 5 AwEAAc3Z5DQDJpH4oPdNtC4BUQHk50XMD+dHr4r8psHmivIa83hxR5CRgCtd9sENCW9Ae8OIO19xw9t/RPaEAqQa+OE= ;{id = 55582 (ksk), size = 512b} ;;state=2 [  VALID  ] ;;count=0 ;;lastchange=${$t0} ;;${ctime $t0}
245FILE_END
246
247; Second poll. 10 days later
248STEP 21 TIME_PASSES EVAL ${10*24*3600}
249STEP 22 TRAFFIC
250STEP 23 ASSIGN t2 = ${time}
251STEP 24 ASSIGN probe2 = ${range 4800 ${timeout} 5400}
252STEP 25 CHECK_AUTOTRUST example.com
253FILE_BEGIN
254; autotrust trust anchor file
255;;id: example.com. 1
256;;last_queried: ${$t2} ;;${ctime $t2}
257;;last_success: ${$t2} ;;${ctime $t2}
258;;next_probe_time: ${$t2 + $probe2} ;;${ctime $t2 + $probe2}
259;;query_failed: 0
260;;query_interval: 5400
261;;retry_time: 3600
262example.com.	10800	IN	DNSKEY	257 3 5 AwEAAeiaUiUIpWMfYz5L0sfJTZWnuN9IyBX4em9VjsoqQTsOD1HDQpNb4buvJo7pN2aBCxNS7e0OL8e2mVB6CLZ+8ek= ;{id = 60946 (ksk), size = 512b} ;;state=1 [ ADDPEND ] ;;count=2 ;;lastchange=${$t1} ;;${ctime $t1}
263example.com.	10800	IN	DNSKEY	257 3 5 AwEAAc3Z5DQDJpH4oPdNtC4BUQHk50XMD+dHr4r8psHmivIa83hxR5CRgCtd9sENCW9Ae8OIO19xw9t/RPaEAqQa+OE= ;{id = 55582 (ksk), size = 512b} ;;state=2 [  VALID  ] ;;count=0 ;;lastchange=${$t0} ;;${ctime $t0}
264FILE_END
265
266; put this almost one hour before expiration so that the next query arrives
267; before the next poll timer.
268; Make this probe fail to keep DNSKEY out of the cache
269; Third poll. 10 days later
270STEP 31 TIME_PASSES EVAL ${ ${20*24*3600} - 3000 }
271STEP 32 TRAFFIC
272STEP 33 ASSIGN t3 = ${time}
273STEP 34 ASSIGN probe3 = ${range 3200 ${timeout} 3600}
274STEP 35 CHECK_AUTOTRUST example.com
275FILE_BEGIN
276; autotrust trust anchor file
277;;id: example.com. 1
278;;last_queried: ${$t2} ;;${ctime $t2}
279;;last_success: ${$t2} ;;${ctime $t2}
280;;next_probe_time: ${$t2 + $probe2} ;;${ctime $t2 + $probe2}
281;;query_failed: 0
282;;query_interval: 5400
283;;retry_time: 3600
284example.com.	10800	IN	DNSKEY	257 3 5 AwEAAeiaUiUIpWMfYz5L0sfJTZWnuN9IyBX4em9VjsoqQTsOD1HDQpNb4buvJo7pN2aBCxNS7e0OL8e2mVB6CLZ+8ek= ;{id = 60946 (ksk), size = 512b} ;;state=1 [ ADDPEND ] ;;count=2 ;;lastchange=${$t1} ;;${ctime $t1}
285example.com.	10800	IN	DNSKEY	257 3 5 AwEAAc3Z5DQDJpH4oPdNtC4BUQHk50XMD+dHr4r8psHmivIa83hxR5CRgCtd9sENCW9Ae8OIO19xw9t/RPaEAqQa+OE= ;{id = 55582 (ksk), size = 512b} ;;state=2 [  VALID  ] ;;count=0 ;;lastchange=${$t0} ;;${ctime $t0}
286FILE_END
287
288; 3010 seconds later, hold down has lapsed.
289; but the probe timer does not expire yet!
290; key 60946 becomes valid.  Use it.
291; check this with a data query.
292STEP 41 TIME_PASSES EVAL ${3010}
293STEP 42 QUERY
294ENTRY_BEGIN
295REPLY RD DO
296SECTION QUESTION
297www.example.com. IN A
298ENTRY_END
299
300; Note the data is signed with the newly valid KSK to make sure it can be used.
301STEP 43 CHECK_ANSWER
302ENTRY_BEGIN
303MATCH all
304REPLY QR RD RA AD DO NOERROR
305SECTION QUESTION
306www.example.com. IN A
307SECTION ANSWER
308www.example.com.	3600	IN	A	10.20.30.40
309www.example.com.	3600	IN	RRSIG	A 5 3 3600 20091124111500 20091018111500 60946 example.com. pI3iwElQXjhje3SnAfwAG/VwdRskQcLdiApbKdUbR7MIsDUpqVjxIUtSIRu/aXNt8EVA8SwZQXNmTYA2SrrBhA== ;{id = 60946}
310ENTRY_END
311
312SCENARIO_END
313