Setup multisigner system test for NOTIFY CDS

Add root and parent zones to store NOTIFY CDS records.
This commit is contained in:
Matthijs Mekking
2023-11-05 09:29:38 +01:00
parent 3a394b64aa
commit a1eb69b8a5
13 changed files with 276 additions and 4 deletions
@@ -0,0 +1,32 @@
/*
* 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.
*/
// NS1
options {
query-source address 10.53.0.1;
notify-source 10.53.0.1;
transfer-source 10.53.0.1;
port @PORT@;
pid-file "named.pid";
listen-on { 10.53.0.1; };
listen-on-v6 { none; };
recursion no;
notify yes;
dnssec-validation no;
};
zone "." {
type primary;
file "root.db.signed";
};
@@ -0,0 +1,23 @@
; 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
@ SOA me. hostmaster. 1 1800 900 604800 86400
. NS a.root-servers.nil.
a.root-servers.nil. A 10.53.0.1
multisigner. NS ns2.multisigner.
ns2.multisigner. A 10.53.0.2
secondary. NS ns2.secondary.
ns2.secondary. A 10.53.0.2
+35
View File
@@ -0,0 +1,35 @@
#!/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
set -e
zone=.
infile=root.db.in
zonefile=root.db
echo_i "ns1/setup.sh"
ksk=$("$KEYGEN" -q -fk -a "$DEFAULT_ALGORITHM" -b "$DEFAULT_BITS" -n zone "$zone")
zsk=$("$KEYGEN" -q -a "$DEFAULT_ALGORITHM" -b "$DEFAULT_BITS" -n zone "$zone")
cat "$infile" "$ksk.key" "$zsk.key" > "$zonefile"
"$SIGNER" -g -o "$zone" "$zonefile" >/dev/null 2>signer.root.out
# Configure the resolving server with a static key.
keyfile_to_static_ds "$ksk" >trusted.conf
cp trusted.conf ../ns3/trusted.conf
cp trusted.conf ../ns4/trusted.conf
cp trusted.conf ../ns5/trusted.conf
@@ -0,0 +1,30 @@
; 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 me.multisigner. hostmaster.multisigner. (
1 ; serial
20 ; refresh (20 seconds)
20 ; retry (20 seconds)
1814400 ; expire (3 weeks)
3600 ; minimum (1 hour)
)
multisigner. NS ns2
ns2.multisigner. A 10.53.0.2
multisigner. NOTIFY CDS 1 @PORT@ scanner.multisigner.
scanner.multisigner. A 10.53.0.2
model2.multisigner. NS ns3
model2.multisigner. NS ns4
ns3.model2.multisigner. A 10.53.0.3
ns4.model2.multisigner. A 10.53.0.4
@@ -0,0 +1,53 @@
/*
* 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
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;
dnssec-validation no;
};
key rndc_key {
secret "1234abcd8765";
algorithm @DEFAULT_HMAC@;
};
controls {
inet 10.53.0.2 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
};
zone "." {
type hint;
file "../../_common/root.hint";
};
zone "multisigner" {
type primary;
dnssec-policy default;
file "multisigner.db";
};
zone "secondary" {
type primary;
dnssec-policy default;
file "secondary.db";
};
@@ -0,0 +1,30 @@
; 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 me.secondary. hostmaster.secondary. (
1 ; serial
20 ; refresh (20 seconds)
20 ; retry (20 seconds)
1814400 ; expire (3 weeks)
3600 ; minimum (1 hour)
)
secondary. NS ns2
ns2.secondary. A 10.53.0.2
secondary. NOTIFY CDS 1 @PORT@ scanner.secondary.
scanner.secondary. A 10.53.0.2
model2.secondary. NS ns3
model2.secondary. NS ns4
ns3.model2.secondary. A 10.53.0.3
ns4.model2.secondary. A 10.53.0.4
+34
View File
@@ -0,0 +1,34 @@
#!/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"
for zn in multisigner secondary; do
zone="${zn}"
infile="${zn}.db.in"
unsigned="${zn}.db.unsigned"
zonefile="${zn}.db"
copy_setports $infile $unsigned
csk=$("$KEYGEN" -q -fk -a "$DEFAULT_ALGORITHM" -b "$DEFAULT_BITS" -n zone "$zone")
cat "$csk.key" >> "$unsigned"
private_type_record $zone $DEFAULT_ALGORITHM_NUMBER "$csk" >> "$unsigned"
$SIGNER -S -g -z -x -s now-1h -e now+30d -o $zone -O full -f $zonefile $unsigned > signer.out.$zone 2>&1
cp "dsset-${zn}." ../ns1/
done
@@ -24,9 +24,9 @@ options {
listen-on { 10.53.0.3; };
listen-on-v6 { none; };
allow-transfer { any; };
recursion no;
key-directory ".";
dnssec-validation no;
recursion yes;
dnssec-validation yes;
};
key rndc_key {
@@ -53,3 +53,10 @@ zone "model2.secondary." {
dnssec-policy model2;
inline-signing yes;
};
zone "." {
type hint;
file "../../_common/root.hint";
};
include "trusted.conf";
@@ -30,6 +30,8 @@ $SETTIME -s -g $O -k $O now -r $O now -d $O now "$KSK" >settime.out.$zone.1 2>&1
$SETTIME -s -g $O -k $O now -z $O now "$ZSK" >settime.out.$zone.2 2>&1
# ZSK will be added to the other provider with nsupdate.
cat "${ZSK}.key" | grep -v ";.*" >"${zone}.zsk"
# Append DS to DS from ns4
$DSFROMKEY ${KSK} >> "../ns2/dsset-${zone}."
zone="model2.secondary"
echo_i "setting up zone: $zone"
@@ -42,3 +44,5 @@ $SETTIME -s -g $O -k $O now -r $O now -d $O now "$KSK" >settime.out.$zone.1 2>&1
$SETTIME -s -g $O -k $O now -z $O now "$ZSK" >settime.out.$zone.2 2>&1
# ZSK will be added to the other provider with nsupdate.
cat "${ZSK}.key" | grep -v ";.*" >"${zone}.zsk"
# Append DS to DS from ns4
$DSFROMKEY ${KSK} >> "../ns2/dsset-${zone}."
@@ -53,3 +53,8 @@ zone "model2.secondary." {
dnssec-policy model2;
inline-signing yes;
};
zone "." {
type hint;
file "../../_common/root.hint";
};
@@ -31,6 +31,8 @@ $SETTIME -s -g $O -k $O now -z $O now "$ZSK" >settime.out.$zone.2 2>&1
# ZSK will be added to the other provider with nsupdate.
cat "${ZSK}.key" | grep -v ";.*" >"${zone}.zsk"
$DSFROMKEY ${KSK} > "../ns2/dsset-${zone}."
zone="model2.secondary"
echo_i "setting up zone: $zone"
zonefile="${zone}.db"
@@ -42,3 +44,5 @@ $SETTIME -s -g $O -k $O now -r $O now -d $O now "$KSK" >settime.out.$zone.1 2>&1
$SETTIME -s -g $O -k $O now -z $O now "$ZSK" >settime.out.$zone.2 2>&1
# ZSK will be added to the other provider with nsupdate.
cat "${ZSK}.key" | grep -v ";.*" >"${zone}.zsk"
$DSFROMKEY ${KSK} > "../ns2/dsset-${zone}."
@@ -43,3 +43,8 @@ zone "model2.secondary." {
allow-update { any; };
file "model2.secondary.db";
};
zone "." {
type hint;
file "../../_common/root.hint";
};
+12 -2
View File
@@ -18,12 +18,14 @@ set -e
$SHELL clean.sh
copy_setports ns1/named.conf.in ns1/named.conf
copy_setports ns2/named.conf.in ns2/named.conf
copy_setports ns3/named.conf.in ns3/named.conf
copy_setports ns4/named.conf.in ns4/named.conf
copy_setports ns5/named.conf.in ns5/named.conf
(
cd ns3
cd ns5
$SHELL setup.sh
)
(
@@ -31,6 +33,14 @@ copy_setports ns5/named.conf.in ns5/named.conf
$SHELL setup.sh
)
(
cd ns5
cd ns3
$SHELL setup.sh
)
(
cd ns2
$SHELL setup.sh
)
(
cd ns1
$SHELL setup.sh
)