How could I go about forwarding DNS lookups to a non-authorative zone, in a sort of 'next hop' scenario?

The setups is as follows:

One ADDS Domain (contosob.local) which contains two DNS servers, these servers need to be able to lookup records for another ADDS domain (contosob.local) however it is not possible for these servers to speak directly. This is merely for security and not due to clashing subnets.

However, there is another domain (notconsoto.local) which can speak to both the contosoa.local domain and the contosob.local domain. The DNS servers within this domain have a Stub Zone which forwards all lookups for contosob.local to it's DNS servers. This is all working as intended.

However, I still need contosoa.local to lookup records for contosob.local. I tried to create another Stub Zone which pointed lookups to the Stub Zone in notcontoso.local but as this is not an authoritative zone it was denied.

How can I hop DNS lookups via notcontoso.local from contosoa.local? I tried adding one of contosob.local's DNS servers to the DNS client on the required hosts however this does not work as Windows doesn't seem to round robin that far down the list.

  • 1
    Stub zones are a DNS poison nightmare, switch to conditional forwarders. – Jacob Evans Oct 26 '18 at 13:05

This is certainly a one off case, but after testing this in my home lab it seems that it is possible to set up conditional forwarders in this manner.

So contosoa.local has a conditional forwarder for contosob.local that goes to notcontoso.local, notcontoso.local has a conditional forwarder for contosob.local that goes to contosob.local. The DNS query for contosob.local from contosoa.local will "flow" through notcontoso.local.

I've tested this successfully and confirmed the traffic flow with Microsoft Network Monitor.

Note that when setting this up, when the wizard prompts that the DNS server is not authoritative for the zone, add it anyway. Once the "chained" conditional forwarders are set up in contosoa.local and notcontoso.local the DNS query for contosob.local from contosoa.local should flow through notcontoso.local.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.