]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add nsec3 system test that transfers in NSEC3
authorMatthijs Mekking <matthijs@isc.org>
Tue, 11 Oct 2022 13:17:53 +0000 (15:17 +0200)
committerMatthijs Mekking <matthijs@isc.org>
Thu, 3 Nov 2022 13:41:23 +0000 (14:41 +0100)
Similar to an attempt to add NSEC through dynamic update, add a test
case that tries to add NSEC3 through zone transfer.

(cherry picked from commit ef1cb9935c579d090ad2ee70376563464e39de6f)

bin/tests/system/nsec3/ns2/named.conf.in [new file with mode: 0644]
bin/tests/system/nsec3/ns2/setup.sh [new file with mode: 0644]
bin/tests/system/nsec3/ns2/template.db.in [new file with mode: 0644]
bin/tests/system/nsec3/ns3/named.conf.in
bin/tests/system/nsec3/setup.sh
bin/tests/system/nsec3/tests.sh

diff --git a/bin/tests/system/nsec3/ns2/named.conf.in b/bin/tests/system/nsec3/ns2/named.conf.in
new file mode 100644 (file)
index 0000000..d6caf15
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+ *
+ * SPDX-License-Identifier: MPL-2.0
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, you can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See the COPYRIGHT file distributed with this work for additional
+ * information regarding copyright ownership.
+ */
+
+// NS2
+
+dnssec-policy "nsec3" {
+       nsec3param;
+};
+
+options {
+       query-source address 10.53.0.2;
+       notify-source 10.53.0.2;
+       transfer-source 10.53.0.2;
+       port @PORT@;
+       pid-file "named.pid";
+       listen-on { 10.53.0.2; };
+       listen-on-v6 { none; };
+       allow-transfer { any; };
+       recursion no;
+};
+
+key rndc_key {
+       secret "1234abcd8765";
+       algorithm @DEFAULT_HMAC@;
+};
+
+controls {
+       inet 10.53.0.2 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
+};
+
+zone "nsec3-xfr-inline.kasp" {
+       type primary;
+       file "nsec3-xfr-inline.kasp.db";
+       inline-signing yes;
+       dnssec-policy "nsec3";
+};
diff --git a/bin/tests/system/nsec3/ns2/setup.sh b/bin/tests/system/nsec3/ns2/setup.sh
new file mode 100644 (file)
index 0000000..1cbe02f
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh -e
+
+# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+#
+# SPDX-License-Identifier: MPL-2.0
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, you can obtain one at https://mozilla.org/MPL/2.0/.
+#
+# See the COPYRIGHT file distributed with this work for additional
+# information regarding copyright ownership.
+
+# shellcheck source=conf.sh
+. ../../conf.sh
+
+echo_i "ns2/setup.sh"
+
+zone="nsec3-xfr-inline.kasp"
+echo_i "setting up zone: $zone"
+zonefile="${zone}.db"
+cp template.db.in "$zonefile"
diff --git a/bin/tests/system/nsec3/ns2/template.db.in b/bin/tests/system/nsec3/ns2/template.db.in
new file mode 100644 (file)
index 0000000..8379c37
--- /dev/null
@@ -0,0 +1,28 @@
+; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+;
+; SPDX-License-Identifier: MPL-2.0
+;
+; This Source Code Form is subject to the terms of the Mozilla Public
+; License, v. 2.0.  If a copy of the MPL was not distributed with this
+; file, you can obtain one at https://mozilla.org/MPL/2.0/.
+;
+; See the COPYRIGHT file distributed with this work for additional
+; information regarding copyright ownership.
+
+$TTL 300
+@              IN      SOA  mname1. . (
+                       1       ; serial
+                       20      ; refresh (20 seconds)
+                       20      ; retry (20 seconds)
+                       1814400 ; expire (3 weeks)
+                       3600    ; minimum (1 hour)
+                       )
+
+                       NS      ns2
+ns2                    A       10.53.0.2
+ns3                    A       10.53.0.3
+
+a                      A       10.0.0.1
+b                      A       10.0.0.2
+c                      A       10.0.0.3
+
index ab253963dfb268b6ec079a489f9574aca9b6a1de..4324f2d4f2b920d7c0c93502a94e85685fe8d48c 100644 (file)
@@ -152,3 +152,11 @@ zone "nsec3-dynamic-update-inline.kasp" {
        allow-update { any; };
        dnssec-policy "nsec";
 };
+
+zone "nsec3-xfr-inline.kasp" {
+       type secondary;
+       file "nsec3-xfr-inline.kasp.db";
+       inline-signing yes;
+       dnssec-policy "nsec";
+       primaries { 10.53.0.2; };
+};
index 66320529b7523a464a42c3661536020a8ef5d3cb..bdd1ae9a81765371e4969f658ec2ea09de306dae 100644 (file)
@@ -18,8 +18,12 @@ set -e
 
 $SHELL clean.sh
 
+copy_setports ns2/named.conf.in ns2/named.conf
+(
+       cd ns2
+       $SHELL setup.sh
+)
 copy_setports ns3/named.conf.in ns3/named.conf
-
 (
        cd ns3
        $SHELL setup.sh
index bfa416e660317f9d0f67da34a0c2e6b155a45495..99fa0f5f30fcb4708e83e4fe280374994c5806d1 100644 (file)
@@ -227,6 +227,14 @@ echo_i "initial check zone ${ZONE}"
 check_nsec3
 dnssec_verify
 
+# Zone: nsec3-xfr-inline.kasp.
+# This is a secondary zone, where the primary is signed with NSEC3 but
+# the dnssec-policy dictates NSEC.
+set_zone_policy "nsec3-xfr-inline.kasp" "nsec" 1 3600
+set_key_default_values "KEY1"
+echo_i "initial check zone ${ZONE}"
+check_nsec
+
 # Zone: nsec3-dynamic-update-inline.kasp.
 set_zone_policy "nsec3-dynamic-update-inline.kasp" "nsec" 1 3600
 echo_i "initial check zone ${ZONE}"