Commit | Line | Data |
---|---|---|
dc0d77d7 CE |
1 | # Requirements: |
2 | # You are running as root. | |
3 | # You have dns{cache,log}, {tiny,pick,wall,axfr,rbl}dns accounts. | |
4 | # You have local IP addresses 127.43.0.{1,2,3,4,5}. | |
5 | # You are connected to the Internet. | |
6 | # | |
7 | # Some features not tested here: | |
8 | # dns_random works. | |
9 | # random-ip works. | |
10 | # dnstrace works. | |
11 | # dnstracesort works. | |
12 | # dns_resolvconfrewrite rereads after 10 minutes or 10000 uses. | |
13 | # dns_resolvconfip rereads after 10 minutes or 10000 uses. | |
14 | # /etc/resolv.conf is parsed properly. | |
15 | # dns_transmit handles timeouts properly. | |
16 | # dns_transmit falls back to TCP properly. | |
17 | # dns_transmit handles various strange situations: e.g., NOTIMP. | |
18 | ||
19 | ||
20 | umask 022 | |
21 | ||
22 | rm -rf rts-tmp | |
23 | service=`pwd`/rts-tmp/service | |
24 | ||
25 | mkdir rts-tmp | |
26 | mkdir $service | |
27 | ||
28 | echo ' | |
29 | *.b:.2.3.4 | |
30 | =localhost:localhost. | |
31 | -.localhost:localhost. | |
32 | ?:+.yp.to+.cr.yp.to+.whatever.cr.yp.to | |
33 | *.: | |
34 | ' > rts-tmp/rewrite | |
35 | ||
36 | DNSREWRITEFILE=rts-tmp/rewrite; export DNSREWRITEFILE | |
37 | DNSCACHEIP=127.555.0.1; export DNSCACHEIP | |
38 | ||
39 | ||
40 | echo '--- dnscache-conf works' | |
41 | dnscache-conf dnscache dnslog $service/dnscache 127.555.0.1 | |
42 | echo 127.555.0.2 > $service/dnscache/root/servers/tEST | |
43 | echo 127.555.0.2 > $service/dnscache/root/servers/tEST5 | |
44 | echo 127.555.0.4 > $service/dnscache/root/servers/43.127.iN-aDDR.aRPA | |
45 | touch $service/dnscache/root/ip/127.43.0.1 | |
46 | supervise $service/dnscache | supervise $service/dnscache/log & | |
47 | ||
48 | echo '--- tinydns-conf works' | |
49 | tinydns-conf tinydns dnslog $service/tinydns 127.555.0.2 | |
50 | supervise $service/tinydns | supervise $service/tinydns/log & | |
51 | ||
52 | echo '--- pickdns-conf works' | |
53 | pickdns-conf pickdns dnslog $service/pickdns 127.555.0.3 | |
54 | supervise $service/pickdns | supervise $service/pickdns/log & | |
55 | ||
56 | echo '--- walldns-conf works' | |
57 | walldns-conf walldns dnslog $service/walldns 127.555.0.4 | |
58 | supervise $service/walldns | supervise $service/walldns/log & | |
59 | ||
60 | echo '--- rbldns-conf works' | |
61 | rbldns-conf rbldns dnslog $service/rbldns 127.555.0.5 RbL.TeSt | |
62 | supervise $service/rbldns | supervise $service/rbldns/log & | |
63 | ||
64 | echo '--- axfrdns-conf works' | |
65 | axfrdns-conf axfrdns dnslog $service/axfrdns $service/tinydns 127.555.0.2 | |
66 | supervise $service/axfrdns | supervise $service/axfrdns/log & | |
67 | ||
68 | sleep 1 | |
69 | ||
70 | ||
71 | echo '--- cache handles simple example' | |
72 | cachetest \ | |
73 | one two three four five \ | |
74 | one:un one two three four five \ | |
75 | two:deux one two three four five \ | |
76 | three:trois one two three four five \ | |
77 | four:quatre one two three four five \ | |
78 | five:cinq one two three four five \ | |
79 | one:een one two three four five \ | |
80 | two:twee one two three four five \ | |
81 | three:drie one two three four five \ | |
82 | four:vier one two three four five \ | |
83 | five:vijf one two three four five | |
84 | echo $? | |
85 | ||
86 | echo '--- cache handles overwriting' | |
87 | cachetest \ | |
88 | one two three four five \ | |
89 | one:un one two three four five \ | |
90 | one:een one two three four five \ | |
91 | two:deux one two three four five \ | |
92 | two:twee one two three four five \ | |
93 | three:trois one two three four five \ | |
94 | three:drie one two three four five \ | |
95 | four:quatre one two three four five \ | |
96 | four:vier one two three four five \ | |
97 | five:cinq one two three four five \ | |
98 | five:vijf one two three four five | |
99 | echo $? | |
100 | ||
101 | echo '--- cache handles long chains' | |
102 | cachetest \ | |
103 | a:1 a \ | |
104 | a:2 a \ | |
105 | a:3 a \ | |
106 | a:4 a \ | |
107 | a:5 a \ | |
108 | a:6 a \ | |
109 | a:7 a \ | |
110 | a:8 a \ | |
111 | a:9 a | |
112 | echo $? | |
113 | ||
114 | ||
115 | echo '--- dnsip finds IP address of network-surveys.cr.yp.to' | |
116 | dnsip network-surveys.cr.yp.to | |
117 | echo $? | |
118 | ||
119 | echo '--- dnsip does not find nonexistent.cr.yp.to' | |
120 | dnsip nonexistent.cr.yp.to | |
121 | echo $? | |
122 | ||
123 | echo '--- dnsip rejects overly long domain names' | |
124 | dnsip x.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789 | |
125 | echo $? | |
126 | ||
127 | echo '--- dnsip handles IP address on input' | |
128 | dnsip 1.2.3.4 127.0.0.1 10.555.678.901 '[010.0555.0678.0901]' | |
129 | echo $? | |
130 | ||
131 | echo '--- dnsip allows 0 to be omitted' | |
132 | dnsip 127...1 | |
133 | echo $? | |
134 | ||
135 | echo '--- dnsip handles multiple IP addresses on input' | |
136 | dnsip 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16 | |
137 | echo $? | |
138 | ||
139 | echo '--- dnsipq handles simple examples' | |
140 | dnsipq 1.b localhost anything.localhost 5.6.7.8 network-surveys nonexistent | |
141 | echo $? | |
142 | ||
143 | echo '--- dnsmx finds MX record for network-surveys.cr.yp.to' | |
144 | dnsmx network-surveys.cr.yp.to | |
145 | echo $? | |
146 | ||
147 | echo '--- dnsmx manufactures MX record for nonexistent.cr.yp.to' | |
148 | dnsmx NONexistent.cr.yp.to | |
149 | echo $? | |
150 | ||
151 | echo '--- dnsmx rejects overly long domain names' | |
152 | dnsmx 0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789 | |
153 | echo $? | |
154 | ||
155 | echo '--- dnstxt finds TXT record for leap.yp.to' | |
156 | dnstxt leap.yp.to | |
157 | echo $? | |
158 | ||
159 | echo '--- dnstxt does not find nonexistent.cr.yp.to' | |
160 | dnstxt nonexistent.cr.yp.to | |
161 | echo $? | |
162 | ||
163 | echo '--- dnstxt rejects overly long domain names' | |
164 | dnstxt 0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789 | |
165 | echo $? | |
166 | ||
167 | echo '--- dnsname finds host name of 131.193.178.100' | |
168 | dnsname 131.193.178.100 | |
169 | echo $? | |
170 | ||
171 | echo '--- dnsname does not find 127.5.6.7' | |
172 | dnsname 127.5.6.7 | |
173 | echo $? | |
174 | ||
175 | echo '--- dnsname rejects misformatted IP addresses' | |
176 | dnsname 1.2.3 | |
177 | echo $? | |
178 | ||
179 | echo '--- dnsfilter finds some host names' | |
180 | echo '131.193.178.100+one two three | |
181 | 127.5.6.7+one two three | |
182 | 10+one two three' | dnsfilter | |
183 | echo $? | |
184 | ||
185 | ||
186 | echo ' | |
187 | =movie.edu:1.2.3.4 | |
188 | *star | |
189 | ' > rts-tmp/data | |
190 | ||
191 | echo '--- tinydns-data complains about unrecognized initial characters' | |
192 | ( cd rts-tmp; tinydns-data; echo $? ) | |
193 | ||
194 | echo ' | |
195 | .movie.edu:192.249.249.3:a | |
196 | .movie.edu::wormhole.movie.edu | |
197 | &fx.movie.edu:192.253.254.2:a | |
198 | &fx.movie.edu:192.253.254.3:b | |
199 | .249.249.192.in-addr.arpa:192.249.249.3:a | |
200 | .249.249.192.in-addr.arpa::wormhole.movie.edu | |
201 | .253.253.192.in-addr.arpa:192.249.249.3:a | |
202 | .253.253.192.in-addr.arpa:192.249.249.1:b | |
203 | .253.253.192.in-addr.arpa:192.253.253.1:c | |
204 | .254.253.192.in-addr.arpa:192.253.254.2:a | |
205 | .254.253.192.in-addr.arpa:192.253.254.3:b | |
206 | ||
207 | +localhost.movie.edu:127.0.0.1 | |
208 | ||
209 | @movie.edu:192.249.249.1:a | |
210 | ||
211 | '\''movie.edu:Movie University | |
212 | :movie.edu:12345:One | |
213 | :movie.edu:12345:Two | |
214 | :movie.edu:12346:Three | |
215 | :movie.edu:12346:Four | |
216 | ||
217 | =wormhole.movie.edu:192.249.249.1 | |
218 | +wh249.movie.edu:192.249.249.1 | |
219 | =robocop.movie.edu:192.249.249.2 | |
220 | =terminator.movie.edu:192.249.249.3 | |
221 | +bigt.movie.edu:192.249.249.3 | |
222 | =diehard.movie.edu:192.249.294.4 | |
223 | +dh.movie.edu:192.249.294.4 | |
224 | ||
225 | =wormhole.movie.edu:192.253.253.1 | |
226 | +wh253.movie.edu:192.253.253.1 | |
227 | +wh.movie.edu:192.253.253.1 | |
228 | +wh.movie.edu:192.253.253.1 | |
229 | =misery.movie.edu:192.253.253.2 | |
230 | =shining.movie.edu:192.253.253.3 | |
231 | =carrie.movie.edu:192.253.253.4 | |
232 | ||
233 | .blah.movie.edu:1.2.3.4:blah.movie.edu | |
234 | '\''blah.movie.edu:Text | |
235 | ' > rts-tmp/data | |
236 | utime rts-tmp/data 987654321 | |
237 | ||
238 | echo '--- tinydns-data complains if it cannot create data.tmp' | |
239 | rm -f rts-tmp/data.tmp | |
240 | ln -s data.tmp rts-tmp/data.tmp | |
241 | ( cd rts-tmp; tinydns-data; echo $? ) | |
242 | rm -f rts-tmp/data.tmp | |
243 | ||
244 | echo '--- tinydns-data handles simple example' | |
245 | ( cd rts-tmp; tinydns-data; echo $? ) | |
246 | ||
247 | echo '--- tinydns-data produces A records' | |
248 | ( cd rts-tmp; tinydns-get 1 wormhole.movie.edu | sort; echo $? ) | |
249 | ||
250 | echo '--- tinydns-data produces NS records' | |
251 | ( cd rts-tmp; tinydns-get 2 movie.edu; echo $? ) | |
252 | ||
253 | echo '--- tinydns-data produces SOA records' | |
254 | ( cd rts-tmp; tinydns-get 6 movie.edu; echo $? ) | |
255 | ||
256 | echo '--- tinydns-data produces PTR records' | |
257 | ( cd rts-tmp; tinydns-get 12 1.253.253.192.in-addr.arpa; echo $? ) | |
258 | ||
259 | echo '--- tinydns-data produces MX records' | |
260 | ( cd rts-tmp; tinydns-get 15 movie.edu; echo $? ) | |
261 | ||
262 | echo '--- tinydns-data produces TXT records' | |
263 | ( cd rts-tmp; tinydns-get 16 movie.edu; echo $? ) | |
264 | ||
265 | echo '--- tinydns-data produces AXFR responses' | |
266 | ( cd rts-tmp; tinydns-get 252 movie.edu; echo $? ) | |
267 | ||
268 | echo '--- tinydns-data produces ANY responses' | |
269 | ( cd rts-tmp; tinydns-get 255 movie.edu; echo $? ) | |
270 | ||
271 | echo '--- tinydns-data produces records of any type' | |
272 | ( cd rts-tmp; tinydns-get 12345 movie.edu; echo $? ) | |
273 | ( cd rts-tmp; tinydns-get 12346 movie.edu; echo $? ) | |
274 | ||
275 | echo '--- tinydns-data produces NODATA responses' | |
276 | ( cd rts-tmp; tinydns-get 54321 movie.edu; echo $? ) | |
277 | ||
278 | echo '--- tinydns-data produces NXDOMAIN responses' | |
279 | ( cd rts-tmp; tinydns-get 1 this.does.not.exist.movie.edu; echo $? ) | |
280 | ||
281 | echo '--- tinydns-data produces NXDOMAIN responses for suffixes' | |
282 | ( cd rts-tmp; tinydns-get 1 ns.movie.edu; echo $? ) | |
283 | ||
284 | echo '--- tinydns-data produces NXDOMAIN ANY responses for suffixes' | |
285 | ( cd rts-tmp; tinydns-get 255 ns.movie.edu; echo $? ) | |
286 | ||
287 | echo '--- tinydns-data does not produce responses outside its bailiwick' | |
288 | ( cd rts-tmp; tinydns-get 1 edu; echo $? ) | |
289 | ||
290 | echo '--- tinydns-data does not include TXT in additional sections' | |
291 | ( cd rts-tmp; tinydns-get 1 blah.movie.edu; echo $? ) | |
292 | ||
293 | ||
294 | echo ' | |
295 | .test:10.2.3.4:a | |
296 | +b.ns.test:10.2.3.6:259200 | |
297 | .test:10.2.3.5:b | |
298 | '\''127.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 | |
299 | '\''128.test:01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 | |
300 | '\''254.test:01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123 | |
301 | '\''255.test:012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234 | |
302 | '\''387.test:012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 | |
303 | '\''388.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 | |
304 | '\''400.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 | |
305 | '\''410.test:01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 | |
306 | '\''420.test:012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 | |
307 | '\''430.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 | |
308 | '\''435.test:012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234 | |
309 | '\''436.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 | |
310 | '\''1000.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 | |
311 | =\000\001\177\200\277\.\.\..test:10.5.6.7 | |
312 | .7.6.5.10.in-addr.arpa:10.5.6.7 | |
313 | ||
314 | &x.\0\1\177\200\277\.\.\..test:10.8.9.10 | |
315 | ' > rts-tmp/data | |
316 | utime rts-tmp/data 0 | |
317 | ||
318 | echo '--- tinydns-data handles another example' | |
319 | ( cd rts-tmp; tinydns-data; echo $? ) | |
320 | ||
321 | echo '--- tinydns-data uses serial 1 for mtime 0' | |
322 | ( cd rts-tmp; tinydns-get Any test; echo $? ) | |
323 | ||
324 | echo '--- tinydns-data does not split size-127 TXT records' | |
325 | ( cd rts-tmp; tinydns-get Txt 127.test; echo $? ) | |
326 | ||
327 | echo '--- tinydns-data splits size-128 TXT records' | |
328 | ( cd rts-tmp; tinydns-get 16 128.test; echo $? ) | |
329 | ||
330 | echo '--- tinydns-data splits size-254 TXT records' | |
331 | ( cd rts-tmp; tinydns-get 16 254.test; echo $? ) | |
332 | ||
333 | echo '--- tinydns-data doubly splits size-255 TXT records' | |
334 | ( cd rts-tmp; tinydns-get 16 255.test; echo $? ) | |
335 | ||
336 | echo '--- tinydns-data excludes the additional section if necessary' | |
337 | ( cd rts-tmp; tinydns-get 16 387.test; echo $? ) | |
338 | ( cd rts-tmp; tinydns-get 16 388.test; echo $? ) | |
339 | ||
340 | echo '--- tinydns-data excludes the authority section if necessary' | |
341 | ( cd rts-tmp; tinydns-get 16 435.test; echo $? ) | |
342 | ( cd rts-tmp; tinydns-get 16 436.test; echo $? ) | |
343 | ||
344 | echo '--- tinydns-data handles size-1000 TXT records' | |
345 | ( cd rts-tmp; tinydns-get 16 1000.test; echo $? ) | |
346 | ||
347 | echo '--- tinydns-data handles unusual characters in owner names' | |
348 | ( cd rts-tmp; tinydns-get A '\0\1\177\200\277\56\56\56.test'; echo $? ) | |
349 | ||
350 | echo '--- tinydns-data handles unusual characters in PTR results' | |
351 | ( cd rts-tmp; tinydns-get Ptr 7.6.5.10.in-addr.arpa; echo $? ) | |
352 | ||
353 | echo '--- tinydns-data handles delegations' | |
354 | ( cd rts-tmp; tinydns-get 1 'x.\0\1\177\200\277\56\56\56.test'; echo $? ) | |
355 | ( cd rts-tmp; tinydns-get 1 'ns.x.\0\1\177\200\277\56\56\56.test'; echo $? ) | |
356 | ( cd rts-tmp; tinydns-get 1 'z.y.x.\0\1\177\200\277\56\56\56.test'; echo $? ) | |
357 | ||
358 | ||
359 | echo ' | |
360 | Ztest:Primary.Server:Host.Master:1234567:2345678:3456789:4567890:5678901:98765 | |
361 | &test:1.2.3.4::37 | |
362 | @*.wild.test:1.2.3.7:mail.wild.test:54321:46 | |
363 | &child.test:1.2.3.5::38 | |
364 | @test:1.2.3.4:::41 | |
365 | =test:1.2.3.4:39 | |
366 | +www.test:1.2.3.4:40 | |
367 | '\''test:Text:42 | |
368 | :test:12345:Binary:43 | |
369 | Cmail.test:www.test:44 | |
370 | +*.wild.test:1.2.3.6:45 | |
371 | =override.wild.test:1.2.3.8:47 | |
372 | +*.wild.wild.test:1.2.3.9:48 | |
373 | &child.wild.test:1.2.3.10:49 | |
374 | C*.alias.wild.test:wild.test:50 | |
375 | ' > rts-tmp/data | |
376 | utime rts-tmp/data 0 | |
377 | ||
378 | echo '--- tinydns-data handles another example' | |
379 | ( cd rts-tmp; tinydns-data; echo $? ) | |
380 | ||
381 | echo '--- tinydns-data handles TTLs' | |
382 | ( cd rts-tmp; tinydns-get 255 test; echo $? ) | |
383 | ( cd rts-tmp; tinydns-get 255 www.test; echo $? ) | |
384 | ( cd rts-tmp; tinydns-get 255 child.test; echo $? ) | |
385 | ||
386 | echo '--- tinydns-data handles CNAMEs' | |
387 | ( cd rts-tmp; tinydns-get 255 mail.test; echo $? ) | |
388 | ( cd rts-tmp; tinydns-get 5 mail.test; echo $? ) | |
389 | ( cd rts-tmp; tinydns-get 1 mail.test; echo $? ) | |
390 | ( cd rts-tmp; tinydns-get 255 foo.mail.test; echo $? ) | |
391 | ||
392 | echo '--- tinydns-data does not apply wildcard A to base name' | |
393 | ( cd rts-tmp; tinydns-get 1 wild.test; echo $? ) | |
394 | ||
395 | echo '--- tinydns-data handles wildcard A records' | |
396 | ( cd rts-tmp; tinydns-get 1 x.wild.test; echo $? ) | |
397 | ( cd rts-tmp; tinydns-get 1 xy.wild.test; echo $? ) | |
398 | ( cd rts-tmp; tinydns-get 1 x.z.wild.test; echo $? ) | |
399 | ||
400 | echo '--- tinydns-data handles wildcard MX records' | |
401 | ( cd rts-tmp; tinydns-get 255 wild.test; echo $? ) | |
402 | ||
403 | echo '--- tinydns-data does not apply wildcard MX to base name' | |
404 | ( cd rts-tmp; tinydns-get 255 x.wild.test; echo $? ) | |
405 | ( cd rts-tmp; tinydns-get 255 xy.wild.test; echo $? ) | |
406 | ( cd rts-tmp; tinydns-get 15 x.z.wild.test; echo $? ) | |
407 | ( cd rts-tmp; tinydns-get 255 x.z.wild.test; echo $? ) | |
408 | ( cd rts-tmp; tinydns-get 255 '*'.wild.test; echo $? ) | |
409 | ||
410 | echo '--- tinydns-data uses wildcard under base of sub-wildcard' | |
411 | ( cd rts-tmp; tinydns-get 255 alias.wild.test; echo $? ) | |
412 | ||
413 | echo '--- tinydns-data handles wildcard CNAME records' | |
414 | ( cd rts-tmp; tinydns-get 255 xyz.alias.wild.test; echo $? ) | |
415 | ( cd rts-tmp; tinydns-get 255 '*'.alias.wild.test; echo $? ) | |
416 | ||
417 | echo '--- tinydns-data lets explicit record override wildcard' | |
418 | ( cd rts-tmp; tinydns-get 255 override.wild.test; echo $? ) | |
419 | ||
420 | echo '--- tinydns-data handles overrides sanely' | |
421 | ( cd rts-tmp; tinydns-get 255 x.override.wild.test; echo $? ) | |
422 | ||
423 | echo '--- tinydns-data overrides wildcard with subdomain wildcard' | |
424 | ( cd rts-tmp; tinydns-get 255 x.wild.wild.test; echo $? ) | |
425 | ||
426 | echo '--- tinydns-data overrides wildcard with delegation' | |
427 | ( cd rts-tmp; tinydns-get 255 child.wild.test; echo $? ) | |
428 | ( cd rts-tmp; tinydns-get 255 x.child.wild.test; echo $? ) | |
429 | ||
430 | ||
431 | echo ' | |
432 | .four:1.2.3.4::0:30000000fedcba98 | |
433 | +www.four:1.2.3.4:0:30000000fedcba98 | |
434 | .five:1.2.3.5:::30000000fedcba98 | |
435 | +www.five:1.2.3.5::30000000fedcba98 | |
436 | .six:1.2.3.6::0:50000000fedcba98 | |
437 | +www.six:1.2.3.6:0:50000000fedcba98 | |
438 | .seven:1.2.3.7:::50000000fedcba98 | |
439 | +www.seven:1.2.3.7::50000000fedcba98 | |
440 | ' > rts-tmp/data | |
441 | utime rts-tmp/data 7654321 | |
442 | ||
443 | echo '--- tinydns-data handles another example' | |
444 | ( cd rts-tmp; tinydns-data; echo $? ) | |
445 | ||
446 | echo '--- tinydns-data handles ending time' | |
447 | ( cd rts-tmp; tinydns-get 255 www.four; echo $? ) | |
448 | ( cd rts-tmp; tinydns-get 255 www.six; echo $? ) | |
449 | ||
450 | echo '--- tinydns-data handles starting time' | |
451 | ( cd rts-tmp; tinydns-get 255 www.five; echo $? ) | |
452 | ( cd rts-tmp; tinydns-get 255 www.seven; echo $? ) | |
453 | ||
454 | ||
455 | echo '--- tinydns-edit handles simple examples' | |
456 | echo '' > rts-tmp/data | |
457 | ( cd rts-tmp; tinydns-edit data data.new add ns heaven.af.mil 1.2.3.5; echo $? ) | |
458 | ( cd rts-tmp; tinydns-edit data data.new add ns heaven.af.mil 1.2.3.6; echo $? ) | |
459 | ( cd rts-tmp; tinydns-edit data data.new add childns sub.heaven.af.mil 1.2.10.11; echo $? ) | |
460 | ( cd rts-tmp; tinydns-edit data data.new add childns sub.heaven.af.mil 1.2.10.12; echo $? ) | |
461 | ( cd rts-tmp; tinydns-edit data data.new add host lion.heaven.af.mil 1.2.3.4; echo $? ) | |
462 | ( cd rts-tmp; tinydns-edit data data.new add host tiger.heaven.af.mil 1.2.3.5; echo $? ) | |
463 | ( cd rts-tmp; tinydns-edit data data.new add host bear.heaven.af.mil 1.2.3.6; echo $? ) | |
464 | ( cd rts-tmp; tinydns-edit data data.new add alias www.heaven.af.mil 1.2.3.4; echo $? ) | |
465 | ( cd rts-tmp; tinydns-edit data data.new add mx heaven.af.mil 1.2.3.4; echo $? ) | |
466 | ( cd rts-tmp; tinydns-edit data data.new add mx heaven.af.mil 1.2.3.7; echo $? ) | |
467 | cat rts-tmp/data | |
468 | ||
469 | echo '--- tinydns-edit rejects hosts with old names or IP addresses' | |
470 | ( cd rts-tmp; tinydns-edit data data.new add host panda.heaven.af.mil 1.2.3.6; echo $? ) | |
471 | ( cd rts-tmp; tinydns-edit data data.new add host bear.heaven.af.mil 1.2.3.8; echo $? ) | |
472 | cat rts-tmp/data | |
473 | ||
474 | echo '--- tinydns-edit recognizes alternate forms of host names' | |
475 | ( cd rts-tmp; tinydns-edit data data.new add host 'BE\101r.Heaven.AF..Mil.' 1.2.3.8; echo $? ) | |
476 | cat rts-tmp/data | |
477 | ||
478 | echo '--- tinydns-edit copies TTLs from previous NS records' | |
479 | echo '.test:1.2.3.4:a:3600' > rts-tmp/data | |
480 | ( cd rts-tmp; tinydns-edit data data.new add ns test 1.2.3.5; echo $? ) | |
481 | cat rts-tmp/data | |
482 | ||
483 | ||
484 | ||
485 | echo ' | |
486 | .Test:127.555.0.2 | |
487 | =Www.Test:127.555.0.100 | |
488 | =Www.Test:127.555.0.101 | |
489 | @Test:127.555.0.100:a:1234 | |
490 | @Test:127.555.0.101:b:45678 | |
491 | &Pick.Test:127.555.0.3 | |
492 | &Pick2.Test:127.555.0.3 | |
493 | &Rbl.Test:127.555.0.5 | |
494 | .Test2:127.555.0.2 | |
495 | +*.Test2:127.555.0.102 | |
496 | C*.Www.Test2:Www.Test2:5000 | |
497 | =one.Test2:127.555.0.103::300000003456789a | |
498 | =two.Test2:127.555.0.104:0:500000003456789a | |
499 | .Test3:127.555.0.2 | |
500 | =Www.Test3:127.0.0.106 | |
501 | .Test4:127.555.0.2 | |
502 | '\''Test4:001234567890123456789012345678901234567890123456789 | |
503 | '\''Test4:101234567890123456789012345678901234567890123456789 | |
504 | '\''Test4:201234567890123456789012345678901234567890123456789 | |
505 | '\''Test4:301234567890123456789012345678901234567890123456789 | |
506 | '\''Test4:401234567890123456789012345678901234567890123456789 | |
507 | '\''Test4:501234567890123456789012345678901234567890123456789 | |
508 | '\''Test4:601234567890123456789012345678901234567890123456789 | |
509 | '\''Test4:701234567890123456789012345678901234567890123456789 | |
510 | '\''Test4:801234567890123456789012345678901234567890123456789 | |
511 | '\''Test4:901234567890123456789012345678901234567890123456789 | |
512 | '\''Big.Test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 | |
513 | %i3:127.555.0.3 | |
514 | %i4:127.555.0.4 | |
515 | %i5:127.555.0.5 | |
516 | %ME:127 | |
517 | %EX | |
518 | .Test5:127.555.0.2:ex:::EX | |
519 | .Test5:127.555.0.2:me:::ME | |
520 | .Test5:127.555.0.2:i3:::i3 | |
521 | .Test5:127.555.0.2:i4:::i4 | |
522 | .Test5:127.555.0.2:i5:::i5 | |
523 | -Pick.Test5:127.555.0.100:::EX | |
524 | +Pick.Test5:127.555.0.101:::EX | |
525 | -Pick2.Test5:127.555.0.102:::ME | |
526 | +Pick2.Test5:127.555.0.102:::ME | |
527 | +Pick3.Test5:127.555.0.100 | |
528 | +Pick3.Test5:127.555.0.101:::EX | |
529 | +Pick3.Test5:127.555.0.102:::ME | |
530 | +Pick3.Test5:127.555.0.103:::i3 | |
531 | +Pick3.Test5:127.555.0.104:::i4 | |
532 | +Pick3.Test5:127.555.0.105:::i5 | |
533 | +*.Wild.Test5:127.555.0.100 | |
534 | +*.Wild.Test5:127.555.0.101:::EX | |
535 | +*.Wild.Test5:127.555.0.102:::ME | |
536 | +*.Wild.Test5:127.555.0.103:::i3 | |
537 | +*.Wild.Test5:127.555.0.104:::i4 | |
538 | +*.Wild.Test5:127.555.0.105:::i5 | |
539 | ' > $service/tinydns/root/data | |
540 | utime $service/tinydns/root/data 987654321 | |
541 | ( cd $service/tinydns/root; tinydns-data ) | |
542 | ||
543 | echo ' | |
544 | -Pick.Test:127.555.0.100 | |
545 | +Pick.Test:127.555.0.101 | |
546 | -Pick2.Test:127.555.0.102:ME | |
547 | +Pick2.Test:127.555.0.102:ME | |
548 | %ME:127 | |
549 | ' > $service/pickdns/root/data | |
550 | ( cd $service/pickdns/root; pickdns-data ) | |
551 | ||
552 | echo ' | |
553 | 4.0.0.1 | |
554 | 4.0.0.2/31 | |
555 | 4.0.0.4/30 | |
556 | 4.0.0.8/29 | |
557 | 4.0.0.16/28 | |
558 | 4.0.0.32/27 | |
559 | 4.0.0.64/26 | |
560 | 4.0.0.128/25 | |
561 | 4.0.1.0/24 | |
562 | 4.0.2.0/23 | |
563 | 4.0.4.0/22 | |
564 | 4.0.8.0/21 | |
565 | 4.0.16.0/20 | |
566 | 4.0.32.0/19 | |
567 | 4.0.64.0/18 | |
568 | 4.0.128.0/17 | |
569 | 4.1.0.0/16 | |
570 | 4.2.0.0/15 | |
571 | 4.4.0.0/14 | |
572 | 4.8.0.0/13 | |
573 | 4.16.0.0/12 | |
574 | 4.32.0.0/11 | |
575 | 4.64.0.0/10 | |
576 | 4.128.0.0/9 | |
577 | 5.0.0.0/8 | |
578 | :127.0.0.3:See http://www.rbl.test/$ | |
579 | ' > $service/rbldns/root/data | |
580 | ( cd $service/rbldns/root; rbldns-data ) | |
581 | ||
582 | echo ' | |
583 | 127.:allow,AXFR="tEsT/TeSt2/TEst5" | |
584 | :deny | |
585 | ' > $service/axfrdns/tcp | |
586 | ( cd $service/axfrdns; tcprules tcp.cdb tcp.tmp < tcp ) | |
587 | ||
588 | ||
589 | echo '--- dnscache handles dotted-decimal names' | |
590 | dnsqr 255 127.43.123.234 | |
591 | echo $? | |
592 | ||
593 | echo '--- tinydns works' | |
594 | dnsip WWW.TEST | tr ' ' '\012' | sort | |
595 | echo $? | |
596 | dnsmx TEST | |
597 | echo $? | |
598 | dnsq 255 WWW.TEST 127.555.0.2 | sort | |
599 | echo $? | |
600 | dnsq Any TEST 127.555.0.2 | |
601 | echo $? | |
602 | ||
603 | echo '--- dnscache handles large TXT records' | |
604 | dnstxt BIG.Test | |
605 | ||
606 | echo '--- walldns handles in-addr.arpa names' | |
607 | dnsname 127.555.6.7 | |
608 | echo $? | |
609 | dnsname 127.555.123.234 | |
610 | echo $? | |
611 | dnsip 234.123.43.127.IN-ADDR.ARPA | |
612 | echo $? | |
613 | dnsq 255 234.123.43.127.IN-ADDR.ARPA 127.555.0.4 | |
614 | echo $? | |
615 | ||
616 | echo '--- walldns handles dotted-decimal names' | |
617 | dnsq 255 127.43.123.234 127.555.0.4 | |
618 | echo $? | |
619 | ||
620 | echo '--- walldns rejects other names' | |
621 | dnsq 255 BLAH.TEST 127.555.0.4 | |
622 | echo $? | |
623 | ||
624 | echo '--- rbldns works' | |
625 | dnsip 2.3.4.5.rbl.test | |
626 | echo $? | |
627 | dnstxt 2.3.4.5.rbl.test | |
628 | echo $? | |
629 | dnsq 255 2.3.4.5.rbl.test 127.555.0.5 | |
630 | echo $? | |
631 | dnsip 200.255.1.4.rbl.test | |
632 | echo $? | |
633 | dnstxt 200.255.1.4.rbl.test | |
634 | echo $? | |
635 | dnsq 255 200.255.1.4.rbl.test 127.555.0.5 | |
636 | echo $? | |
637 | dnsip 200.255.0.4.rbl.test | |
638 | echo $? | |
639 | dnstxt 200.255.0.4.rbl.test | |
640 | echo $? | |
641 | dnsq 255 200.255.0.4.rbl.test 127.555.0.5 | |
642 | echo $? | |
643 | dnsip 1.0.0.4.rbl.test | |
644 | echo $? | |
645 | dnstxt 1.0.0.4.rbl.test | |
646 | echo $? | |
647 | dnsq 255 1.0.0.4.rbl.test 127.555.0.5 | |
648 | echo $? | |
649 | dnsip 0.0.0.4.rbl.test | |
650 | echo $? | |
651 | dnstxt 0.0.0.4.rbl.test | |
652 | echo $? | |
653 | dnsq 255 0.0.0.4.rbl.test 127.555.0.5 | |
654 | echo $? | |
655 | ||
656 | echo '--- tinydns handles differentiation' | |
657 | dnsip PICK.TEST5 | |
658 | echo $? | |
659 | dnsip PICK2.TEST5 | |
660 | echo $? | |
661 | dnsip PICK3.TEST5 | tr ' ' '\012' | sort | |
662 | echo $? | |
663 | dnsip REALLY.WILD.TEST5 | tr ' ' '\012' | sort | |
664 | echo $? | |
665 | dnsq 255 PICK.TEST5 127.555.0.2 | |
666 | echo $? | |
667 | dnsq 255 PICK2.TEST5 127.555.0.2 | |
668 | echo $? | |
669 | dnsq 255 PICK3.TEST5 127.555.0.2 | sort | |
670 | echo $? | |
671 | dnsq 255 REALLY.WILD.TEST5 127.555.0.2 | sort | |
672 | echo $? | |
673 | ||
674 | echo '--- tinydns-get handles differentiation' | |
675 | ( cd rts-tmp/service/tinydns/root | |
676 | tinydns-get 255 PICK.TEST5 1.2.3.4; echo $? | |
677 | tinydns-get 255 PICK2.TEST5 1.2.3.4; echo $? | |
678 | tinydns-get 255 PICK3.TEST5 1.2.3.4 | sort; echo $? | |
679 | tinydns-get 255 REALLY.WILD.TEST5 1.2.3.4 | sort; echo $? | |
680 | tinydns-get 255 PICK.TEST5 127.555.0.4; echo $? | |
681 | tinydns-get 255 PICK2.TEST5 127.555.0.4; echo $? | |
682 | tinydns-get 255 PICK3.TEST5 127.555.0.4 | sort; echo $? | |
683 | tinydns-get 255 REALLY.WILD.TEST5 127.555.0.4 | sort; echo $? | |
684 | ) | |
685 | ||
686 | echo '--- pickdns works' | |
687 | dnsip PICK.TEST | |
688 | echo $? | |
689 | dnsip PICK2.TEST | |
690 | echo $? | |
691 | dnsq 255 PICK.TEST 127.555.0.3 | |
692 | echo $? | |
693 | ||
694 | echo '--- pickdns answers MX' | |
695 | dnsmx PICK.TEST | |
696 | echo $? | |
697 | ||
698 | echo '--- pickdns rejects queries for unknown information' | |
699 | dnsq 255 PICK11.TEST 127.555.0.3 | |
700 | echo $? | |
701 | dnsq Txt PICK2.TEST 127.555.0.3 | |
702 | echo $? | |
703 | ||
704 | echo '--- axfrdns rejects unauthorized transfer attempts' | |
705 | tcpclient -RHl0 127.43.0.2 53 axfr-get TEST3 rts-tmp/zone rts-tmp/zone.tmp | |
706 | echo $? | |
707 | tcpclient -RHl0 127.43.0.2 53 axfr-get TEST4 rts-tmp/zone2 rts-tmp/zone2.tmp | |
708 | echo $? | |
709 | ||
710 | echo '--- axfrdns works' | |
711 | tcpclient -RHl0 127.43.0.2 53 axfr-get TEST rts-tmp/zone rts-tmp/zone.tmp | |
712 | echo $? | |
713 | cat rts-tmp/zone | |
714 | ||
715 | echo '--- axfrdns handles differentiation' | |
716 | tcpclient -RHl0 -i 127.43.0.2 127.43.0.2 53 axfr-get TEST5 rts-tmp/zone5 rts-tmp/zone5.tmp | |
717 | echo $? | |
718 | cat rts-tmp/zone5 | |
719 | rm rts-tmp/zone5 | |
720 | tcpclient -RHl0 -i 127.43.0.3 127.43.0.2 53 axfr-get TEST5 rts-tmp/zone5 rts-tmp/zone5.tmp | |
721 | echo $? | |
722 | cat rts-tmp/zone5 | |
723 | rm rts-tmp/zone5 | |
724 | tcpclient -RHl0 -i 127.43.0.4 127.43.0.2 53 axfr-get TEST5 rts-tmp/zone5 rts-tmp/zone5.tmp | |
725 | echo $? | |
726 | cat rts-tmp/zone5 | |
727 | rm rts-tmp/zone5 | |
728 | tcpclient -RHl0 -i 127.43.0.5 127.43.0.2 53 axfr-get TEST5 rts-tmp/zone5 rts-tmp/zone5.tmp | |
729 | echo $? | |
730 | cat rts-tmp/zone5 | |
731 | ||
732 | echo '--- axfrdns gives authoritative answers' | |
733 | dnsq any Test4 127.43.0.2 | |
734 | echo $? | |
735 | ||
736 | echo '--- axfrdns handles size-1000 TXT records' | |
737 | dnsq any BIG.TEST 127.43.0.2 | |
738 | echo $? | |
739 | ||
740 | echo '--- axfr-get handles zones with wildcards' | |
741 | tcpclient -RHl0 127.43.0.2 53 axfr-get TEST2 rts-tmp/zone2 rts-tmp/zone2.tmp | |
742 | echo $? | |
743 | cat rts-tmp/zone2 | |
744 | ||
745 | ||
746 | svc -dx $service/dnscache | |
747 | svc -dx $service/tinydns | |
748 | svc -dx $service/pickdns | |
749 | svc -dx $service/walldns | |
750 | svc -dx $service/rbldns | |
751 | svc -dx $service/axfrdns | |
752 | ||
753 | svc -dx $service/dnscache/log | |
754 | svc -dx $service/tinydns/log | |
755 | svc -dx $service/pickdns/log | |
756 | svc -dx $service/walldns/log | |
757 | svc -dx $service/rbldns/log | |
758 | svc -dx $service/axfrdns/log | |
759 | ||
760 | wait | |
761 | wait | |
762 | wait | |
763 | wait | |
764 | wait | |
765 | wait | |
766 | ||
767 | exit 0 |