tags:

views:

780

answers:

4

Our user interface is communicating with another application on a different machine, often connecting using domain names.

On our network, when IPv6 is installed, DNS name resolution works great, all machines can be pinged and contacted fine.

When IPv6 is uninstalled, pinging the same DNS names returns an IP address on some distant subnet (24.28.193.9; local subnet is 192.168.1.1); our application is then unable to communicate. When IPv6 is reinstalled, the DNS resolution corrects itself.

Even without IPv6 when ping is not working, I can still browse other machines using Windows Explorer by entering \\MACHINE_NAME\. I'm not sure why the name resolution seems to work here. We are working in the Windows XP SP2 environment.

The IPs of the machines can be pinged successfully. It is only the DNS names that do not resolve properly.

I looked for the address of our DNS server. All of our computers are pointing at the network gateway, which is a wireless router. The router has the same DNS server address listed when IPv6 is installed as it does when it isn't installed.

The strangest thing is that I just discovered that it does not matter what DNS name I ping. All pings to DNS names return the same address: "24.28.193.9".

I tried flushing the DNS Resolver Cache and registering DNS on the target machine and the source machine. All to no avail. The only DNS name that I can ping is the name of the current machine.

Any thoughts as to why our software can't communicate without IPv6 installed?

+3  A: 

You've got multiple things going on here

  1. DNS Name resolution
  2. Windows Name resolution
  3. IP-IP ICMP communication

You've written your question as if there's a problem with #3, but everything you describe points to the problem actually being with #1. If you take resolution out of the question, can you ping the correct IPs with our without IPv6 installed?

It sounds like maybe you have an IPv6 name server installed that has correct information and the IPv4 name server is incorrect? Are you receiving name servers via DHCP or hard coding? What are the IPs of the name servers you are using when IPv6 is installed and when it isn't?

jj33
First thing to do when debugging is to isolate problems and get clear conditions where the problem is reproducible...
Nowhere man
A: 

Yes, the IPs of the machines can be pinged successfully. It is only the DNS names that do not resolve properly. I will look into your other suggestions.

Moderator: this is not an answer... it can be deleted.

A: 

OK, I've done a little more research now.

I looked for the address of our DNS server. All of our computers are pointing at the network gateway, which is a wireless router. The router has the same DNS server address listed when IPv6 is installed as it does when it isn't installed.

The strangest thing is that I just discovered that it does not matter what DNS name I ping. All pings to DNS names return the same address: "24.28.193.9".

I tried flushing the DNS Resolver Cache and registering DNS on the target machine and the source machine. All to no avail. The only DNS name that I can ping is the name of the current machine.

Any other suggestions? Thanks so much for your help.

+1  A: 

I know this is a late answer, but in case someone else has the same problem, the key is the IP address, "24.28.193.9". A quick Google search reveals it seems to be related to your ISP completely breaking the DNS protocol by returning a fixed IP address for all non-existent domain names (the correct answer would be NXDOMAIN). Your network gateway is most probably just forwarding your queries to your ISP's name servers.

Your systems are relying on the correct operation of the DNS protocol. They are expecting a NXDOMAIN answer before querying the name via other methods (most probably NetBIOS name resolution). Since the DNS server is completely broken and returning an incorrect answer, the correct address is never looked up.

The reason installing or uninstalling IPv6 changes the situation is most probably because something related to it is changing the name resolution order (to look up using other methods before trying DNS). So, a workaround would be to change the name resolution order yourself.

The real fix would be to either change to a better ISP (one which does not break established protocols) or run your own DNS server (which is what I started doing on all systems I administer ever since VeriSign pulled a similar stunt; theirs was even worse in that changing ISPs made no difference at all).

References:

CesarB
And, unfortunately, even running your own DNS server might not be enough anymore: "Comcast Intercepts and Redirects Port 53 Traffic", http://tech.slashdot.org/article.pl?sid=09/06/09/1731238
CesarB