6

I'm experiencing some interesting network issues, which I can reproduce and work around, although not explain - therefore I ask you! :)

I have a setup with two servers, both located in Google's network:

  • Server A (Google App Engine): a public-facing web server, serving the website
  • Server B (Google Compute Engine): scraping server, taking HTML images of Server A

A few days ago I started experiencing many timeout errors on requests from Server B to Server A. In most cases it could not connect to Server A, even though Server A is fully available from any other IP address.

I ssh'd into Server B and have these findings:

  • I can do a curl www.ServerA.dk approx. 3 times within a few seconds, and then the connection dies, and I have to wait approx. 20 seconds, before I can do more curls

  • I can with no problems curl any other URL as many times as I want

  • The ping time to Server A is ridiculously low (< 1 ms)

I can solve the problem by:

  • Changing the DNS in /etc/resolv.conf to Googles Public DNS

Or:

  • By calling Server A with the default Google URL (ServerA.appspot.com) instead of my Danish domain www.ServerA.dk

I have a feeling this is a DNS issue on Google's behalf or my Danish DNS provider. Do you have any clue?

Actual domains

  • www.kobstaden.dk (Custom domain)
  • kobstaden-hrd.appspot.com (Default Google domain)

Some (random) DNS info:

From my DNS provider i have setup:

  • C-Name for www.kobstaden.dk points to ghs.google.com

Cheers!

sqren
  • 249
  • 1
  • 13
  • Does Server A do hostname lookups? Does it have separate virtual hosts when called with its Danish domain name rather than its Google URL? – Jenny D Feb 26 '13 at 11:46
  • DNS on Server A is managed by Google. I guess they are different virtual hosts, but can't tell for sure. If i do a ping on ServerA.dk it resolves to 74.125.143.121 If I do a ping on ServerA.appspot.com (address assigned by Google) it resolves to 74.125.143.141 – sqren Feb 26 '13 at 12:16
  • I have updated the question with some more DNS info – sqren Feb 26 '13 at 12:23
  • 1
    What happens if you change your CNAME for www.ServerA.dk to point to ServerA.appspot.com instead of ghs.google.com? – MxToolbox Mar 22 '13 at 21:30
  • It's hard to answer to not general DNS questions without true data. If I have true name of your servers and true name of your original DNS servers then I can ask this servers about you domain and see reply (you use DK name servers from Goole server B?). But with "sample name" it's just guessing :( Also you tell us that you can call "default Google URL", but next you give two different IPs for that "same server" - could you explain this a bit more? – dsznajder Mar 24 '13 at 09:23
  • @dsznajder: I've added the actual domains, so you don't have to "guess" anymore :) Your help is appreciated! – sqren Mar 24 '13 at 10:39
  • @sqren Now I can check (thanks), but still not have clue :( What was original name servers? Some private/internal for Google app engine? They resolve names to same IPs? – dsznajder Mar 24 '13 at 15:43

1 Answers1

1

Here's a best-guess answer to this. Many large DNS providers will have their DNS servers multihomed - i.e. the same IP address will send you to the server that's closest to you (in terms of network topology, not geography).

If one of the servers responding to the multihomed IP is malconfigured, then any request from a client topologically close to it may get a wrong answer or no answer. So by changing DNS servers you may get one that's topologically closer to you, and by using a different domain name you will also get to a different server which may respond better.

Jenny D
  • 27,780
  • 21
  • 75
  • 114