8

My network router is a ZyXEL ZyWall USG 100, which has a built in DNS server. Many Windows computers connect to it and get IPv4 addresses via DHCP. They also are informed of the DNS suffix ("internal") by the router's "Domain Name." Typically this works fine. However, occasionally a Windows (Vista or 7) machine will not be able to resolve the IP address of a machine with domain name "domain-name" in the DNS records. The machine that has the IP address associated with "domain-name" is on and accessible by other Windows computers at this time.

When this happens, it can still resolve the IP address using "nslookup domain-name", but "ping domain-name", "ping -4 domain-name" and browsing to "http://domain-name" fail. Ping "domain-name.internal" works.

I looked at the output from the "ipconfig /displaydns" command on a computer affected with this problem, and I see unexpected IPv6 entries that look like this:

domain-name
----------------------------------------
No records of type AAAA

I can temporarily resolve the problem by restarting the network adapter interface.

At http://technet.microsoft.com/en-gb/library/bb878121.aspx, Microsoft says:

Note: Due to misconfigured DNS servers on the Internet, computers that use both IPv4 and IPv6 might not be able to resolve names and connect to Internet resources. This rare problem occurs when a misconfigured DNS server receives a request to resolve a name to one or more IPv6 addresses (a request for AAAA records). If the DNS server does not support IPv6, the name query fails. The querying node then sends a request to resolve the name to a set of IPv4 addresses (a request for A records). The misconfigured DNS server drops the subsequent DNS query for IPv4 addresses and the entire name resolution attempt fails, resulting in impaired network connectivity for the requesting node. If you are experiencing this problem, ask your Internet service provider to reconfigure their DNS server to accept the subsequent DNS query for A records after failing the DNS query for AAAA records. Alternately, you can temporarily disable IPv6 on the requesting computer. This issue exists on the DNS servers and is common to all computers that use both IPv4 and IPv6.

I think this might be what is happening (I don't have any better ideas).

Does Windows try to look for IPv6 DNS (AAAA) records even when it has not been assigned a routable (not link-local) IPv6 address by the router? Or, does someone have a better idea about what is causing this problem?

3 Answers 3

5

Windows Vista and 7 will request AAAA lookups before A lookups if IPv6 is enabled (and the link local address isn't disabled). Windows by default will have a link local address and will therefor use IPv6 if available. Normally this isn't a problem as the AAAA lookup fails and it happily moves along to IPv4. Most applications however, will just skip straight to IPv4.

5
  • I just did a test with Wireshark where I flush the DNS cache then do ping "domain-name" on a Windows 7 machine that has a link-local IPv6 address and it did not do an AAAA request first. There must be something more subtle going on. How did you verify what you said here?
    – RyanTM
    Apr 7, 2011 at 21:32
  • If the machine has already established that IPv6 "doesn't work" then it wont try again, even if you flush the cache. I don't remember what other factors play in, there are probably others I'm not remembering.
    – Chris S
    Apr 8, 2011 at 0:32
  • 1
    One way to tell what it has established about IPv6 is to look at the status of the network connection. Mine reads "IP4v Connectivity: Internet, IPv6 Connectivity: No network access" Apr 14, 2011 at 12:49
  • I have not been able to verify that this happens, but I suspect that it does, so I'm going to accept this answer. We have disabled IPv6 on all of our machines to see if that helps. I will try to post an update here if this helps.
    – RyanTM
    Apr 14, 2011 at 17:57
  • Disabling IPv6 did not relieve this problem.
    – RyanTM
    Jul 13, 2011 at 18:11
0

What version of Windows? My understanding is that XP will never talk to a DNS server over IPv6. It will only do it over IPv4. I hear Vista and 7 don't have a problem.

It's been my experience that Windows will not ask for an AAAA record unless it has been assigned a IPv6 route. I have never seen any AAAA lookups in my DNS logs.

Do you really have a computer called "domain-name"? Or is that something you made up?

6
  • Hello. Sorry for not making those questions clear in my question. I've revised it to answer these questions. When you say DNS logs, what do you mean? Do you mean logs on your DNS server showing who looked things up?
    – RyanTM
    Apr 7, 2011 at 14:22
  • Re-reading your question, in short, you can't ping a computer by hostname. Correct?
    – Porch
    Apr 7, 2011 at 22:40
  • When this problem happens, yes. All other times, and on other computers not affected by the problem, no.
    – RyanTM
    Apr 7, 2011 at 23:07
  • So let me make sure I am understanding everything correctly. At some point in time, a single win 7 box can no longer ping any other host on the network, by hostname. It can still ping web sites like google. All the other hosts on the network work fine. Correct? Any other Windows 7 host on the network and do they have the same issue?
    – Porch
    Apr 8, 2011 at 6:19
  • Yes, but I'm not sure if the machine can't ping every host on the network, I think it's just can't ping the host named domain-name. I don't understand your last question.
    – RyanTM
    Apr 8, 2011 at 20:18
0

I'm not sure this article is the answer to your question exactly, but it may be a good reference when your talking about mixing IPv4 and IPv6 with DNS.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .