Hi,

I've hit a corner-case in my BIND configuration involving
automatically-created empty private zones (such as for 10.in-addr.arpa)
and zone configuration via RFC 9432 catalog zone.

I think I have found a couple of manual solutions, but I'm wondering if
there's a neat trick that I'm missing.

 ~ ~ ~

In more detail:

I've configured my on-site recursive servers (currently running a
distribution-supplied BIND 9.16.x) to act as hidden secondaries for our
core DNS zones for resilience.

Rather than manually enumerate all our core zones, including RFC 1918
reverse lookup zones, I use a catalog zone to configure the recursive
resolvers with the set of zones they should mirror.

This is (almost!) working perfectly.  However, some private zones, such
as 10.in-addr.arpa, aren't being replicated; instead, BIND has
automatically created an empty version of the zone, and is serving
NXDOMAINs from that empty zone to avoid inappropriately forwarding such
queries to the DNS root.

Ref: https://kb.isc.org/docs/aa-00800

Normally, BIND would notice any statically configured private zones and
not create empty variants for them.  However, because these zones
aren't configured statically, but are instead populated dynamically
from the catalog, BIND can't tell at start-up time that it doesn't need
to create an empty version — and moreover, doesn't appear to be able to
override or replace the automatically created empty zone when
subsequently asked to mirror it via the catalog.


This shows up in the BIND log as e.g.:

> catz: zone "10.in-addr.arpa" is overridden by explicitly configured
zone

... even though this zone isn't actually explicitly configured.

 ~ ~ ~

Now, I believe I can work around this problem by manually enumerating:

    disable-empty-zone "10.in-addr.arpa."; # etc.

... in my BIND configuration.  However, this is suboptimal, as now the
additional mirroring of some zones requires reconfiguration of the
downstream secondary nameserver configuration as well as the catalog
zone, which I was hoping to avoid.

The alternative is to disable the creation of all empty zones entirely
with `empty-zones-enable no;`, however, this is unattractive as it will
fail broken.

(I can try to ensure that the catalog (and local authoritative server)
all reference each of the private DNS zones as required, and keep this
set updated; however, any ommission will cause queries to be
inappropriately forwarded to the DNS root.)

 ~ ~ ~

Is there an artful third way that allows me to automatically override
locally-created empty zones using entries in a DNS catalog, without
first disabling the safety feature in BIND that prevents private DNS
queries for any unconfigured private zones from being passed up to the
DNS root?

(I've had a skim of the BIND changelog since the older version that I'm
running, and didn't see any headline entries indicating a change in
this area.)

Hope that all makes sense; thanks in advance for any advice anyone can
offer!

Best wishes,
David
-- 
Dr. David McBride <david.w.mcbr...@durham.ac.uk>
Senior Technical Specialist, Computing & Information Services
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to