Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Found the following here. The questions is: where can I find more details on how exactly implement this on Windows? Any guide or how-to anybody? Or maybe you can provide your invaluable suggestions?

Specifically, how do I make so that "all QA servers would first resolve entries in first and then if that lookup failed they would try" (I'm a dev, not a DNS specialist, but our IT Support has refused to help on this:()

Use DNS Based Environment Determination for your servers. Do this by initially splitting your top level domain into a number of sub domains depending on their function, and then creating DNS Service Names in each of the sub domains pointing to the relevant server for that service. Based on the list above we would then have:

* for Production
* for Performance Testing
* for QA
* for Development

Servers then resolve entries in their relevant sub domain by function. That is, all QA servers would first resolve entries in first and then if that lookup failed they would try This allows you to have a single configuration entry for your client database hostname (clientdb) that would resolve correctly in all environments. This technique has the added advantage of still having global services defined in a common top level domain.

This seems to be related to Providing "split horizon" DNS service. Reading that, I see that I will probably need separate DNS Server for each environment. Is this true or does Windows Server 2k8 DNS support some form of "tagging" the records to be visible depending on the requestor's IP?

share|improve this question

On the windows client, in the NIC settings, under TCP, Advanced, DNS tab; there's an option for searching various domains. By default it's set to use only the primary connection suffix (domain); but you can switch it to use a list you set (make sure you include all the domains you want it to search).

Windows Server has no way to tag records so that only certain clients can do a lookup. You can block certain clients from accessing the DNS server all together, but no more fine grained than that.

In DNS you can create Canonical Name records to point to the actual server name you wan to access. It's not terribly common to use this sort of technique in an internal network, but is somewhat common on Internet facing deployments.

share|improve this answer

This is typically handled by editing the DNS search list. This varies by platform, but you can configure your DNS to query a series of domains for domainless names. When resolving "clientdb" without any domain, it'll iterate through the list until it finds a resolution. If your search list is this:

Your DNS client is supposed to search for the correct IP by quering the following:

And so on. Of course, this doesn't work if you provide a full FQDN for the service. On windows, though, you can provide sub-domains (e.x. It'll search for that stub (so it better not be resolvable) but it'll then iterate through the search list ( It's hacky, and you shouldn't do it, but it'll work on Windows. Don't know about Unixes.

This is a per-client setting.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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