I recently switched from one ISP to Time Warner. Now I often get DNS resolution errors (timeouts) in web browsers and web apps running on any machine connected to my home network. Sometimes a single page refresh resolves (literally) the problem, other times it takes a few tries.
I ran Gibson Research's Domain Name Speed Benchmark and that pretty much confirmed that my ISP's DNS servers are "not reliable." I then used the Benchmark to find the 50 fastest DNS servers available to me. Here's what I did next:
I changed all the DHCP settings on all my machines (many are virtual) on my local network to point to the DNS server located at 126.96.36.199, the static internal IP address of my Windows Server 2012 R2 machine.
The Windows Server 2012 R2 machine's DNS server, on its Properties > Forwarders page, lists 192.168.0.1 (my router) as the only forwarder.
I added 4 of the top 50 DNS servers that the GRC tool produced to the list.
Here's what's happening:
These changes have not resolved the problem. I am still getting timeouts resolving domain names, including really common ones, like Google.com.
Stranger still, after I have problems resolving common names, and refreshing the page eventually resolves the problem, the problem will occur again later. My point being, why isn't my DNS server (running on my server) caching these the responses from the external DNS servers? Even if I screwed up the addition of the 4 DNS servers I added, shouldn't my DNS server at least be caching results?
I turned logging on in the DNS server and I do see that DNS requests from the machines on my network are hitting my Windows Server 2012 R2's DNS server. I also see some of the external DNS servers I added (from the 50 fastest list) are being used to resolve the domain names. And yet, I'm still getting DNS timeouts and previously resolved domain names don't appear to be cached.