mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-08 18:52:07 -04:00
Add xfer system test case
Add a test case that if the first primary fails, the fallback of a
second primary on plain DNS works. This is mainly to test that the port
configuration inheritance works correctly.
(cherry picked from commit 622a499027)
This commit is contained in:
parent
222a1fc4eb
commit
bf6961c551
7 changed files with 59 additions and 6 deletions
|
|
@ -24,10 +24,11 @@ rm -f axfr.out
|
|||
rm -f dig.out.*
|
||||
rm -f ns*/managed-keys.bind*
|
||||
rm -f ns*/named.lock
|
||||
rm -f ns1/dot-fallback.db
|
||||
rm -f ns1/edns-expire.db
|
||||
rm -f ns1/ixfr-too-big.db ns1/ixfr-too-big.db.jnl
|
||||
rm -f ns1/sec.db ns2/sec.db
|
||||
rm -f ns2/example.db ns2/tsigzone.db ns2/example.db.jnl
|
||||
rm -f ns2/example.db ns2/tsigzone.db ns2/example.db.jnl ns2/dot-fallback.db
|
||||
rm -f ns2/mapped.db
|
||||
rm -f ns3/example.bk ns3/xfer-stats.bk ns3/tsigzone.bk ns3/example.bk.jnl
|
||||
rm -f ns3/mapped.bk
|
||||
|
|
|
|||
6
bin/tests/system/xfer/dig3.good
Normal file
6
bin/tests/system/xfer/dig3.good
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
dot-fallback. 5 IN SOA ns1.dot-fallback. hostmaster.dot-fallback. 1 3600 3600 3600 3600
|
||||
dot-fallback. 5 IN NS ns1.dot-fallback.
|
||||
a01.dot-fallback. 5 IN A 1.1.1.1
|
||||
a02.dot-fallback. 5 IN A 255.255.255.255
|
||||
ns1.dot-fallback. 5 IN A 10.53.0.1
|
||||
dot-fallback. 5 IN SOA ns1.dot-fallback. hostmaster.dot-fallback. 1 3600 3600 3600 3600
|
||||
19
bin/tests/system/xfer/ns1/dot-fallback.db.in
Normal file
19
bin/tests/system/xfer/ns1/dot-fallback.db.in
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
; 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 5
|
||||
|
||||
@ IN SOA ns1 hostmaster 1 3600 3600 3600 3600
|
||||
@ NS ns1
|
||||
ns1 A 10.53.0.1
|
||||
a01 A 1.1.1.1
|
||||
a02 A 255.255.255.255
|
||||
|
||||
|
|
@ -59,3 +59,8 @@ zone "xfer-stats" {
|
|||
type primary;
|
||||
file "xfer-stats.db";
|
||||
};
|
||||
|
||||
zone "dot-fallback" {
|
||||
type primary;
|
||||
file "dot-fallback.db";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -72,3 +72,12 @@ zone "mapped" {
|
|||
masterfile-format text;
|
||||
primaries { 10.53.0.100; };
|
||||
};
|
||||
|
||||
zone "dot-fallback" {
|
||||
type secondary;
|
||||
file "dot-fallback.db";
|
||||
primaries {
|
||||
10.53.0.1 tls ephemeral;
|
||||
10.53.0.1;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ copy_setports ns8/named.conf.in ns8/named.conf
|
|||
|
||||
copy_setports ns4/named.conf.base ns4/named.conf
|
||||
|
||||
cp ns1/dot-fallback.db.in ns1/dot-fallback.db
|
||||
|
||||
cp ns2/sec.db.in ns2/sec.db
|
||||
touch -t 200101010000 ns2/sec.db
|
||||
|
||||
|
|
|
|||
|
|
@ -35,13 +35,24 @@ tmp=0
|
|||
# Spin to allow the zone to transfer.
|
||||
#
|
||||
wait_for_xfer () {
|
||||
$DIG $DIGOPTS example. @10.53.0.3 axfr > dig.out.ns3.test$n || return 1
|
||||
grep "^;" dig.out.ns3.test$n > /dev/null && return 1
|
||||
ZONE=$1
|
||||
SERVER=$2
|
||||
$DIG $DIGOPTS $ZONE @$SERVER axfr > dig.out.test$n || return 1
|
||||
grep "^;" dig.out.test$n > /dev/null && return 1
|
||||
return 0
|
||||
}
|
||||
retry_quiet 25 wait_for_xfer || tmp=1
|
||||
grep "^;" dig.out.ns3.test$n | cat_i
|
||||
digcomp dig1.good dig.out.ns3.test$n || tmp=1
|
||||
retry_quiet 25 wait_for_xfer example. 10.53.0.3 || tmp=1
|
||||
grep "^;" dig.out.test$n | cat_i
|
||||
digcomp dig1.good dig.out.test$n || tmp=1
|
||||
if test $tmp != 0 ; then echo_i "failed"; fi
|
||||
status=$((status+tmp))
|
||||
|
||||
n=$((n+1))
|
||||
echo_i "testing zone transfer functionality (fallback to DNS after DoT failed) ($n)"
|
||||
tmp=0
|
||||
retry_quiet 25 wait_for_xfer dot-fallback. 10.53.0.2 || tmp=1
|
||||
grep "^;" dig.out.test$n | cat_i
|
||||
digcomp dig3.good dig.out.test$n || tmp=1
|
||||
if test $tmp != 0 ; then echo_i "failed"; fi
|
||||
status=$((status+tmp))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue