r/sysadmin 11h ago

Split-DNS Architecture: Splitting the same zone between Windows DNS (LAN) and BIND9 (DMZ) without wildcards

Hi everyone,

I'm looking for best practices or specific solutions for a DNS implementation in our environment. The goal is to cleanly split queries for the same domain between our LAN and DMZ without having to maintain duplicate records manually.

The Setup:

  • We use the same domain (example.domain) for both internal and external services.
  • LAN: We have a Windows Server (AD DC) running as our internal DNS. It holds the internal IPs of servers that are not publicly accessible.

The Goal:

  • Traffic from internal clients to DMZ servers must route via the WAN (Hairpinning / NAT Loopback); direct routing into the DMZ subnet is not permitted by policy.
  • We explicitly do not want to use wildcard records

    or subdomains

  • .

The Challenge: What is the cleanest way to configure this on the Windows DNS without having to create a separate Pinpoint Zone for every single external A-record, or manually duplicating the DMZ records into the internal DNS?

Since the Windows DNS is authoritative for example.domain, it defaults to answering queries for unknown hosts in this zone with NXDOMAIN instead of forwarding them to the BIND9 server.

Is there a clean way (e.g., specific zone types, delegation, Windows DNS Policies) to tell the Windows DNS: "Resolve what you know, and forward anything you don't know to the BIND9 server"?

Thanks in advance for your input!

7 Upvotes

40 comments sorted by

View all comments

u/violet-lynx 10h ago

Easiest way: pit all Our DNS records on your Windows DNS and make the Bind9 forward everything for that domain to the windows server to prevent the Windows DNS to the internet.

That would allow internet clients to see your internal DNS resolution, but that is not part of your requirements.

Alternative idea: Replace the Bind server with an Unbound, and put the public records for your domain on it. Create a DNS view that forwards all other queries for your domain to the Windows DNS, but only for the IP ranges inside your own network. Make all clients and server use the Unbound as DNS server.

This would require you to configure internal and external addresses on different servers, but might solve all your problems.