]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3967. [test] Add test for inlined signed zone in multiple views
authorMark Andrews <marka@isc.org>
Thu, 2 Oct 2014 21:59:44 +0000 (07:59 +1000)
committerMark Andrews <marka@isc.org>
Thu, 2 Oct 2014 21:59:44 +0000 (07:59 +1000)
                        with different DNSKEY sets. [RT #35759]

CHANGES
bin/tests/system/views/clean.sh
bin/tests/system/views/ns2/external/inline.db [new file with mode: 0644]
bin/tests/system/views/ns2/internal/inline.db [new file with mode: 0644]
bin/tests/system/views/ns2/named2.conf
bin/tests/system/views/setup.sh
bin/tests/system/views/tests.sh

diff --git a/CHANGES b/CHANGES
index 4f9cb4b28e931a506ad2d6c9a5f8df916d9f1615..91ab9417141425a57ae2bd4b45a25e00872024f6 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3967.  [test]          Add test for inlined signed zone in multiple views
+                       with different DNSKEY sets. [RT #35759]
+
 3966.  [bug]           Missing dns_db_closeversion call in receive_secure_db.
                        [RT #35746]
 
index d22c0328d525c0e832430197517c8e246a1a98a9..c6e6b6d3626755ba891ca46034d49c3125940011 100644 (file)
@@ -25,3 +25,12 @@ rm -f ns3/example.bk dig.out.ns?.?
 rm -f ns2/named.conf ns2/example.db ns3/named.conf ns3/internal.bk
 rm -f */*.jnl
 rm -f */named.memstats
+rm -f ns2/external/K*
+rm -f ns2/external/inline.db.jbk
+rm -f ns2/external/inline.db.signed
+rm -f ns2/external/inline.db.signed.jnl
+rm -f ns2/internal/K*
+rm -f ns2/internal/inline.db.jbk
+rm -f ns2/internal/inline.db.signed
+rm -f ns2/internal/inline.db.signed.jnl
+rm -f dig.out.external dig.out.internal
diff --git a/bin/tests/system/views/ns2/external/inline.db b/bin/tests/system/views/ns2/external/inline.db
new file mode 100644 (file)
index 0000000..359885f
--- /dev/null
@@ -0,0 +1,33 @@
+; Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
+; Copyright (C) 2000, 2001  Internet Software Consortium.
+;
+; 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
+inline.                        IN SOA  mname1. . (
+                               2          ; serial
+                               20         ; refresh (20 seconds)
+                               20         ; retry (20 seconds)
+                               1814400    ; expire (3 weeks)
+                               3600       ; minimum (1 hour)
+                               )
+inline.                        NS      ns2.inline.
+ns2.inline.            A       10.53.0.2
+inline.                        NS      ns3.inline.
+ns3.inline.            A       10.53.0.3
+
+$ORIGIN inline.
+a                      A       10.1.0.1
+                       MX      10 extmail.inline.
+
+extmail                        A       10.1.0.2
diff --git a/bin/tests/system/views/ns2/internal/inline.db b/bin/tests/system/views/ns2/internal/inline.db
new file mode 100644 (file)
index 0000000..9ca9eed
--- /dev/null
@@ -0,0 +1,33 @@
+; Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
+; Copyright (C) 2000, 2001  Internet Software Consortium.
+;
+; 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
+inline.                        IN SOA  mname1. . (
+                               2          ; serial
+                               20         ; refresh (20 seconds)
+                               20         ; retry (20 seconds)
+                               1814400    ; expire (3 weeks)
+                               3600       ; minimum (1 hour)
+                               )
+inline.                        NS      ns2.inline.
+ns2.inline.            A       10.53.0.2
+inline.                        NS      ns3.inline.
+ns3.inline.            A       10.53.0.3
+
+$ORIGIN inline.
+a                      A       10.1.0.1
+                       MX      10 intmail.inline.
+
+intmail                        A       10.1.0.2
index 7dd5f0b6fc02c1a78a55ad76d57b79f47f4d1ff4..fbe05c389565228720d5d6ff93e9fcfd9a167ed6 100644 (file)
@@ -53,6 +53,14 @@ view "internal" {
                file "clone.db";
                allow-update { any; };
        };
+
+       zone "inline" {
+               type master;
+               file "internal/inline.db";
+               key-directory "internal";
+               auto-dnssec maintain;
+               inline-signing yes;
+       };
 };
 
 view "external" {
@@ -73,4 +81,12 @@ view "external" {
                forward only;
                forwarders { 10.53.0.5; };
        };
+
+       zone "inline" {
+               type master;
+               file "external/inline.db";
+               key-directory "external";
+               auto-dnssec maintain;
+               inline-signing yes;
+       };
 };
index 420794743013748baf109d64636186e2de2725e6..a9135946e14dad68931b9ad8999e76750a20d127 100644 (file)
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: setup.sh,v 1.10 2007/06/19 23:47:06 tbox Exp $
-
-
 cp -f ns2/example1.db ns2/example.db
 cp -f ns2/named1.conf ns2/named.conf
 cp -f ns3/named1.conf ns3/named.conf
+rm -f ns2/external/K*
+rm -f ns2/external/inline.db.signed
+rm -f ns2/external/inline.db.signed.jnl
+rm -f ns2/internal/K*
+rm -f ns2/internal/inline.db.signed
+rm -f ns2/internal/inline.db.signed.jnl
+
+SYSTEMTESTTOP=..
+. $SYSTEMTESTTOP/conf.sh
+
+test -r $RANDFILE || $GENRANDOM 400 $RANDFILE
+
+#
+# We remove k1 and k2 as KEYGEN is deterministic when given the
+# same source of "random" data and we want different keys for
+# internal and external instances of inline.
+#
+$KEYGEN -K ns2/internal -r $RANDFILE -3q inline > /dev/null 2>&1
+$KEYGEN -K ns2/internal -r $RANDFILE -3qfk inline > /dev/null 2>&1
+k1=`$KEYGEN -K ns2/external -r $RANDFILE -3q inline`
+k2=`$KEYGEN -K ns2/external -r $RANDFILE -3qfk inline`
+$KEYGEN -K ns2/external -r $RANDFILE -3q inline > /dev/null 2>&1
+$KEYGEN -K ns2/external -r $RANDFILE -3qfk inline > /dev/null 2>&1
+test -n "$k1" && rm -f ns2/external/$k1.*
+test -n "$k2" && rm -f ns2/external/$k2.*
index 4b00f392cc322f14fdd25b12da3adb89b0cafee6..387056063a3ddd5f35fdce9c96b9a41e579b601a 100644 (file)
@@ -123,5 +123,17 @@ fi
 if [ $ret != 0 ]; then echo "I:failed"; fi
 status=`expr $status + $ret`
 
+echo "I:verifying inline zones work with views"
+ret=0
+$DIG @10.53.0.2 -p 5300 -b 10.53.0.2 +dnssec DNSKEY inline > dig.out.internal
+$DIG @10.53.0.2 -p 5300 -b 10.53.0.5 +dnssec DNSKEY inline > dig.out.external
+grep "ANSWER: 4," dig.out.internal > /dev/null || ret=1
+grep "ANSWER: 4," dig.out.external > /dev/null || ret=1
+int=`awk '$4 == "DNSKEY" { print $8 }' dig.out.internal | sort`
+ext=`awk '$4 == "DNSKEY" { print $8 }' dig.out.external | sort`
+test "$int" != "$ext" || ret=1
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
 echo "I:exit status: $status"
 exit $status