mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-11 05:19:59 -04:00
Add system test for dual-stack-servers with possible DNAME response
Create a zone that triggers DNAME owner name checks in a zone that
is only reachable using a dual stack server. The answer contains
a name that is higher in the tree than the query name.
e.g.
foo.v4only.net. CNAME v4only.net.
v4only.net. A 10.0.0.1
ns4 is serving the test zone (ipv4-only)
ns6 is the root server for this test (dual stacked)
ns7 is acting as the dual stack server (dual stacked)
ns9 is the server under test (ipv6-only)
(cherry picked from commit f946133ec9)
This commit is contained in:
parent
c77af4be6f
commit
726aa21913
12 changed files with 103 additions and 3 deletions
|
|
@ -57,6 +57,11 @@ zone "sourcens" {
|
|||
file "sourcens.db";
|
||||
};
|
||||
|
||||
zone "v4only.net" {
|
||||
type primary;
|
||||
file "v4only.net.db";
|
||||
};
|
||||
|
||||
key rndc_key {
|
||||
secret "1234abcd8765";
|
||||
algorithm @DEFAULT_HMAC@;
|
||||
|
|
|
|||
22
bin/tests/system/resolver/ns4/v4only.net.db
Normal file
22
bin/tests/system/resolver/ns4/v4only.net.db
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
; 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 marka.isc.org. ns.server. (
|
||||
2010 ; serial
|
||||
600 ; refresh
|
||||
600 ; retry
|
||||
1200 ; expire
|
||||
600 ; minimum
|
||||
)
|
||||
@ NS v4.nameserver.
|
||||
A 10.0.0.1
|
||||
* CNAME @
|
||||
|
|
@ -20,7 +20,7 @@ options {
|
|||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.6; };
|
||||
listen-on-v6 { none; };
|
||||
listen-on-v6 { fd92:7065:b8e:ffff::6; };
|
||||
recursion no;
|
||||
dnssec-validation no;
|
||||
querylog yes;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ $TTL 300
|
|||
)
|
||||
. NS a.root-servers.nil.
|
||||
a.root-servers.nil. A 10.53.0.6
|
||||
a.root-servers.nil. AAAA fd92:7065:b8e:ffff::6
|
||||
moves. NS ns.server.
|
||||
server. NS ns7.server.
|
||||
ns7.server. A 10.53.0.7
|
||||
|
|
@ -31,3 +32,5 @@ no-edns-version.tld. NS ns.no-edns-version.tld.
|
|||
ns.no-edns-version.tld. A 10.53.0.6
|
||||
edns-version.tld. NS ns.edns-version.tld.
|
||||
ns.edns-version.tld. A 10.53.0.7
|
||||
v4only.net. NS v4.nameserver.
|
||||
v4.nameserver. A 10.53.0.4
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ options {
|
|||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.7; };
|
||||
listen-on-v6 { none; };
|
||||
listen-on-v6 { fd92:7065:b8e:ffff::7; };
|
||||
recursion yes;
|
||||
dnssec-validation yes;
|
||||
empty-zones-enable yes;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ options {
|
|||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.7; };
|
||||
listen-on-v6 { none; };
|
||||
listen-on-v6 { fd92:7065:b8e:ffff::7; };
|
||||
recursion yes;
|
||||
dnssec-validation yes;
|
||||
empty-zones-enable yes;
|
||||
|
|
|
|||
2
bin/tests/system/resolver/ns9/named.args
Normal file
2
bin/tests/system/resolver/ns9/named.args
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# this server is IPv6 only
|
||||
-6 -m record -c named.conf -d 99 -D resolver-ns9 -X named.lock -g -T maxcachesize=2097152
|
||||
39
bin/tests/system/resolver/ns9/named.conf.in
Normal file
39
bin/tests/system/resolver/ns9/named.conf.in
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// NS9
|
||||
|
||||
options {
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { none; };
|
||||
listen-on-v6 { fd92:7065:b8e:ffff::9; };
|
||||
recursion yes;
|
||||
dnssec-validation yes;
|
||||
dual-stack-servers { fd92:7065:b8e:ffff::7; };
|
||||
qname-minimization off;
|
||||
};
|
||||
|
||||
key rndc_key {
|
||||
secret "1234abcd8765";
|
||||
algorithm @DEFAULT_HMAC@;
|
||||
};
|
||||
|
||||
controls {
|
||||
inet fd92:7065:b8e:ffff::9 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "root.hint";
|
||||
};
|
||||
0
bin/tests/system/resolver/ns9/named.ipv6-only
Normal file
0
bin/tests/system/resolver/ns9/named.ipv6-only
Normal file
15
bin/tests/system/resolver/ns9/root.hint
Normal file
15
bin/tests/system/resolver/ns9/root.hint
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
; 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 999999
|
||||
. IN NS a.root-servers.nil.
|
||||
a.root-servers.nil. IN A 10.53.0.6
|
||||
a.root-servers.nil. IN AAAA fd92:7065:b8e:ffff::6;
|
||||
|
|
@ -23,5 +23,6 @@ copy_setports ns4/named.conf.in ns4/named.conf
|
|||
copy_setports ns5/named.conf.in ns5/named.conf
|
||||
copy_setports ns6/named.conf.in ns6/named.conf
|
||||
copy_setports ns7/named1.conf.in ns7/named.conf
|
||||
copy_setports ns9/named.conf.in ns9/named.conf
|
||||
|
||||
(cd ns6 && $SHELL keygen.sh)
|
||||
|
|
|
|||
|
|
@ -972,5 +972,18 @@ grep "IN.*TXT.*baz" dig.out.ns1.test${n} > /dev/null || ret=1
|
|||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=$((status + ret))
|
||||
|
||||
n=$((n+1))
|
||||
echo_i "check that correct namespace is chosen for dual-stack-servers ($n)"
|
||||
ret=0
|
||||
#
|
||||
# The two priming queries are needed until we fix dual-stack-servers fully
|
||||
#
|
||||
dig_with_opts @fd92:7065:b8e:ffff::9 v4.nameserver A > dig.out.prime1.${n} || ret=1
|
||||
dig_with_opts @fd92:7065:b8e:ffff::9 v4.nameserver AAAA > dig.out.prime2.${n} || ret=1
|
||||
dig_with_opts @fd92:7065:b8e:ffff::9 foo.v4only.net A > dig.out.ns9.${n} || ret=1
|
||||
grep "status: NOERROR" dig.out.ns9.${n} > /dev/null || ret=1
|
||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||
status=$((status + ret))
|
||||
|
||||
echo_i "exit status: $status"
|
||||
[ $status -eq 0 ] || exit 1
|
||||
|
|
|
|||
Loading…
Reference in a new issue