]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
4077. [test] Add static-stub regression test for DS NXDOMAIN
authorMark Andrews <marka@isc.org>
Fri, 27 Feb 2015 01:46:45 +0000 (12:46 +1100)
committerMark Andrews <marka@isc.org>
Fri, 27 Feb 2015 01:46:45 +0000 (12:46 +1100)
                        return making the static stub disappear. [RT #38564]

CHANGES
bin/tests/system/staticstub/clean.sh
bin/tests/system/staticstub/ns2/named.conf.in
bin/tests/system/staticstub/ns3/named.conf.in
bin/tests/system/staticstub/ns3/sign.sh
bin/tests/system/staticstub/ns3/undelegated.db.in [new file with mode: 0644]
bin/tests/system/staticstub/tests.sh

diff --git a/CHANGES b/CHANGES
index 20918958dbdea898930991aeb03d626f469721d0..ddc6d6d41f378e5834c2a2e965947c37d7fbb8e1 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+4077.  [test]          Add static-stub regression test for DS NXDOMAIN
+                       return making the static stub disappear. [RT #38564]
+
 4076.  [bug]           Named could crash on shutdown with outstanding
                        reload / reconfig events. [RT #38622]
 
index 1127a4b70a5b7046773913b0e6f1b811c87101bc..f9d8b034c5676c6e9e875f5903472c0c66ba096a 100755 (executable)
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
+rm -f dig.out.*
+rm -f ns*/named.lock
+rm -f ns2/named.conf
+rm -f ns3/example.db
+rm -f ns3/named.conf
+rm -f ns3/undelegated.db
+rm -f ns4/sub.example.db
+rm -f ns?/named.memstats
+rm -f ns?/named.run
+rm -f ns?/named_dump.db
 rm -rf */*.signed
 rm -rf */K*
 rm -rf */dsset-*
 rm -rf */trusted.conf
-rm -f ns?/named.run
-rm -f ns?/named.memstats
-rm -f ns?/named_dump.db
-rm -f ns2/named.conf
-rm -f ns3/named.conf
-rm -f ns3/example.db
-rm -f ns4/sub.example.db
-rm -f dig.out.*
-rm -f ns*/named.lock
index 75f062267a481efc743ed1f090fb3d464f7673b7..fbab9a2ce0b84fdaadb0f29f60cd69ef752a9595 100644 (file)
@@ -66,3 +66,8 @@ zone "example.info" {
        type static-stub;
        server-addresses { ::1; }; #ns4
 };
+
+zone "undelegated" {
+       type static-stub;
+       server-addresses { 10.53.0.3; };
+};
index 8c1c78b22b2aebe5d8c14c03a2c3be6f80d19555..fa56e3b2b26ed1089113bf085b273fc86b1c242d 100644 (file)
@@ -57,3 +57,8 @@ zone "example.org" {
        type master;
        file "example.org.db";
 };
+
+zone "undelegated" {
+       type master;
+       file "undelegated.db.signed";
+};
index fb3c762cbeda7ec49eaaa301db4ddb06e9bb25d5..4c970ec3f7698483faac3396ec5871c02055d8c5 100755 (executable)
@@ -42,4 +42,24 @@ trusted-keys {
 };
 EOF
 ' > trusted.conf
+
+zone=undelegated
+infile=undelegated.db.in
+zonefile=undelegated.db
+keyname1=`$KEYGEN -q -r $RANDFILE -a RSASHA256 -b 1024 -n zone $zone`
+keyname2=`$KEYGEN -q -r $RANDFILE -a RSASHA256 -b 2048 -f KSK -n zone $zone`
+cat $infile $keyname1.key $keyname2.key > $zonefile
+
+$SIGNER -g -r $RANDFILE -o $zone $zonefile > /dev/null 2>&1
+
+cat $keyname2.key | grep -v '^; ' | $PERL -n -e '
+local ($dn, $class, $type, $flags, $proto, $alg, @rest) = split;
+local $key = join("", @rest);
+print <<EOF
+trusted-keys {
+    "$dn" $flags $proto $alg "$key";
+};
+EOF
+' >> trusted.conf
+
 cp trusted.conf ../ns2/trusted.conf
diff --git a/bin/tests/system/staticstub/ns3/undelegated.db.in b/bin/tests/system/staticstub/ns3/undelegated.db.in
new file mode 100644 (file)
index 0000000..25a29fa
--- /dev/null
@@ -0,0 +1,26 @@
+; Copyright (C) 2015  Internet Systems Consortium, Inc. ("ISC")
+;
+; Permission to use, copy, modify, and/or distribute this software for any
+; purpose with or without fee is hereby granted, provided that the above
+; copyright notice and this permission notice appear in all copies.
+;
+; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+; AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+; PERFORMANCE OF THIS SOFTWARE.
+
+$TTL 300       ; 5 minutes
+undelegated.           IN SOA  ns3.undelegated. hostmaster.undelegated. (
+                               2010080900 ; serial
+                               20         ; refresh (20 seconds)
+                               20         ; retry (20 seconds)
+                               1814400    ; expire (3 weeks)
+                               3600       ; minimum (1 hour)
+                               )
+undelegated.           NS      ns3.undelegated.
+undelegated.           A       10.53.0.4
+undelegated.           AAAA    ::1
+ns3.undelegated.               A       10.53.0.3
index 603e748809a13b909e47953584a2b9df787b77ab..f718b1ce1da78589900840644d22530805e01157 100755 (executable)
@@ -203,5 +203,15 @@ grep "2nd example org data" dig.out.ns2.test$n > /dev/null || ret=1
 if [ $ret != 0 ]; then echo "I:failed"; fi
 status=`expr $status + $ret`
 
+n=`expr $n + 1`
+echo "I:checking static-stub of a undelegated tld resolves after DS query ($n)"
+ret=0
+$DIG undelegated. @10.53.0.2 ds -p 5300 > dig.out.ns2.ds.test$n
+$DIG undelegated. @10.53.0.2 soa -p 5300 > dig.out.ns2.soa.test$n
+grep "status: NXDOMAIN" dig.out.ns2.ds.test$n > /dev/null || ret=1
+grep "status: NOERROR" dig.out.ns2.soa.test$n > /dev/null || ret=1
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
 echo "I:exit status: $status"
 exit $status