Convert setup.pl into static configurations

The setup.pl script has been replaced with static BIND configurations,
and in the course of this change, the unused ns1 server was removed.
This enhancement has greatly improved the overall test's readability.

(cherry picked from commit 08a8906cfc)
This commit is contained in:
Michał Kępień 2023-07-11 15:56:31 +02:00 committed by Michal Nowak
parent 624c20b191
commit dbdc70cbe0
No known key found for this signature in database
8 changed files with 109 additions and 142 deletions

View file

@ -11,12 +11,8 @@
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
rm -f ns?/zones.conf
rm -f ns?/zone*.bk
rm -f ns1/delegations.db
rm -f ns1/root.db
rm -f ns2/zone0*.db
rm -f ns2/zone0*.jnl
rm -f */named.memstats

View file

@ -1,32 +0,0 @@
/*
* 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.
*/
controls { /* empty */ };
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;
dnssec-validation no;
notify yes;
};
zone "." {
type primary;
file "root.db";
};

View file

@ -26,9 +26,32 @@ options {
notify yes;
};
zone "." {
type hint;
file "../../common/root.hint";
zone "zone000000.example" {
type primary;
allow-update { any; };
file "zone000000.example.db";
};
include "zones.conf";
zone "zone000001.example" {
type primary;
allow-update { any; };
file "zone000001.example.db";
};
zone "zone000002.example" {
type primary;
allow-update { any; };
file "zone000002.example.db";
};
zone "zone000003.example" {
type primary;
allow-update { any; };
file "zone000003.example.db";
};
zone "zone000004.example" {
type primary;
allow-update { any; };
file "zone000004.example.db";
};

View file

@ -0,0 +1,21 @@
; 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 ns2 hostmaster 1 300 120 3600 86400
@ NS ns2
NS ns3
NS ns4
ns2 A 10.53.0.2
ns3 A 10.53.0.3
ns4 A 10.53.0.4
$GENERATE 0-999 name${0,6} A 10.0.0.1

View file

@ -35,16 +35,40 @@ controls {
inet 10.53.0.3 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
};
zone "." {
type hint;
file "../../common/root.hint";
};
server 10.53.0.4 {
provide-ixfr no;
};
server 10.53.0.2 {
request-ixfr no;
};
include "zones.conf";
zone "zone000000.example" {
type secondary;
file "zone000000.example.bk";
primaries { 10.53.0.2; };
};
zone "zone000001.example" {
type secondary;
file "zone000001.example.bk";
primaries { 10.53.0.2; };
};
zone "zone000002.example" {
type secondary;
file "zone000002.example.bk";
primaries { 10.53.0.2; };
};
zone "zone000003.example" {
type secondary;
file "zone000003.example.bk";
primaries { 10.53.0.2; };
};
zone "zone000004.example" {
type secondary;
file "zone000004.example.bk";
primaries { 10.53.0.2; };
};

View file

@ -26,10 +26,32 @@ options {
notify yes;
};
zone "." {
type hint;
file "../../common/root.hint";
zone "zone000000.example" {
type secondary;
file "zone000000.example.bk";
primaries { 10.53.0.3; };
};
include "zones.conf";
zone "zone000001.example" {
type secondary;
file "zone000001.example.bk";
primaries { 10.53.0.3; };
};
zone "zone000002.example" {
type secondary;
file "zone000002.example.bk";
primaries { 10.53.0.3; };
};
zone "zone000003.example" {
type secondary;
file "zone000003.example.bk";
primaries { 10.53.0.3; };
};
zone "zone000004.example" {
type secondary;
file "zone000004.example.bk";
primaries { 10.53.0.3; };
};

View file

@ -1,86 +0,0 @@
#!/usr/bin/perl
# 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.
#
# Set up test data for zone transfer quota tests.
#
use FileHandle;
my $n_zones = 5;
my $n_names = 1000;
make_zones(2, undef);
make_zones(3, "10.53.0.2");
make_zones(4, "10.53.0.3");
my $rootdelegations =
new FileHandle("ns1/root.db", "w") or die;
print $rootdelegations <<END;
\$TTL 300
. IN SOA gson.nominum.com. a.root.servers.nil. (
2000042100 ; serial
600 ; refresh
600 ; retry
1200 ; expire
600 ; minimum
)
. NS a.root-servers.nil.
a.root-servers.nil. A 10.53.0.1
END
for ($z = 0; $z < $n_zones; $z++) {
my $zn = sprintf("zone%06d.example", $z);
foreach $ns (qw(2 3 4)) {
print $rootdelegations "$zn. NS ns$ns.$zn.\n";
print $rootdelegations "ns$ns.$zn. A 10.53.0.$ns\n";
}
}
close $rootdelegations;
sub make_zones {
my ($nsno, $secondaried_from) = @_;
my $namedconf = new FileHandle("ns$nsno/zones.conf", "w") or die;
for ($z = 0; $z < $n_zones; $z++) {
my $zn = sprintf("zone%06d.example", $z);
if (defined($secondaried_from)) {
print $namedconf "zone \"$zn\" { type secondary; " .
"file \"$zn.bk\"; primaries " .
"{ $secondaried_from; }; };\n";
} else {
print $namedconf "zone \"$zn\" { " .
"type primary; " .
"allow-update { any; }; " .
"file \"$zn.db\"; };\n";
my $fn = "ns$nsno/$zn.db";
my $f = new FileHandle($fn, "w") or die "open: $fn: $!";
print $f "\$TTL 300
\@ IN SOA ns2.$zn. hostmaster 1 300 120 3600 86400
@ NS ns2.$zn.
ns2.$zn. A 10.53.0.2
@ NS ns3.$zn.
ns3.$zn. A 10.53.0.3
@ NS ns4.$zn.
ns4.$zn. A 10.53.0.4
MX 10 mail1.isp.example.
MX 20 mail2.isp.example.
";
for ($i = 0; $i < $n_names; $i++) {
print $f sprintf("name%06d", $i) .
" A 10.0.0.1\n";
}
$f->close;
}
}
}

View file

@ -14,13 +14,12 @@
# shellcheck source=conf.sh
. ../conf.sh
#
# Set up test data for zone transfer quota tests.
#
cp ns2/zone.template.db ns2/zone000000.example.db
cp ns2/zone.template.db ns2/zone000001.example.db
cp ns2/zone.template.db ns2/zone000002.example.db
cp ns2/zone.template.db ns2/zone000003.example.db
cp ns2/zone.template.db ns2/zone000004.example.db
$PERL setup.pl
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