]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Use RRSIG original TTL in validated RRset TTL [RT #23332]
authorFrancis Dupont <fdupont@isc.org>
Mon, 28 Feb 2011 14:25:17 +0000 (14:25 +0000)
committerFrancis Dupont <fdupont@isc.org>
Mon, 28 Feb 2011 14:25:17 +0000 (14:25 +0000)
CHANGES
bin/tests/system/dnssec/clean.sh
bin/tests/system/dnssec/ns2/example.db.in
bin/tests/system/dnssec/ns2/sign.sh
bin/tests/system/dnssec/ns3/named.conf
bin/tests/system/dnssec/ns3/sign.sh
bin/tests/system/dnssec/ns3/ttlpatch.example.db.in [new file with mode: 0644]
bin/tests/system/dnssec/tests.sh
lib/dns/validator.c
util/copyrights

diff --git a/CHANGES b/CHANGES
index 66ae528563151d3c3cf0909f111369ce42e3647e..bff39ee9983b1566a82b266f123a03df4f195461 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3046.  [bug]           Use RRSIG original TTL to compute validated RRset
+                       and RRSIG TTL. [RT #23332]
+
 3044.  [bug]           Hold the socket manager lock while freeing the socket.
                        [RT #23333]
 
index 740a93554976686eda16953d98d0fad91271a10f..32c49894126ea33a278a47d7000d5e72183c9f33 100644 (file)
@@ -15,7 +15,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: clean.sh,v 1.33.14.3 2011/02/24 03:11:48 marka Exp $
+# $Id: clean.sh,v 1.33.14.4 2011/02/28 14:25:16 fdupont Exp $
 
 rm -f */K* */keyset-* */dsset-* */dlvset-* */signedkey-* */*.signed
 rm -f */trusted.conf */managed.conf */tmp* */*.jnl */*.bk
@@ -51,3 +51,5 @@ rm -f ns3/auto-nsec.example.db ns3/auto-nsec3.example.db
 rm -f ns3/secure.below-cname.example.db
 rm -f signer/example.db.after signer/example.db.before
 rm -f signer/example.db.changed
+rm -f ns3/ttlpatch.example.db ns3/ttlpatch.example.db.signed
+rm -f ns3/ttlpatch.example.db.patched
index b79e69a88b7e9b4d0dcf30cc3641f29e834b98cb..b3fcc937c66cdb21f01a6c802911c38ab7f54b0c 100644 (file)
@@ -13,7 +13,7 @@
 ; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 ; PERFORMANCE OF THIS SOFTWARE.
 
-; $Id: example.db.in,v 1.24.162.4 2011/02/28 01:20:00 tbox Exp $
+; $Id: example.db.in,v 1.24.162.5 2011/02/28 14:25:16 fdupont Exp $
 
 $TTL 300       ; 5 minutes
 @                      IN SOA  mname1. . (
@@ -125,3 +125,6 @@ ns.insecure.below-cname     A       10.53.0.3
 
 secure.below-cname     NS      ns.secure.below-cname
 ns.secure.below-cname  A       10.53.0.3
+
+ttlpatch               NS      ns.ttlpatch
+ns.ttlpatch            A       10.53.0.3
index fc7ab3f368fb42b1610c1ec0f06eb4aa20369932..d7093a53997d2216bf9c4e7f7572f4aab19e9ba5 100644 (file)
@@ -15,7 +15,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: sign.sh,v 1.41.40.4 2011/02/28 01:20:00 tbox Exp $
+# $Id: sign.sh,v 1.41.40.5 2011/02/28 14:25:16 fdupont Exp $
 
 SYSTEMTESTTOP=../..
 . $SYSTEMTESTTOP/conf.sh
@@ -32,7 +32,7 @@ zonefile=example.db
 
 for subdomain in secure bogus dynamic keyless nsec3 optout nsec3-unknown \
     optout-unknown multiple rsasha256 rsasha512 kskonly update-nsec3 \
-    auto-nsec auto-nsec3 secure.below-cname
+    auto-nsec auto-nsec3 secure.below-cname ttlpatch
 do
        cp ../ns3/dsset-$subdomain.example. .
 done
index f8ca4928fcba0abf985b661cf2c3d9335ccb92dd..379cf636519941ae3bae4341d09c931374c193ed 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: named.conf,v 1.38.86.5 2011/02/28 01:20:00 tbox Exp $ */
+/* $Id: named.conf,v 1.38.86.6 2011/02/28 14:25:16 fdupont Exp $ */
 
 // NS3
 
@@ -202,4 +202,9 @@ zone "secure.below-cname.example" {
        file "secure.below-cname.example.db.signed";
 };
 
+zone "ttlpatch.example" {
+       type master;
+       file "ttlpatch.example.db.patched";
+};
+
 include "trusted.conf";
index 7b57a8e526bdac5235c6e9cbb44a27e7620eeb0a..572feb5e2678bd5ccd375292012f4f106c77f3e5 100644 (file)
@@ -15,7 +15,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: sign.sh,v 1.32.162.5 2011/02/28 01:20:01 tbox Exp $
+# $Id: sign.sh,v 1.32.162.6 2011/02/28 14:25:16 fdupont Exp $
 
 SYSTEMTESTTOP=../..
 . $SYSTEMTESTTOP/conf.sh
@@ -325,3 +325,18 @@ zonefile=secure.below-cname.example.db
 keyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -n zone $zone`
 cat $infile $keyname.key >$zonefile
 $SIGNER -P -r $RANDFILE -o $zone $zonefile > /dev/null 2>&1
+
+#
+# Patched TTL test zone.
+#
+zone=ttlpatch.example.
+infile=ttlpatch.example.db.in
+zonefile=ttlpatch.example.db
+signedfile=ttlpatch.example.db.signed
+patchedfile=ttlpatch.example.db.patched
+
+keyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone`
+cat $infile $keyname.key >$zonefile
+
+$SIGNER -P -r $RANDFILE -f $signedfile -o $zone $zonefile > /dev/null 2>&1
+sed 's/300/3600/' $signedfile > $patchedfile
diff --git a/bin/tests/system/dnssec/ns3/ttlpatch.example.db.in b/bin/tests/system/dnssec/ns3/ttlpatch.example.db.in
new file mode 100644 (file)
index 0000000..d2590b9
--- /dev/null
@@ -0,0 +1,32 @@
+; 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.
+
+; $Id: ttlpatch.example.db.in,v 1.2.2.2 2011/02/28 14:25:17 fdupont Exp $
+
+$TTL 300       ; 5 minutes
+@                      IN SOA  mname1. . (
+                               2000042407 ; serial
+                               20         ; refresh (20 seconds)
+                               20         ; retry (20 seconds)
+                               1814400    ; expire (3 weeks)
+                               3600       ; minimum (1 hour)
+                               )
+                       NS      ns
+ns                     A       10.53.0.3
+
+a                      A       10.0.0.1
+b                      A       10.0.0.2
+d                      A       10.0.0.4
+z                      A       10.0.0.26
index efdd5b69ff7dd0b4bd83deae97fe939e06cbe60d..02b42ef11009aa71e0796f3eff9ab9f344fbb1f4 100644 (file)
@@ -15,7 +15,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: tests.sh,v 1.73.14.5 2011/02/24 03:11:48 marka Exp $
+# $Id: tests.sh,v 1.73.14.6 2011/02/28 14:25:16 fdupont Exp $
 
 SYSTEMTESTTOP=..
 . $SYSTEMTESTTOP/conf.sh
@@ -977,6 +977,18 @@ n=`expr $n + 1`
 if [ $ret != 0 ]; then echo "I:failed"; fi
 status=`expr $status + $ret`
 
+echo "I:checking validated data are not cached longer than originalttl ($n)"
+ret=0
+$DIG $DIGOPTS +ttl +noauth a.ttlpatch.example. @10.53.0.3 a > dig.out.ns3.test$n || ret=1
+$DIG $DIGOPTS +ttl +noauth a.ttlpatch.example. @10.53.0.4 a > dig.out.ns4.test$n || ret=1
+grep "3600.IN" dig.out.ns3.test$n > /dev/null || ret=1
+grep "300.IN" dig.out.ns3.test$n > /dev/null && ret=1
+grep "300.IN" dig.out.ns4.test$n > /dev/null || ret=1
+grep "3600.IN" dig.out.ns4.test$n > /dev/null && ret=1
+n=`expr $n + 1`
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
 # Test that "rndc secroots" is able to dump trusted keys
 echo "I:checking rndc secroots ($n)"
 ret=0
index 43b980983dba498956a64408f28e7d9ddc46b847..3e2ff16dc16e59ebd61fa9672307302595ad862f 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: validator.c,v 1.197.14.2 2011/02/28 01:20:02 tbox Exp $ */
+/* $Id: validator.c,v 1.197.14.3 2011/02/28 14:25:17 fdupont Exp $ */
 
 #include <config.h>
 
@@ -2058,7 +2058,8 @@ validate(dns_validator_t *val, isc_boolean_t resume) {
 
                        isc_stdtime_get(&now);
                        ttl = ISC_MIN(event->rdataset->ttl,
-                                     val->siginfo->timeexpire - now);
+                                     ISC_MIN(val->siginfo->originalttl,
+                                             val->siginfo->timeexpire - now));
                        event->rdataset->ttl = ttl;
                        event->sigrdataset->ttl = ttl;
                }
index ae09f3606fc9295feeb823b44bf0e58fb9ff80bf..c38ffc6c9e9b5962ea5e401dd9f83cfbb6f44491 100644 (file)
 ./bin/tests/system/dnssec/ns3/secure.nsec3.example.db.in       ZONE    2008
 ./bin/tests/system/dnssec/ns3/secure.optout.example.db.in      ZONE    2008
 ./bin/tests/system/dnssec/ns3/sign.sh          SH      2000,2001,2002,2004,2006,2007,2008,2009,2010,2011
+./bin/tests/system/dnssec/ns3/ttlpatch.example.db.in   ZONE    2011
 ./bin/tests/system/dnssec/ns3/update-nsec3.example.db.in       ZONE    2011
 ./bin/tests/system/dnssec/ns4/.cvsignore       X       2000,2001
 ./bin/tests/system/dnssec/ns4/named.conf       CONF-C  2000,2001,2004,2006,2007,2010