]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - testdata/iter_ns_spoof.rpl
Apply upstream fix 08968baec1122a58bb90d8f97ad948a75f8a5d69:
[FreeBSD/FreeBSD.git] / testdata / iter_ns_spoof.rpl
1 ; config options
2 server:
3         harden-referral-path: yes
4         target-fetch-policy: "0 0 0 0 0"
5         qname-minimisation: "no"
6         minimal-responses: no
7 stub-zone:
8         name: "."
9         stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
10 CONFIG_END
11
12 SCENARIO_BEGIN Test NS record spoof protection.
13
14 ; K.ROOT-SERVERS.NET.
15 RANGE_BEGIN 0 100
16         ADDRESS 193.0.14.129 
17 ENTRY_BEGIN
18 MATCH opcode qtype qname
19 ADJUST copy_id
20 REPLY QR NOERROR
21 SECTION QUESTION
22 . IN NS
23 SECTION ANSWER
24 . IN NS K.ROOT-SERVERS.NET.
25 SECTION ADDITIONAL
26 K.ROOT-SERVERS.NET.     IN      A       193.0.14.129
27 ENTRY_END
28
29 ENTRY_BEGIN
30 MATCH opcode subdomain
31 ADJUST copy_id copy_query
32 REPLY QR NOERROR
33 SECTION QUESTION
34 com.    IN NS
35 SECTION AUTHORITY
36 com.    IN NS   a.gtld-servers.net.
37 SECTION ADDITIONAL
38 a.gtld-servers.net.     IN      A       192.5.6.30
39 ENTRY_END
40
41 ; for simplicity the root server is authoritative for root-servers.net
42 ; and also for gtld-servers.net
43 ENTRY_BEGIN
44 MATCH opcode qtype qname
45 ADJUST copy_id
46 REPLY QR AA NOERROR
47 SECTION QUESTION
48 K.ROOT-SERVERS.NET.     IN      A
49 SECTION ANSWER
50 K.ROOT-SERVERS.NET.     IN      A       193.0.14.129
51 ENTRY_END
52
53 ENTRY_BEGIN
54 MATCH opcode qtype qname
55 ADJUST copy_id
56 REPLY QR AA NOERROR
57 SECTION QUESTION
58 a.gtld-servers.net.     IN      A
59 SECTION ANSWER
60 a.gtld-servers.net.     IN      A       192.5.6.30
61 ENTRY_END
62
63 RANGE_END
64
65 ; a.gtld-servers.net.
66 RANGE_BEGIN 0 100
67         ADDRESS 192.5.6.30
68 ENTRY_BEGIN
69 MATCH opcode subdomain
70 ADJUST copy_id copy_query
71 REPLY QR NOERROR
72 SECTION QUESTION
73 example.com.    IN NS
74 SECTION AUTHORITY
75 example.com.    IN NS   ns.example.com.
76 SECTION ADDITIONAL
77 ns.example.com.         IN      A       1.2.3.4
78 ENTRY_END
79
80 ENTRY_BEGIN
81 MATCH opcode qtype qname
82 ADJUST copy_id
83 REPLY QR NOERROR
84 SECTION QUESTION
85 com.    IN NS
86 SECTION ANSWER
87 com.    IN NS   a.gtld-servers.net.
88 SECTION ADDITIONAL
89 a.gtld-servers.net.     IN      A       192.5.6.30
90 ENTRY_END
91 RANGE_END
92
93 ; ns.example.com.
94 RANGE_BEGIN 0 100
95         ADDRESS 1.2.3.4
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. 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
109
110 ENTRY_BEGIN
111 MATCH opcode qtype qname
112 ADJUST copy_id
113 REPLY QR NOERROR
114 SECTION QUESTION
115 mail.example.com. IN A
116 SECTION ANSWER
117 mail.example.com. IN A  10.20.30.50
118 SECTION AUTHORITY
119 example.com.    IN NS   ns.example.com.
120 SECTION ADDITIONAL
121 ns.example.com.         IN      A       1.2.3.4
122 ENTRY_END
123
124 ENTRY_BEGIN
125 MATCH opcode qtype qname
126 ADJUST copy_id
127 REPLY QR AA NOERROR
128 SECTION QUESTION
129 example.com. IN NS
130 SECTION ANSWER
131 example.com.    IN NS   ns.example.com.
132 SECTION ADDITIONAL
133 ns.example.com.         IN      A       1.2.3.4
134 ENTRY_END
135
136 ENTRY_BEGIN
137 MATCH opcode qtype qname
138 ADJUST copy_id
139 REPLY QR AA NOERROR
140 SECTION QUESTION
141 ns.example.com. IN A
142 SECTION ANSWER
143 ns.example.com.         IN      A       1.2.3.4
144 SECTION AUTHORITY
145 example.com.    IN NS   ns.example.com.
146 ENTRY_END
147
148 ;; answer to the spoofed query ; spoofed reply answer.
149 ; here we put it in the nameserver for ease.
150 ENTRY_BEGIN
151 MATCH opcode qtype qname
152 ADJUST copy_id
153 REPLY QR NOERROR
154 SECTION QUESTION
155 bad123.example.com. IN A
156 SECTION ANSWER
157 bad123.example.com. IN A        6.6.6.6
158 SECTION AUTHORITY
159 ; evil NS set.
160 example.com.    IN NS   bad123.example.com.
161 ENTRY_END
162
163 RANGE_END
164
165 ; evil server
166 RANGE_BEGIN 0 100
167         ADDRESS 6.6.6.6
168 ENTRY_BEGIN
169 MATCH opcode qtype qname
170 ADJUST copy_id
171 REPLY QR NOERROR
172 SECTION QUESTION
173 www.example.com. IN A
174 SECTION ANSWER
175 www.example.com. IN A   6.6.6.6
176 SECTION AUTHORITY
177 example.com.    IN NS   bad123.example.com.
178 SECTION ADDITIONAL
179 bad123.example.com. IN A        6.6.6.6
180 ENTRY_END
181
182 ENTRY_BEGIN
183 MATCH opcode qtype qname
184 ADJUST copy_id
185 REPLY QR NOERROR
186 SECTION QUESTION
187 mail.example.com. IN A
188 SECTION ANSWER
189 mail.example.com. IN A  6.6.6.6
190 SECTION AUTHORITY
191 example.com.    IN NS   bad123.example.com.
192 SECTION ADDITIONAL
193 bad123.example.com. IN A        6.6.6.6
194 ENTRY_END
195
196 ENTRY_BEGIN
197 MATCH opcode qtype qname
198 ADJUST copy_id
199 REPLY QR NOERROR
200 SECTION QUESTION
201 bad123.example.com. IN A
202 SECTION ANSWER
203 bad123.example.com. IN A        6.6.6.6
204 SECTION AUTHORITY
205 ; evil NS set.
206 example.com.    IN NS   bad123.example.com.
207 ENTRY_END
208 RANGE_END
209
210 STEP 1 QUERY
211 ENTRY_BEGIN
212 REPLY RD
213 SECTION QUESTION
214 www.example.com. IN A
215 ENTRY_END
216
217 ; recursion happens here.
218 STEP 10 CHECK_ANSWER
219 ENTRY_BEGIN
220 MATCH all
221 REPLY QR RD RA NOERROR
222 SECTION QUESTION
223 www.example.com. IN A
224 SECTION ANSWER
225 www.example.com. IN A   10.20.30.40
226 SECTION AUTHORITY
227 example.com.    IN NS   ns.example.com.
228 SECTION ADDITIONAL
229 ns.example.com.         IN      A       1.2.3.4
230 ENTRY_END
231
232 ; spoofed query
233 STEP 20 QUERY
234 ENTRY_BEGIN
235 REPLY RD
236 SECTION QUESTION
237 bad123.example.com. IN A
238 ENTRY_END
239
240 ; recursion happens here.
241 STEP 30 CHECK_ANSWER
242 ENTRY_BEGIN
243 ; no matching here, just accept the answer to the spoofed query.
244 ; it is wrong, but only one query ...
245 ; this test is to check further on, that we still have the right nameserver.
246 ;MATCH all
247 REPLY QR RD RA NOERROR
248 SECTION QUESTION
249 bad123.example.com. IN A
250 SECTION ANSWER
251 bad123.example.com. IN A        6.6.6.6
252 SECTION AUTHORITY
253 example.com.    IN NS   ns.example.com.
254 SECTION ADDITIONAL
255 ns.example.com.         IN      A       1.2.3.4
256 ENTRY_END
257
258 ; a new query 
259 STEP 40 QUERY
260 ENTRY_BEGIN
261 REPLY RD
262 SECTION QUESTION
263 mail.example.com. IN A
264 ENTRY_END
265
266 STEP 50 CHECK_ANSWER
267 ENTRY_BEGIN
268 MATCH all
269 REPLY QR RD RA NOERROR
270 SECTION QUESTION
271 mail.example.com. IN A
272 SECTION ANSWER
273 mail.example.com. IN A  10.20.30.50
274 SECTION AUTHORITY
275 example.com.    IN NS   ns.example.com.
276 SECTION ADDITIONAL
277 ns.example.com.         IN      A       1.2.3.4
278 ENTRY_END
279
280 SCENARIO_END