Microsoft DNS: Provide different answers per-src-subnet to same query – do I need full split horizon/brain

active-directoryinternal-dnssplit-dnswindows-server-2008

I have a network with two vlans, both of which refer to my AD server(s) for DNS. Some servers on this network are multi-homed.
Lets say we have the two subnets A: 192.168.7.0/24 and B: 192.168.5.0/24.
Then we have a server whose hostname is "carrot". Carrot has two IPs, 192.168.5.3 and 192.168.7.3. I want users on each subnet to be able to resolve "carrot.mydomain" to their "local" IP.

Is this possible with Windows DNS server? Do I need to go full "split brain"? Has anyone got any useful links to documentation on these setups, i'm a bit of an MS-DNS newb.

Edit: lets assume the host "carrot" has static DNS entries, and i'm happy to add them to my DNS server. It does not register itself in any way.

Best Answer

The bind "views" feature would do exactly what you want here but Microsoft steadfastly refuses to implement something similiar.

It sounds like subnet prioritization is the closest thing to what you're looking for. This setting causes the server computer to return "A" records to clients in the order that most closely matches the IP address of the requesting client.

Windows Vista and newer Windows versions do this to the results they receive from a remote DNS server by default (see http://support.microsoft.com/kb/968920), but setting this option on the server allows earlier clients to receive the "A" records from the server sorted by subnet. Be aware that there is an implicit assumption of /24 subnets by the DNS Server (see http://msmvps.com/blogs/acefekay/archive/2010/05/29/dns-and-subnet-priortization-amp-dns-round-robin.aspx for a lot of background on this behavior) unless you tweak the configuration.