I recently installed a Cisco Linksys E3200 wireless router in my network. Attached to it is a Linux server running Bind DNS that is used to resolve names of internal services.

Previously, I had a Netgear router, and all OSes (Windows, Linux, Mac) were able to resolve DNS immediately. Now, only Linux and Mac seem able to resolve DNS. It seems to take Windows (both XP and 7) hours or days to finally find the DNS server, resulting in a lot of frustrated users asking me "why can't I access anything?"

I can't find anything obviously wrong with the settings in the router, so my short-term fix has been to distribute a hosts-file to the Windows users, which is obviously not the right solution.

Windows machines can ping the internal DNS server, but they're not picking up the DNS domain/search/nameserver settings. How would I diagnose why Windows is unable to correctly resolve DNS?

EDIT: My /etc/resolv.conf auto-populated with DNS settings retrieved from my router.

domain mydomain.com search mydomain.com nameserver nameserver nameserver

  • do you get a timeout when you run nslookup from the command prompt? – tony roth May 1 '12 at 14:49
  • 1
    well, let's get the obvious question out of the way first: Do you have the windows clients set to use the BIND server as primary DNS? – Rex May 1 '12 at 15:51
  • @Tony, No, nslookup returns quickly. – Cerin May 1 '12 at 18:44
  • @Rex, I'm not sure what you mean. I entered the DNS server's credentials into the router's DNS server settings so those will be distributed to any computer that connect. See my edit for an example of the settings retrieved from the router. – Cerin May 1 '12 at 18:46
  • Maybe this? serverfault.com/a/245065/121010 – JimB May 5 at 11:32

As far as I know, Windows clients don't understand resolv.conf. You need to configure the DNS server address in the IP configuration on your Windows clients, either manually or via DHCP.

| improve this answer | |
  • I know...that's not the issue. The resolv.conf file isn't something you manually create. It's created by the network manager daemon, which reads it from the router's DHCP settings. My question is why isn't Windows able to automatically infer this the way other OSes can? – Cerin May 2 '12 at 2:38
  • @Cerin, perhaps you need to read Chris's answer properly. You need to configure either the DHCP server to hand out the correct DNS server address or, if not using DHCP, go to each machine and configure them properly. – John Gardeniers May 2 '12 at 3:16
  • @Cerin OK, so if you do an ipconfig /all on one of the Windows hosts, does it have the correct DNS servers in its configuration? – Chris McKeown May 2 '12 at 7:26

I'm going to infer that your router is also the DHCP server. Having said that, is the IP address of the Linux DNS server (BIND DNS) inputted on the Cisco router? If so, then client machines should be able to pickup the IP address of the Linux DNS server (BIND DNS) and query that DNS server for name-resolution using its DNS file, (resolv.conf). If you have a DHCP that isn't the router, check the scope options to see if any DNS IP is inputted.

| improve this answer | |
  • Yes, it is. That's how the Linux and Mac machines are populating their resolv.conf... – Cerin May 2 '12 at 2:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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