]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
remove broken-nsec and reject-000-label options
authorMark Andrews <marka@isc.org>
Wed, 8 Dec 2021 07:02:28 +0000 (18:02 +1100)
committerMark Andrews <marka@isc.org>
Thu, 23 Dec 2021 04:13:46 +0000 (15:13 +1100)
25 files changed:
CHANGES
bin/named/config.c
bin/named/named.conf.rst
bin/named/server.c
bin/tests/system/checkconf/good-broken-nsec.conf [deleted file]
bin/tests/system/checkconf/good-server-christmas-tree.conf.in
bin/tests/system/synthfromdnssec/ns7/named.conf.in [deleted file]
bin/tests/system/synthfromdnssec/ns7/root.hints [deleted file]
bin/tests/system/synthfromdnssec/ns8/named.conf.in [deleted file]
bin/tests/system/synthfromdnssec/ns8/root.hints [deleted file]
bin/tests/system/synthfromdnssec/setup.sh
bin/tests/system/synthfromdnssec/tests.sh
doc/arm/reference.rst
doc/man/named.conf.5in
doc/misc/options
doc/misc/options.active
doc/misc/options.grammar.rst
doc/misc/server.grammar.rst
lib/bind9/check.c
lib/dns/include/dns/peer.h
lib/dns/include/dns/view.h
lib/dns/peer.c
lib/dns/resolver.c
lib/dns/view.c
lib/isccfg/namedconf.c

diff --git a/CHANGES b/CHANGES
index 9ca79b3cabdf26c91f2032e4ad7e7eeb701186fc..df26bf014c73fb09b11407b2a94f9a7462790ec0 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 5774.  [func]          Restore NSEC Aggressive Cache ("synth-from-dnssec")
                        as active by default. It is limited to NSEC only
                        and by default ignores NSEC records with next name
-                       in form \000.domain.
-
-                       Added 'server <prefix> { broken-nsec yes; };' to
-                       identify servers from which NSEC records in negative
-                       responses will not be cached.  These records will
-                       then not be available for synth-from-dnssec to use.
-                       [GL #1265]
+                       in form \000.domain. [GL #1265]
 
 5773.  [func]          Change the message when accepting TCP connection has
                        failed to say "Accepting TCP connection failed" and
index e93ad273edbff87265831cf2fd50dd910eb9e205..6a8fc599fb71b5827bf31940a6e26e94b844bab7 100644 (file)
@@ -177,7 +177,6 @@ options {\n\
        query-source address *;\n\
        query-source-v6 address *;\n\
        recursion true;\n\
-       reject-000-label yes;\n\
        request-expire true;\n\
        request-ixfr true;\n\
        require-server-cookie no;\n\
index 5957d38b1847ae8237cdfb1cbc0e0a8a43ae2905..644c70430aa98e30490a79ad70a373e00d77efdd 100644 (file)
@@ -388,7 +388,6 @@ OPTIONS
        recursing-file quoted_string;
        recursion boolean;
        recursive-clients integer;
-       reject-000-label boolean;// deprecated
        request-expire boolean;
        request-ixfr boolean;
        request-nsid boolean;
@@ -514,7 +513,6 @@ SERVER
 
   server netprefix {
        bogus boolean;
-       broken-nsec boolean;// deprecated
        edns boolean;
        edns-udp-size integer;
        edns-version integer;
@@ -794,7 +792,6 @@ VIEW
                window integer;
        };
        recursion boolean;
-       reject-000-label boolean;// deprecated
        request-expire boolean;
        request-ixfr boolean;
        request-nsid boolean;
@@ -825,7 +822,6 @@ VIEW
        serial-update-method ( date | increment | unixtime );
        server netprefix {
                bogus boolean;
-               broken-nsec boolean;// deprecated
                edns boolean;
                edns-udp-size integer;
                edns-version integer;
index 1467efa1916495b6b4f489868310f431ca526e59..d4641516fc33b95d8c64a0a6f1f455f1ea550043 100644 (file)
@@ -1437,12 +1437,6 @@ configure_peer(const cfg_obj_t *cpeer, isc_mem_t *mctx, dns_peer_t **peerp) {
                CHECK(dns_peer_setbogus(peer, cfg_obj_asboolean(obj)));
        }
 
-       obj = NULL;
-       (void)cfg_map_get(cpeer, "broken-nsec", &obj);
-       if (obj != NULL) {
-               CHECK(dns_peer_setbrokennsec(peer, cfg_obj_asboolean(obj)));
-       }
-
        obj = NULL;
        (void)cfg_map_get(cpeer, "provide-ixfr", &obj);
        if (obj != NULL) {
@@ -4456,11 +4450,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, cfg_obj_t *config,
        INSIST(result == ISC_R_SUCCESS);
        view->acceptexpired = cfg_obj_asboolean(obj);
 
-       obj = NULL;
-       result = named_config_get(maps, "reject-000-label", &obj);
-       INSIST(result == ISC_R_SUCCESS);
-       view->reject_000_label = cfg_obj_asboolean(obj);
-
        obj = NULL;
        /* 'optionmaps', not 'maps': don't check named_g_defaults yet */
        (void)named_config_get(optionmaps, "dnssec-validation", &obj);
diff --git a/bin/tests/system/checkconf/good-broken-nsec.conf b/bin/tests/system/checkconf/good-broken-nsec.conf
deleted file mode 100644 (file)
index f1057d3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * 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.
- */
-
-server 10.0.0/24 {
-       broken-nsec yes;
-};
index 467f750b4e4a932a0574a9e2cd12217550190e24..ce8bd872034b11cd8eef9cbab50a3804721a2f21 100644 (file)
@@ -5,7 +5,6 @@ key example {
 
 server 0.0.0.0 {
        bogus no;
-       broken-nsec no;
        edns no;
        edns-udp-size 512;
        edns-version 0;
@@ -28,7 +27,6 @@ server 0.0.0.0 {
 
 server :: {
        bogus no;
-       broken-nsec no;
        edns no;
        edns-udp-size 512;
        edns-version 0;
diff --git a/bin/tests/system/synthfromdnssec/ns7/named.conf.in b/bin/tests/system/synthfromdnssec/ns7/named.conf.in
deleted file mode 100644 (file)
index bd44c03..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-// NS2
-
-options {
-       query-source address 10.53.0.7;
-       notify-source 10.53.0.7;
-       transfer-source 10.53.0.7;
-       port @PORT@;
-       pid-file "named.pid";
-       listen-on { 10.53.0.7; };
-       listen-on-v6 { none; };
-       recursion yes;
-       notify no;
-       dnssec-validation yes;
-};
-
-server 10.53.0.1 {
-       broken-nsec yes;
-};
-
-key rndc_key {
-       secret "1234abcd8765";
-       algorithm hmac-sha256;
-};
-
-controls {
-       inet 10.53.0.7 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
-};
-
-statistics-channels {
-       inet 10.53.0.7 port @EXTRAPORT1@ allow { any; };
-};
-
-zone "." {
-       type hint;
-       file "root.hints";
-};
-
-include "../ns1/trusted.conf";
diff --git a/bin/tests/system/synthfromdnssec/ns7/root.hints b/bin/tests/system/synthfromdnssec/ns7/root.hints
deleted file mode 100644 (file)
index 63fc22d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-; 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.
-
-.      NS      ns1
-ns1    A       10.53.0.1
diff --git a/bin/tests/system/synthfromdnssec/ns8/named.conf.in b/bin/tests/system/synthfromdnssec/ns8/named.conf.in
deleted file mode 100644 (file)
index 382be43..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.
- */
-
-// NS2
-
-options {
-       query-source address 10.53.0.8;
-       notify-source 10.53.0.8;
-       transfer-source 10.53.0.8;
-       port @PORT@;
-       pid-file "named.pid";
-       listen-on { 10.53.0.8; };
-       listen-on-v6 { none; };
-       recursion yes;
-       notify no;
-       dnssec-validation yes;
-       reject-000-label no;
-};
-
-key rndc_key {
-       secret "1234abcd8765";
-       algorithm hmac-sha256;
-};
-
-controls {
-       inet 10.53.0.8 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
-};
-
-statistics-channels {
-       inet 10.53.0.8 port @EXTRAPORT1@ allow { any; };
-};
-
-zone "." {
-       type hint;
-       file "root.hints";
-};
-
-include "../ns1/trusted.conf";
diff --git a/bin/tests/system/synthfromdnssec/ns8/root.hints b/bin/tests/system/synthfromdnssec/ns8/root.hints
deleted file mode 100644 (file)
index 63fc22d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-; 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.
-
-.      NS      ns1
-ns1    A       10.53.0.1
index d42715de9911cb86d2515f3a2705004f4102e7ae..067aa0e753c3d957c84d5236e3a4aa90d3632feb 100644 (file)
@@ -20,8 +20,6 @@ copy_setports ns3/named.conf.in ns3/named.conf
 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/named.conf.in ns7/named.conf
-copy_setports ns8/named.conf.in ns8/named.conf
 
 (
     cd ns1
index b21262593a8a6129ee04185873e9d411b7916375..564287e32e666f8a6f0f5f18ff627502bb17a53b 100644 (file)
@@ -19,7 +19,6 @@ set -e
 status=0
 n=1
 synth_default=yes
-reject_default=yes
 
 rm -f dig.out.*
 
@@ -99,15 +98,13 @@ check_auth_count() {
     return 0
 }
 
-for ns in 2 4 5 6 7 8
+for ns in 2 4 5 6
 do
     case $ns in
     2) ad=yes; description="<default>";;
     4) ad=yes; description="no";;
     5) ad=yes; description="yes";;
     6) ad=no; description="yes; dnssec-validation no";;
-    7) ad=yes; description="yes; server 10.53.0.1 { broken-nsec yes; };";;
-    8) ad=yes; description="yes; reject-000-label no;";;
     *) exit 1;;
     esac
     echo_i "prime negative NXDOMAIN response (synth-from-dnssec ${description};) ($n)"
@@ -333,15 +330,13 @@ status=$((status+ret))
 #
 sleep 1
 
-for ns in 2 4 5 6 7 8
+for ns in 2 4 5 6
 do
     case $ns in
-    2) ad=yes synth=${synth_default} reject=${reject_default} description="<default>";;
-    4) ad=yes synth=no reject=${reject_default} description="no";;
-    5) ad=yes synth=yes reject=${reject_default} description="yes";;
-    6) ad=no synth=no reject=${reject_default} description="yes; dnssec-validation no";;
-    7) ad=yes synth=no reject=${reject_default} description="yes; server 10.53.0.1 { broken-nsec yes; };";;
-    8) ad=yes synth=yes reject=no description="yes; reject-000-label no;";;
+    2) ad=yes synth=${synth_default} description="<default>";;
+    4) ad=yes synth=no description="no";;
+    5) ad=yes synth=yes description="yes";;
+    6) ad=no synth=no description="yes; dnssec-validation no";;
     *) exit 1;;
     esac
     echo_i "check synthesized NXDOMAIN response (synth-from-dnssec ${description};) ($n)"
@@ -591,20 +586,14 @@ do
     if [ $ret != 0 ]; then echo_i "failed"; fi
     status=$((status+ret))
 
-    echo_i "check back lie NODATA response (synth-from-dnssec ${description};) ($n)"
+    echo_i "check black lie NODATA response (synth-from-dnssec ${description};) ($n)"
     ret=0
     nextpart ns1/named.run > /dev/null
     dig_with_opts black.minimal. @10.53.0.${ns} aaaa > dig.out.ns${ns}.test$n || ret=1
     check_ad_flag $ad dig.out.ns${ns}.test$n || ret=1
     check_status NOERROR dig.out.ns${ns}.test$n || ret=1
-    if [ ${synth} = yes -a ${reject} = no ]
-    then
-       check_synth_soa minimal. dig.out.ns${ns}.test$n || ret=1
-       nextpart ns1/named.run | grep black.minimal/AAAA > /dev/null && ret=1
-    else
-       check_nosynth_soa minimal. dig.out.ns${ns}.test$n || ret=1
-       nextpart ns1/named.run | grep black.minimal/AAAA > /dev/null || ret=1
-    fi
+    check_nosynth_soa minimal. dig.out.ns${ns}.test$n || ret=1
+    nextpart ns1/named.run | grep black.minimal/AAAA > /dev/null || ret=1
     digcomp black.out dig.out.ns${ns}.test$n || ret=1
     n=$((n+1))
     if [ $ret != 0 ]; then echo_i "failed"; fi
@@ -665,11 +654,11 @@ do
     count=$(grep "cache NSEC auxiliary database nodes" ns${ns}/named.stats | wc -l)
     test $count = 2 || ret=1
     zero=$(grep "0 cache NSEC auxiliary database nodes" ns${ns}/named.stats | wc -l)
-    if [ ${ad} = no -o $ns = 7 ]
+    if [ ${ad} = yes ]
     then
-       test $zero = 2 || ret=1
-    else
        test $zero = 1 || ret=1
+    else
+       test $zero = 2 || ret=1
     fi
     n=$((n+1))
     if [ $ret != 0 ]; then echo_i "failed"; fi
@@ -679,7 +668,7 @@ do
     do
        case $synthesized in
        NXDOMAIN) count=1;;
-       no-data) if [ ${reject} = yes ]; then count=4; else count=5; fi;;
+       no-data) count=4;;
        wildcard) count=2;;
        esac
        echo_i "check 'rndc stats' output for 'synthesized a ${synthesized} response' (synth-from-dnssec ${description};) ($n)"
@@ -726,11 +715,11 @@ do
        count=$(echo "$counter" | grep CacheNSECNodes | wc -l)
        test $count = 1 || ret=1
        zero=$(echo "$counter" | grep ">0<" | wc -l)
-       if [ ${ad} = no -o $ns = 7 ]
+       if [ ${ad} = yes ]
        then
-           test $zero = 1 || ret=1
-       else
            test $zero = 0 || ret=1
+       else
+           test $zero = 1 || ret=1
        fi
        n=$((n+1))
        if [ $ret != 0 ]; then echo_i "failed"; fi
@@ -740,7 +729,7 @@ do
        do
            case $synthesized in
            SynthNXDOMAIN) count=1;;
-           SynthNODATA) if [ $reject = yes ]; then count=4; else count=5; fi;;
+           SynthNODATA) count=4;;
            SynthWILDCARD) count=2;;
            esac
 
@@ -789,11 +778,11 @@ do
        count=$(grep '"CacheNSECNodes":' $json | wc -l)
        test $count = 2 || ret=1
        zero=$(grep '"CacheNSECNodes":0' $json | wc -l)
-       if [ ${ad} = no -o $ns = 7 ]
+       if [ ${ad} = yes ]
        then
-           test $zero = 2 || ret=1
-       else
            test $zero = 1 || ret=1
+       else
+           test $zero = 2 || ret=1
        fi
        n=$((n+1))
        if [ $ret != 0 ]; then echo_i "failed"; fi
@@ -803,7 +792,7 @@ do
        do
            case $synthesized in
            SynthNXDOMAIN) count=1;;
-           SynthNODATA) if [ $reject = yes ]; then count=4; else count=5; fi;;
+           SynthNODATA) count=4;;
            SynthWILDCARD) count=2;;
            esac
 
index 64d1fe8012620d661595af0941784e8a670a731f..c7c180bf959adf52a53c1f399f1457ff347b677c 100644 (file)
@@ -2100,17 +2100,6 @@ Boolean Options
    default is ``no``. Setting this option to ``yes`` leaves ``named``
    vulnerable to replay attacks.
 
-.. _reject_000_label:
-
-``reject-000-label``
-   This controls whether NSEC records whose Next Owner Name field starts
-   with a ``\000`` label are cached for use by the ``synth-from-dnssec``
-   feature. The default is ``yes``, which means these records are not
-   used for negative response synthesis. This is a temporary measure to
-   improve interoperability with authoritative servers that generate
-   incorrect NSEC records. The default value of this option may change
-   in a future release, or it may be removed altogether.
-
 ``querylog``
    Query logging provides a complete log of all incoming queries and all query
    errors. This provides more insight into the server's activity, but with a
@@ -2257,12 +2246,6 @@ Boolean Options
    have been proved to be correct using DNSSEC.
    The default is ``yes``.
 
-   The ``reject-000-label`` :ref:`option <reject_000_label>` and the
-   ``broken-nsec`` :ref:`server configuration clause
-   <server_broken_nsec>` can be used to prevent broken NSEC records from
-   causing incorrect negative responses to be synthesized when
-   ``synth-from-dnssec`` is set to ``yes``.
-
    .. note:: DNSSEC validation must be enabled for this option to be effective.
       This initial implementation only covers synthesis of answers from
       NSEC records; synthesis from NSEC3 is planned for the future. This
@@ -4556,16 +4539,6 @@ If a remote server is giving out bad data, marking it
 as bogus prevents further queries to it. The default value of
 ``bogus`` is ``no``.
 
-.. _server_broken_nsec:
-
-The ``broken-nsec`` clause determines whether the NSEC records found in
-negative responses sent by the remote server are ignored for the purpose
-of synthesizing negative responses or not. The default is ``no``.
-Setting this to ``yes`` can be used to prevent broken NSEC records from
-causing incorrect negative responses to be synthesized when
-``synth-from-dnssec`` is set to ``yes``. This option may be removed in a
-future release.
-
 The ``provide-ixfr`` clause determines whether the local server, acting
 as primary, responds with an incremental zone transfer when the given
 remote server, a secondary, requests it. If set to ``yes``, incremental
index 6837e0d387d8f1ec742479cf1b24326b45d3983d..1e285a2d0e86c274e6c65ae4965d67acb465babd 100644 (file)
@@ -455,7 +455,6 @@ options {
       recursing\-file quoted_string;
       recursion boolean;
       recursive\-clients integer;
-      reject\-000\-label boolean;// deprecated
       request\-expire boolean;
       request\-ixfr boolean;
       request\-nsid boolean;
@@ -597,7 +596,6 @@ primaries string [ port integer ] [ dscp
 .ft C
 server netprefix {
       bogus boolean;
-      broken\-nsec boolean;// deprecated
       edns boolean;
       edns\-udp\-size integer;
       edns\-version integer;
@@ -897,7 +895,6 @@ view string [ class ] {
               window integer;
       };
       recursion boolean;
-      reject\-000\-label boolean;// deprecated
       request\-expire boolean;
       request\-ixfr boolean;
       request\-nsid boolean;
@@ -928,7 +925,6 @@ view string [ class ] {
       serial\-update\-method ( date | increment | unixtime );
       server netprefix {
               bogus boolean;
-              broken\-nsec boolean;// deprecated
               edns boolean;
               edns\-udp\-size integer;
               edns\-version integer;
index 11e305a03b0f229c454d60f0e6835cb18d78931a..b62967ef0c60f5f72a55aadb9ce4ad691373997e 100644 (file)
@@ -313,7 +313,6 @@ options {
         recursing-file <quoted_string>;
         recursion <boolean>;
         recursive-clients <integer>;
-        reject-000-label <boolean>; // deprecated
         request-expire <boolean>;
         request-ixfr <boolean>;
         request-nsid <boolean>;
@@ -420,7 +419,6 @@ primaries <string> [ port <integer> ] [ dscp
 
 server <netprefix> {
         bogus <boolean>;
-        broken-nsec <boolean>; // deprecated
         edns <boolean>;
         edns-udp-size <integer>;
         edns-version <integer>;
@@ -674,7 +672,6 @@ view <string> [ <class> ] {
                 window <integer>;
         };
         recursion <boolean>;
-        reject-000-label <boolean>; // deprecated
         request-expire <boolean>;
         request-ixfr <boolean>;
         request-nsid <boolean>;
@@ -705,7 +702,6 @@ view <string> [ <class> ] {
         serial-update-method ( date | increment | unixtime );
         server <netprefix> {
                 bogus <boolean>;
-                broken-nsec <boolean>; // deprecated
                 edns <boolean>;
                 edns-udp-size <integer>;
                 edns-version <integer>;
index a8a915bda2e6c16aa2ad94bd6065cdebc74c1816..a3e2fbe3f0e7232e7b56a88bd3cbb880425d4335 100644 (file)
@@ -311,7 +311,6 @@ options {
         recursing-file <quoted_string>;
         recursion <boolean>;
         recursive-clients <integer>;
-        reject-000-label <boolean>; // deprecated
         request-expire <boolean>;
         request-ixfr <boolean>;
         request-nsid <boolean>;
@@ -417,7 +416,6 @@ primaries <string> [ port <integer> ] [ dscp
 
 server <netprefix> {
         bogus <boolean>;
-        broken-nsec <boolean>; // deprecated
         edns <boolean>;
         edns-udp-size <integer>;
         edns-version <integer>;
@@ -670,7 +668,6 @@ view <string> [ <class> ] {
                 window <integer>;
         };
         recursion <boolean>;
-        reject-000-label <boolean>; // deprecated
         request-expire <boolean>;
         request-ixfr <boolean>;
         request-nsid <boolean>;
@@ -701,7 +698,6 @@ view <string> [ <class> ] {
         serial-update-method ( date | increment | unixtime );
         server <netprefix> {
                 bogus <boolean>;
-                broken-nsec <boolean>; // deprecated
                 edns <boolean>;
                 edns-udp-size <integer>;
                 edns-version <integer>;
index 862461f6900220f746ccb7304c7054ca132a0c14..8e69a096864aa0eeb792ecdd8be77bf4fe74db10 100644 (file)
        recursing-file <quoted_string>;
        recursion <boolean>;
        recursive-clients <integer>;
-       reject-000-label <boolean>; // deprecated
        request-expire <boolean>;
        request-ixfr <boolean>;
        request-nsid <boolean>;
index 9e61ad1e845639aee4465c73a6ba00917e435190..4c461a0c12e820fefe07c08f762433ab600e16f3 100644 (file)
@@ -2,7 +2,6 @@
 
   server <netprefix> {
        bogus <boolean>;
-       broken-nsec <boolean>; // deprecated
        edns <boolean>;
        edns-udp-size <integer>;
        edns-version <integer>;
index 3ff5803096cc61061c857da70f440db3d6deb099..a582a0680b527aab068e05dd9674ef86847fe516 100644 (file)
@@ -4099,7 +4099,6 @@ static struct {
        isc_result_t (*set)(dns_peer_t *peer, bool newval);
 } bools[] = {
        { "bogus", dns_peer_setbogus },
-       { "broken-nsec", dns_peer_setbrokennsec },
        { "edns", dns_peer_setsupportedns },
        { "provide-ixfr", dns_peer_setprovideixfr },
        { "request-expire", dns_peer_setrequestexpire },
index 27b5e17ab003170379c45799f2bde8ecc1a7e677..facbf2dc230088cef3c6b79326c549ff7ee987f0 100644 (file)
@@ -86,12 +86,6 @@ dns_peer_attach(dns_peer_t *source, dns_peer_t **target);
 void
 dns_peer_detach(dns_peer_t **list);
 
-isc_result_t
-dns_peer_setbrokennsec(dns_peer_t *peer, bool newval);
-
-isc_result_t
-dns_peer_getbrokennsec(dns_peer_t *peer, bool *retval);
-
 isc_result_t
 dns_peer_setbogus(dns_peer_t *peer, bool newval);
 
index 43deee1039fa63c90dce5019d3733170d55b9eac..f1ec93877f356ccf46ea6fda916a7f5f590ae91b 100644 (file)
@@ -130,7 +130,6 @@ struct dns_view {
        bool                  synthfromdnssec;
        bool                  trust_anchor_telemetry;
        bool                  root_key_sentinel;
-       bool                  reject_000_label;
        dns_transfer_format_t transfer_format;
        dns_acl_t                 *cacheacl;
        dns_acl_t                 *cacheonacl;
index 5d95cb9329fbd131f839b44875ec5faabd2df7bd..641574f82720f16446f321bed20a89e17f507b37 100644 (file)
@@ -58,7 +58,6 @@ struct dns_peer {
        bool force_tcp;
        bool tcp_keepalive;
        bool check_axfr_id;
-       bool broken_nsec;
        dns_name_t *key;
        isc_sockaddr_t *transfer_source;
        isc_dscp_t transfer_dscp;
@@ -97,7 +96,6 @@ struct dns_peer {
 #define FORCE_TCP_BIT             15
 #define SERVER_PADDING_BIT        16
 #define REQUEST_TCP_KEEPALIVE_BIT  17
-#define BROKEN_NSEC               18
 
 static void
 peerlist_delete(dns_peerlist_t **list);
@@ -592,33 +590,6 @@ dns_peer_gettcpkeepalive(dns_peer_t *peer, bool *retval) {
        }
 }
 
-isc_result_t
-dns_peer_setbrokennsec(dns_peer_t *peer, bool newval) {
-       bool existed;
-
-       REQUIRE(DNS_PEER_VALID(peer));
-
-       existed = DNS_BIT_CHECK(BROKEN_NSEC, &peer->bitflags);
-
-       peer->broken_nsec = newval;
-       DNS_BIT_SET(BROKEN_NSEC, &peer->bitflags);
-
-       return (existed ? ISC_R_EXISTS : ISC_R_SUCCESS);
-}
-
-isc_result_t
-dns_peer_getbrokennsec(dns_peer_t *peer, bool *retval) {
-       REQUIRE(DNS_PEER_VALID(peer));
-       REQUIRE(retval != NULL);
-
-       if (DNS_BIT_CHECK(BROKEN_NSEC, &peer->bitflags)) {
-               *retval = peer->broken_nsec;
-               return (ISC_R_SUCCESS);
-       } else {
-               return (ISC_R_NOTFOUND);
-       }
-}
-
 isc_result_t
 dns_peer_settransfers(dns_peer_t *peer, uint32_t newval) {
        bool existed;
index 5c78c410e23c1fd30bef6ef1bd29f07717f7f435..71ed4b7cce6c6aebc94d27d062015f7908178490 100644 (file)
@@ -5343,7 +5343,6 @@ validated(isc_task_t *task, isc_event_t *event) {
        dns_valarg_t *valarg;
        dns_validatorevent_t *vevent;
        fetchctx_t *fctx = NULL;
-       bool broken_nsec = false;
        bool chaining;
        bool negative;
        bool sentresponse;
@@ -5356,8 +5355,6 @@ validated(isc_task_t *task, isc_event_t *event) {
        dns_fixedname_t fwild;
        dns_name_t *wild = NULL;
        dns_message_t *message = NULL;
-       dns_peer_t *peer = NULL;
-       isc_netaddr_t ipaddr;
 
        UNUSED(task); /* for now */
 
@@ -5686,11 +5683,6 @@ validated(isc_task_t *task, isc_event_t *event) {
 
 answer_response:
 
-       isc_netaddr_fromsockaddr(&ipaddr, &addrinfo->sockaddr);
-       (void)dns_peerlist_peerbyaddr(fctx->res->view->peers, &ipaddr, &peer);
-       if (peer != NULL) {
-               (void)dns_peer_getbrokennsec(peer, &broken_nsec);
-       }
        /*
         * Cache any SOA/NS/NSEC records that happened to be validated.
         */
@@ -5724,15 +5716,6 @@ answer_response:
                                continue;
                        }
 
-                       /*
-                        * If this peer has been marked as emitting broken
-                        * NSEC records do not cache it.
-                        */
-                       if (rdataset->type == dns_rdatatype_nsec && broken_nsec)
-                       {
-                               continue;
-                       }
-
                        /*
                         * Don't cache NSEC if missing NSEC or RRSIG types.
                         */
@@ -5765,9 +5748,7 @@ answer_response:
                         * Look for \000 label in next name.
                         */
                        if (rdataset->type == dns_rdatatype_nsec &&
-                           fctx->res->view->reject_000_label &&
-                           has_000_label(rdataset))
-                       {
+                           has_000_label(rdataset)) {
                                continue;
                        }
 
index 13679f3d3dd1cc24cefc90239faa451e36caac54..b27be5c51273caa49f600d0a057ca92f44c37a18 100644 (file)
@@ -240,7 +240,6 @@ dns_view_create(isc_mem_t *mctx, dns_rdataclass_t rdclass, const char *name,
        view->synthfromdnssec = true;
        view->trust_anchor_telemetry = true;
        view->root_key_sentinel = true;
-       view->reject_000_label = true;
        view->new_zone_dir = NULL;
        view->new_zone_file = NULL;
        view->new_zone_db = NULL;
index 5e62fb5795bb7be7f3668b91b2811c9fd844e74f..5a1c19c253c485545bbf2ded24c712a3c3d097fe 100644 (file)
@@ -2118,7 +2118,6 @@ static cfg_clausedef_t view_clauses[] = {
        { "queryport-pool-updateinterval", NULL, CFG_CLAUSEFLAG_ANCIENT },
        { "rate-limit", &cfg_type_rrl, 0 },
        { "recursion", &cfg_type_boolean, 0 },
-       { "reject-000-label", &cfg_type_boolean, CFG_CLAUSEFLAG_DEPRECATED },
        { "request-nsid", &cfg_type_boolean, 0 },
        { "request-sit", NULL, CFG_CLAUSEFLAG_ANCIENT },
        { "require-server-cookie", &cfg_type_boolean, 0 },
@@ -2515,7 +2514,6 @@ static cfg_type_t cfg_type_key = { "key",   cfg_parse_named_map,
  */
 static cfg_clausedef_t server_clauses[] = {
        { "bogus", &cfg_type_boolean, 0 },
-       { "broken-nsec", &cfg_type_boolean, CFG_CLAUSEFLAG_DEPRECATED },
        { "edns", &cfg_type_boolean, 0 },
        { "edns-udp-size", &cfg_type_uint32, 0 },
        { "edns-version", &cfg_type_uint32, 0 },