3 # Copyright (C) 2004, 2007, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
4 # Copyright (C) 2000, 2001 Internet Software Consortium.
6 # Permission to use, copy, modify, and/or distribute this software for any
7 # purpose with or without fee is hereby granted, provided that the above
8 # copyright notice and this permission notice appear in all copies.
10 # THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
11 # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12 # AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
13 # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
14 # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
15 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 # PERFORMANCE OF THIS SOFTWARE.
18 # Id: tests.sh,v 1.30 2007/06/19 23:47:06 tbox Exp
21 .
$SYSTEMTESTTOP/conf.sh
25 echo "I:fetching a.example from ns2's initial configuration"
26 $DIG +tcp
+noadd
+nosea
+nostat
+noquest
+nocomm
+nocmd
+noauth \
27 a.example. @
10.53.0.2 any
-p 5300 > dig.out.ns2.1 || status
=1
28 grep ";" dig.out.ns2.1
# XXXDCL why is this here?
30 echo "I:fetching a.example from ns3's initial configuration"
31 $DIG +tcp
+noadd
+nosea
+nostat
+noquest
+nocomm
+nocmd
+noauth \
32 a.example. @
10.53.0.3 any
-p 5300 > dig.out.ns3.1 || status
=1
33 grep ";" dig.out.ns3.1
# XXXDCL why is this here?
35 echo "I:copying in new configurations for ns2 and ns3"
36 rm -f ns
2/named.conf ns
3/named.conf ns
2/example.db
37 cp -f ns
2/named2.conf ns
2/named.conf
38 cp -f ns
3/named2.conf ns
3/named.conf
39 cp -f ns
2/example2.db ns
2/example.db
41 echo "I:reloading ns2 and ns3 with rndc"
42 $RNDC -c ..
/common
/rndc.conf
-s 10.53.0.2 -p 9953 reload
2>&1 |
sed 's/^/I:ns2 /'
43 $RNDC -c ..
/common
/rndc.conf
-s 10.53.0.3 -p 9953 reload
2>&1 |
sed 's/^/I:ns3 /'
45 echo "I:sleeping for 20 seconds"
48 echo "I:fetching a.example from ns2's 10.53.0.4, source address 10.53.0.4"
49 $DIG +tcp
+noadd
+nosea
+nostat
+noquest
+nocomm
+nocmd
+noauth \
50 -b 10.53.0.4 a.example. @
10.53.0.4 any
-p 5300 > dig.out.ns4.2 \
52 grep ";" dig.out.ns4.2
# XXXDCL why is this here?
54 echo "I:fetching a.example from ns2's 10.53.0.2, source address 10.53.0.2"
55 $DIG +tcp
+noadd
+nosea
+nostat
+noquest
+nocomm
+nocmd
+noauth \
56 -b 10.53.0.2 a.example. @
10.53.0.2 any
-p 5300 > dig.out.ns2.2 \
58 grep ";" dig.out.ns2.2
# XXXDCL why is this here?
60 echo "I:fetching a.example from ns3's 10.53.0.3, source address defaulted"
61 $DIG +tcp
+noadd
+nosea
+nostat
+noquest
+nocomm
+nocmd
+noauth \
62 @
10.53.0.3 a.example. any
-p 5300 > dig.out.ns3.2 || status
=1
63 grep ";" dig.out.ns3.2
# XXXDCL why is this here?
65 echo "I:comparing ns3's initial a.example to one from reconfigured 10.53.0.2"
66 $PERL ..
/digcomp.pl
dig.out.ns3.1
dig.out.ns2.2 || status
=1
68 echo "I:comparing ns3's initial a.example to one from reconfigured 10.53.0.3"
69 $PERL ..
/digcomp.pl
dig.out.ns3.1
dig.out.ns3.2 || status
=1
71 echo "I:comparing ns2's initial a.example to one from reconfigured 10.53.0.4"
72 $PERL ..
/digcomp.pl
dig.out.ns2.1
dig.out.ns4.2 || status
=1
74 echo "I:comparing ns2's initial a.example to one from reconfigured 10.53.0.3"
75 echo "I:(should be different)"
76 if $PERL ..
/digcomp.pl
dig.out.ns2.1
dig.out.ns3.2
>/dev
/null
78 echo "I:no differences found. something's wrong."
82 echo "I:updating cloned zone in internal view"
86 update add b.clone. 300 in a 10.1.0.3
89 echo "I:sleeping to allow update to take effect"
92 echo "I:verifying update affected both views"
94 one
=`$DIG +tcp +short -p 5300 -b 10.53.0.2 @10.53.0.2 b.clone a`
95 two
=`$DIG +tcp +short -p 5300 -b 10.53.0.4 @10.53.0.2 b.clone a`
96 if [ "$one" != "$two" ]; then
97 echo "'$one' does not match '$two'"
100 if [ $ret != 0 ]; then echo "I:failed"; fi
101 status
=`expr $status + $ret`
103 echo "I:verifying forwarder in cloned zone works"
105 one
=`$DIG +tcp +short -p 5300 -b 10.53.0.2 @10.53.0.2 child.clone txt`
106 two
=`$DIG +tcp +short -p 5300 -b 10.53.0.4 @10.53.0.2 child.clone txt`
107 three
=`$DIG +tcp +short -p 5300 @10.53.0.3 child.clone txt`
108 four
=`$DIG +tcp +short -p 5300 @10.53.0.5 child.clone txt`
109 echo "$three" |
grep NS3
> /dev
/null ||
{ ret
=1; echo "expected response from NS3 got '$three'"; }
110 echo "$four" |
grep NS5
> /dev
/null ||
{ ret
=1; echo "expected response from NS5 got '$four'"; }
111 if [ "$one" = "$two" ]; then
112 echo "'$one' matches '$two'"
115 if [ "$one" != "$three" ]; then
116 echo "'$one' does not match '$three'"
119 if [ "$two" != "$four" ]; then
120 echo "'$two' does not match '$four'"
123 if [ $ret != 0 ]; then echo "I:failed"; fi
124 status
=`expr $status + $ret`
126 if $SHELL ..
/testcrypto.sh
128 echo "I:verifying inline zones work with views"
130 $DIG @
10.53.0.2 -p 5300 -b 10.53.0.2 +dnssec DNSKEY inline
> dig.out.internal
131 $DIG @
10.53.0.2 -p 5300 -b 10.53.0.5 +dnssec DNSKEY inline
> dig.out.external
132 grep "ANSWER: 4," dig.out.internal
> /dev
/null || ret
=1
133 grep "ANSWER: 4," dig.out.external
> /dev
/null || ret
=1
134 int
=`awk '$4 == "DNSKEY" { print $8 }' dig.out.internal | sort`
135 ext
=`awk '$4 == "DNSKEY" { print $8 }' dig.out.external | sort`
136 test "$int" != "$ext" || ret
=1
137 if [ $ret != 0 ]; then echo "I:failed"; fi
138 status
=`expr $status + $ret`
141 echo "I:exit status: $status"