I am running Windows Server 2016 Datacenter; DNS Server role. I have a stub zone configured for a frequently used domain. The stub zone is properly configured and populated with valid NS and glue A records. Here is the problem-I have captured the sequence with Wireshark:
- DNS server hosts a stub zone example.com; properly populated with NS and glue A records.
- DNS client tries to resolve A record host1.example.com.
- DNS server queries a name server in example.com.
- example.com name server returns CNAME record for hostz.example.net.
- DNS Server replies to DNS client with Server Failure.
This scenario works fine with Server 2012 R2. We just recently upgraded to Server 2016. In Server 2012 R2, the DNS server performs a recursive lookup using the CNAME record returned by the stub zone's name server and properly returns the IP address of the CNAME record to the DNS client.
Any ideas why Server 2016 DNS is not continuing to perform a recursive lookup with the returned CNAME record? I verified that recursion is enabled and the server properly performs recursive lookups for all other types of queries. I resolved the problem by changing the stub zone to a conditional forwarder but I prefer to use stub zones since the NS records are automatically updated.