From: Witold Kręcicki Date: Tue, 12 Jun 2018 08:20:43 +0000 (+0200) Subject: Add qname-minimization off as an option; test fixes X-Git-Tag: v9.13.2~42^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7ec88b384d4fb027794a07643a60289a6fe4884e;p=thirdparty%2Fbind9.git Add qname-minimization off as an option; test fixes --- diff --git a/bin/named/server.c b/bin/named/server.c index ab14623afaa..c8ff38e4c98 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -4651,7 +4651,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, } else if (!strcmp(qminmode, "relaxed")) { view->qminimization = ISC_TRUE; view->qmin_strict = ISC_FALSE; - } else { + } else { /* "disabled" or "off" */ view->qminimization = ISC_FALSE; view->qmin_strict = ISC_FALSE; } diff --git a/bin/tests/system/qmin/ns1/named.conf.in b/bin/tests/system/qmin/ns1/named.conf.in index 7188e3c3729..d1ab47dbdb6 100644 --- a/bin/tests/system/qmin/ns1/named.conf.in +++ b/bin/tests/system/qmin/ns1/named.conf.in @@ -21,6 +21,7 @@ options { listen-on-v6 { none; }; recursion no; notify yes; + dnssec-validation no; }; zone "." { diff --git a/bin/tests/system/qmin/ns5/named.conf.in b/bin/tests/system/qmin/ns5/named.conf.in index 4d045a58ad8..b4163ab0660 100644 --- a/bin/tests/system/qmin/ns5/named.conf.in +++ b/bin/tests/system/qmin/ns5/named.conf.in @@ -23,6 +23,7 @@ options { qname-minimization disabled; querylog yes; resolver-query-timeout 30; + dnssec-validation no; }; key rndc_key { diff --git a/bin/tests/system/qmin/ns6/named.conf.in b/bin/tests/system/qmin/ns6/named.conf.in index 661549b4070..c5fe9adc604 100644 --- a/bin/tests/system/qmin/ns6/named.conf.in +++ b/bin/tests/system/qmin/ns6/named.conf.in @@ -23,6 +23,7 @@ options { qname-minimization strict; querylog yes; resolver-query-timeout 30; + dnssec-validation no; }; key rndc_key { diff --git a/bin/tests/system/qmin/ns7/named.conf.in b/bin/tests/system/qmin/ns7/named.conf.in index 48def89b258..84472ca92af 100644 --- a/bin/tests/system/qmin/ns7/named.conf.in +++ b/bin/tests/system/qmin/ns7/named.conf.in @@ -23,6 +23,7 @@ options { qname-minimization relaxed; querylog yes; resolver-query-timeout 30; + dnssec-validation no; }; key rndc_key { diff --git a/bin/tests/system/qmin/prereq.sh b/bin/tests/system/qmin/prereq.sh new file mode 100644 index 00000000000..f570c1f4d05 --- /dev/null +++ b/bin/tests/system/qmin/prereq.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# 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 http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +SYSTEMTESTTOP=.. +. $SYSTEMTESTTOP/conf.sh + +$SHELL ../testcrypto.sh || exit 255 + +if test -n "$PYTHON" +then + if $PYTHON -c "import dns" 2> /dev/null + then + : + else + echo_i "This test requires the dnspython module." >&2 + exit 1 + fi +else + echo_i "This test requires Python and the dnspython module." >&2 + exit 1 +fi diff --git a/bin/tests/system/qmin/tests.sh b/bin/tests/system/qmin/tests.sh index f0e61cf58a0..938cd7bbb1e 100755 --- a/bin/tests/system/qmin/tests.sh +++ b/bin/tests/system/qmin/tests.sh @@ -26,6 +26,7 @@ $RNDCCMD 10.53.0.5 flush $DIG $DIGOPTS icky.icky.icky.ptang.zoop.boing.good. @10.53.0.5 > dig.out.test$n grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 grep "icky.icky.icky.ptang.zoop.boing.good. 1 IN A 192.0.2.1" dig.out.test$n > /dev/null || ret=1 +sleep 1 cat << __EOF | diff ans2/query.log - > /dev/null || ret=1 A icky.icky.icky.ptang.zoop.boing.good. A ns3.good. @@ -47,6 +48,7 @@ $RNDCCMD 10.53.0.5 flush $DIG $DIGOPTS icky.icky.icky.ptang.zoop.boing.bad. @10.53.0.5 > dig.out.test$n grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 grep "icky.icky.icky.ptang.zoop.boing.bad. 1 IN A 192.0.2.1" dig.out.test$n > /dev/null || ret=1 +sleep 1 cat << __EOF | diff ans2/query.log - > /dev/null || ret=1 A icky.icky.icky.ptang.zoop.boing.bad. A ns3.bad. @@ -69,6 +71,7 @@ $DIG $DIGOPTS icky.icky.icky.ptang.zoop.boing.slow. @10.53.0.5 > dig.out.test$n sleep 5 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 grep "icky.icky.icky.ptang.zoop.boing.slow. 1 IN A 192.0.2.1" dig.out.test$n > /dev/null || ret=1 +sleep 1 cat << __EOF | diff ans2/query.log - > /dev/null || ret=1 A icky.icky.icky.ptang.zoop.boing.slow. A ns3.slow. @@ -90,6 +93,7 @@ $RNDCCMD 10.53.0.6 flush $DIG $DIGOPTS icky.icky.icky.ptang.zoop.boing.good. @10.53.0.6 > dig.out.test$n grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 grep "icky.icky.icky.ptang.zoop.boing.good. 1 IN A 192.0.2.1" dig.out.test$n > /dev/null || ret=1 +sleep 1 # Duplicated NS queries are there because we're not creating # a separate fetch when doing qname minimization - so two # queries running for the same name but different RRTYPE @@ -129,6 +133,7 @@ $CLEANQL $RNDCCMD 10.53.0.6 flush $DIG $DIGOPTS icky.icky.icky.ptang.zoop.boing.bad. @10.53.0.6 > dig.out.test$n grep "status: NXDOMAIN" dig.out.test$n > /dev/null || ret=1 +sleep 1 echo "NS boing.bad." | diff ans2/query.log - > /dev/null || ret=1 for ans in ans2 ans3 ans4; do mv -f $ans/query.log query-$ans-$n.log 2>/dev/null || true; done if [ $ret != 0 ]; then echo_i "failed"; fi @@ -142,6 +147,7 @@ $RNDCCMD 10.53.0.7 flush $DIG $DIGOPTS icky.icky.icky.ptang.zoop.boing.bad. @10.53.0.7 > dig.out.test$n grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 grep "icky.icky.icky.ptang.zoop.boing.bad. 1 IN A 192.0.2.1" dig.out.test$n > /dev/null || ret=1 +sleep 1 cat << __EOF | diff ans2/query.log - > /dev/null || ret=1 NS boing.bad. A icky.icky.icky.ptang.zoop.boing.bad. @@ -201,6 +207,7 @@ $RNDCCMD 10.53.0.6 flush $DIG $DIGOPTS -x 2001:4f8::1 @10.53.0.6 > dig.out.test$n grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 grep "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.f.4.0.1.0.0.2.ip6.arpa. 1 IN PTR nee.com." dig.out.test$n > /dev/null || ret=1 +sleep 1 cat << __EOF | diff ans2/query.log - > /dev/null || ret=1 NS 1.0.0.2.ip6.arpa. NS 8.f.4.0.1.0.0.2.ip6.arpa. @@ -221,6 +228,7 @@ $RNDCCMD 10.53.0.6 flush $DIG $DIGOPTS many.labels.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.good. @10.53.0.6 > dig.out.test$n grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 grep "many.labels.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.good. 1 IN A 192.0.2.2" dig.out.test$n > /dev/null || ret=1 +sleep 1 # We skipped after third no-delegation. cat << __EOF | diff ans2/query.log - > /dev/null || ret=1 NS z.good. @@ -239,6 +247,7 @@ $RNDCCMD 10.53.0.6 flush $DIG $DIGOPTS more.icky.icky.icky.ptang.zoop.boing.good. @10.53.0.6 > dig.out.test$n grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 grep "more.icky.icky.icky.ptang.zoop.boing.good. 1 IN A 192.0.2.2" dig.out.test$n > /dev/null || ret=1 +sleep 1 cat << __EOF | diff ans2/query.log - > /dev/null || ret=1 NS boing.good. NS zoop.boing.good. diff --git a/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c index 8c0b68e52ad..cbcff2d8569 100644 --- a/lib/isccfg/namedconf.c +++ b/lib/isccfg/namedconf.c @@ -2952,7 +2952,7 @@ static cfg_type_t cfg_type_optional_keyref = { }; static const char *qminmethod_enums[] = { - "strict", "relaxed", "disabled", NULL + "strict", "relaxed", "disabled", "off", NULL }; static cfg_type_t cfg_type_qminmethod = { diff --git a/util/copyrights b/util/copyrights index 84bfd1ed006..0750f5dfcc1 100644 --- a/util/copyrights +++ b/util/copyrights @@ -1740,6 +1740,7 @@ ./bin/tests/system/qmin/ns5/named.conf.in CONF-C 2018 ./bin/tests/system/qmin/ns6/named.conf.in CONF-C 2018 ./bin/tests/system/qmin/ns7/named.conf.in CONF-C 2018 +./bin/tests/system/qmin/prereq.sh SH 2018 ./bin/tests/system/qmin/setup.sh SH 2018 ./bin/tests/system/qmin/tests.sh SH 2018 ./bin/tests/system/reclimit/README TXT.BRIEF 2014,2016,2017,2018