Windows 2003 split DNS

[Migrated from]

This is something I thought would be simple. Then I began scratching my head reading all the posts on the web, thinking I might actually need to get a proper book. Finally I realised it was actually quite simple…

This is not the classic split DNS (aka split-brain dns) functionality, but in my setup I needed something similar. Let me explain:

I have one domain (lets call it and I have both external and internal hosts that I would like to access via

The external DNS happily resolves all external host records. In the gingerlime offices, however, I use the same external records, but we also want to use internal resolution e.g. In some cases, I may want to use the same name for internal and external servers, so when people use it in the office they get to the internal host, and when out (you guessed it…) to the external.

That’s easy to manage if you define the domain internally, say set on our internal dns server – running on windows 2003, and then define each host whichever way you like. However, the main problem and pain was that every time a record needed to be updated, or a new one created, I needed to update both the external and internal dns servers. What I wanted was to have all names resolved externally, apart from those ones which we want to access internally only or to override.

The solution is surprisingly simple. Instead of creating a dns zone for on our internal server, I created a zone for each host we needed to override, i.e. a zone for Then all I had to do was to create an empty A (or CNAME) record to resolve to whichever IP (or dns record) I wanted.

I then made sure to delete the zone for the upper-level domain (, so resolution of any unknown record gets forwarded to the external dns, and any known one (you guessed it again…) resolves locally.

14 Responses to “Windows 2003 split DNS”

  1. Graham

    Hah. This would have never have occured to me, but makes sense – works a treat too.


  2. Alfonso

    awesome tip, i would only add that it’s a primary zone, and not secondary or stub.

    worked like a charm!

  3. Michael

    Thanks a LOT for this post! Exactly what I needed!

  4. Tim

    Genius my friend, that never would have occurred to me. I scratched my head over this a good bit too, trying at all costs to avoid editing hosts files on internal machines for this. Thanks!

  5. Phil

    Thank you – you just saved me a $300 bill by allowing me to do it myself!


  6. Bruce

    Thanks so much for sharing. This was brilliantly simple, and it works!

  7. Yoav Aner

    Thanks Bruce. It’s been a long while since I used Windows, and it’s already 2013, so am a bit surprised (but also happy) that it’s still useful.

  8. Alex

    Good Man!! Elegant solution to a sophisticated problem.

Leave a Reply