recursion no;
notify yes;
minimal-responses no;
+ max-records-per-type 0;
};
zone "." {
rm -f ./ns1/example.db.serial.raw
rm -f ./ns1/large.db ./ns1/large.db.raw
rm -f ./ns1/example.db.map ./ns1/signed.db.map
+rm -f ./ns1/huge.db ./ns1/huge.db.raw
+rm -f ./ns1/uber.db ./ns1/uber.db.raw
rm -f ./ns1/session.key
rm -f ./dig.out.*
rm -f ./dig.out
$CHECKZONE -D -F raw -o large.db.raw large large.db >/dev/null 2>&1
$CHECKZONE -D -F map -o example.db.map example-map \
example.db >/dev/null 2>&1
+$CHECKZONE -D -F raw -o huge.db.raw huge huge.db >/dev/null 2>&1
+$CHECKZONE -D -F raw -o uber.db.raw uber uber.db >/dev/null 2>&1
$KEYGEN -q -a "$DEFAULT_ALGORITHM" -b "$DEFAULT_BITS" -f KSK signed >/dev/null 2>&1
$KEYGEN -q -a "$DEFAULT_ALGORITHM" -b "$DEFAULT_BITS" signed >/dev/null 2>&1
--- /dev/null
+; 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 1D
+
+@ IN SOA ns hostmaster (
+ 1
+ 3600
+ 1800
+ 1814400
+ 3
+ )
+ NS ns
+ns A 10.53.0.1
notify no;
session-keyfile "session.key";
servfail-ttl 0;
+ max-records-per-type 2050;
};
key rndc_key {
allow-transfer { any; };
};
+zone "huge" {
+ type primary;
+ file "huge.db.raw";
+ masterfile-format raw;
+ allow-transfer { any; };
+};
+
+zone "uber" {
+ type primary;
+ file "uber.db.raw";
+ masterfile-format raw;
+ allow-transfer { any; };
+};
+
zone "signed" {
type primary;
file "signed.db.map";
--- /dev/null
+; 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 1D
+
+@ IN SOA ns hostmaster (
+ 1
+ 3600
+ 1800
+ 1814400
+ 3
+ )
+ NS ns
+ns A 10.53.0.1
recursion no;
notify no;
servfail-ttl 0;
+ max-records-per-type 2000;
};
zone "example" {
masterfile-format raw;
file "large.bk";
};
+
+zone "huge" {
+ type secondary;
+ primaries { 10.53.0.1; };
+ masterfile-format raw;
+ file "huge.bk";
+};
cp ns2/formerly-text.db.in ns2/formerly-text.db
cp ns1/large.db.in ns1/large.db
awk 'END {
- for (i = 0; i < 512; i++ ) { print "a TXT", i; }
- for (i = 0; i < 1024; i++ ) { print "b TXT", i; }
+ for (i = 0; i < 500; i++ ) { print "a TXT", i; }
+ for (i = 0; i < 1000; i++ ) { print "b TXT", i; }
for (i = 0; i < 2000; i++ ) { print "c TXT", i; }
}' </dev/null >>ns1/large.db
+cp ns1/huge.db.in ns1/huge.db
+awk 'END {
+ for (i = 0; i < 500; i++ ) { print "a TXT", i; }
+ for (i = 0; i < 1000; i++ ) { print "b TXT", i; }
+ for (i = 0; i < 2000; i++ ) { print "c TXT", i; }
+ for (i = 0; i < 2050; i++ ) { print "d TXT", i; }
+}' </dev/null >>ns1/huge.db
+cp ns1/uber.db.in ns1/uber.db
+awk 'END {
+ for (i = 0; i < 500; i++ ) { print "a TXT", i; }
+ for (i = 0; i < 1000; i++ ) { print "b TXT", i; }
+ for (i = 0; i < 2000; i++ ) { print "c TXT", i; }
+ for (i = 0; i < 2050; i++ ) { print "d TXT", i; }
+ for (i = 0; i < 2100; i++ ) { print "e TXT", i; }
+}' </dev/null >>ns1/uber.db
cd ns1 && $SHELL compile.sh
for i in 0 1 2 3 4 5 6 7 8 9; do
ret=0
for a in a b c; do
- $DIG +tcp txt "${a}.large" @10.53.0.2 -p "${PORT}" >"dig.out.ns2.test$n"
- grep "status: NOERROR" "dig.out.ns2.test$n" >/dev/null || ret=1
+ $DIG +tcp txt "${a}.large" @10.53.0.1 -p "${PORT}" >"dig.out.ns1.$a.test$n"
+ grep "status: NOERROR" "dig.out.ns1.$a.test$n" >/dev/null || ret=1
+ done
+ [ $ret -eq 0 ] && break
+ sleep 1
+done
+n=$((n + 1))
+[ $ret -eq 0 ] || echo_i "failed"
+status=$((status + ret))
+
+echo_i "checking that large rdatasets transfered ($n)"
+for i in 0 1 2 3 4 5 6 7 8 9; do
+ ret=0
+ for a in a b c; do
+ $DIG +tcp txt "${a}.large" @10.53.0.2 -p "${PORT}" >"dig.out.ns2.$a.test$n"
+ grep "status: NOERROR" "dig.out.ns2.$a.test$n" >/dev/null || ret=1
+ done
+ [ $ret -eq 0 ] && break
+ sleep 1
+done
+n=$((n + 1))
+[ $ret -eq 0 ] || echo_i "failed"
+status=$((status + ret))
+
+echo_i "checking that huge rdatasets loaded ($n)"
+for i in 0 1 2 3 4 5 6 7 8 9; do
+ ret=0
+ for a in a b c d; do
+ $DIG +tcp txt "${a}.huge" @10.53.0.1 -p "${PORT}" >"dig.out.ns1.$a.test$n"
+ grep "status: NOERROR" "dig.out.ns1.$a.test$n" >/dev/null || ret=1
+ done
+ [ $ret -eq 0 ] && break
+ sleep 1
+done
+n=$((n + 1))
+[ $ret -eq 0 ] || echo_i "failed"
+status=$((status + ret))
+
+echo_i "checking that huge rdatasets not transfered ($n)"
+for i in 0 1 2 3 4 5 6 7 8 9; do
+ ret=0
+ for a in a b c d; do
+ $DIG +tcp txt "${a}.huge" @10.53.0.2 -p "${PORT}" >"dig.out.ns2.$a.test$n"
+ grep "status: SERVFAIL" "dig.out.ns2.$a.test$n" >/dev/null || ret=1
+ done
+ [ $ret -eq 0 ] && break
+ sleep 1
+done
+n=$((n + 1))
+[ $ret -eq 0 ] || echo_i "failed"
+status=$((status + ret))
+
+echo_i "checking that uber rdatasets not loaded ($n)"
+for i in 0 1 2 3 4 5 6 7 8 9; do
+ ret=0
+ for a in a b c d e; do
+ $DIG +tcp txt "${a}.uber" @10.53.0.1 -p "${PORT}" >"dig.out.ns1.$a.test$n"
+ grep "status: SERVFAIL" "dig.out.ns1.$a.test$n" >/dev/null || ret=1
done
[ $ret -eq 0 ] && break
sleep 1