1

Our company runs lots of applications which rely on the network for several operations (email sending, file downloading, etc).
We ofter get errors like UnknownHostException, which break some business logic. I guess they're due to the fact that some DNS lookup fail at some level (application, OS, whatever).

Since several of those requested domains don't really change their IP address, at least half of those errors should not happen.
I'm thinking about some kind of DNS cache or local server that would isolate our applications from such transient DNS errors.

I'm thinking about something that would return the last known IP if the next DNS server has returned an error (and perhaps periodically update the known hostname to IP resolutions), but I have no idea if this makes sense I have no prior experience in this field.

After some research on the net, I found MaraDNS and BIND, but I have no idea if they're what I really need nor have I had the time to try them.

We run Windows Servers, versions 2008 and 2012. Am I on the right path here? Or do you suggest some other approach to the problem?

I'm linking mine to this local-dns-caching? question since there are several suggested software in it, in case any could be of help to me.

watery
  • 143
  • 10
  • We can't really say whether or not this will address the problem because you don't know what is causing it. The recursive DNS service that was being used at the time should have already been caching these records for you (since others are requesting them), so there may not be much value to doing it yourself. It would help if you could provide a sample DNS record that is failing so that we can look at how the domain is configured. [People frequently make bad DNS design decisions.](http://serverfault.com/questions/710108/why-is-geo-redundant-dns-necessary-for-small-sites) – Andrew B Sep 07 '15 at 17:56

1 Answers1

1

You're question isn't exactly clear, but it sounds like you want a local DNS server that can host an internal DNS zone for all of your internal clients and can resolve those DNS name queries for all of the internal clients. If that's what you're after then simply install the DNS server role on one of your Windows servers, create a DNS zone for your internal clients and configure them with a DNS suffix that matches the zone.

joeqwerty
  • 108,377
  • 6
  • 80
  • 171
  • Probably, that's because I have not a clear understanding of what the right approach should be. The first (and simple) idea I got is to write a program that would act as a local dns, receive requests from other local servers and return the last known IP address. From time to time this program would update its domain-to-IP list, but keeping the last known IP when a resolution fails, thus isolating the local servers from those errors. But I guess better software / approaches already exists, so here I am with my question. – watery Sep 06 '15 at 18:08
  • With a few exceptions, you've just described a DNS server. – joeqwerty Sep 06 '15 at 18:10
  • So, you suggest to check some of those servers I mentioned and install one of them? – watery Sep 07 '15 at 06:34
  • You've already got two Windows servers. Install the Windows DNS role on one of them. Go to Server Manager>Roles>Add Roles, find the DNS role and install it. – joeqwerty Sep 07 '15 at 14:58