Google计算引擎上的DNS问题

我正在经历一些有趣的networking问题,我可以复制和解决,虽然没有解释 – 所以我问你! 🙂

我有一个安装在两个服务器,都位于谷歌的networking:

  • 服务器A(Google App Engine):面向公众的Web服务器,为该网站提供服务
  • 服务器B(谷歌计算引擎):抓取服务器,服务器A的HTML图像

几天前,我开始在服务器B到服务器A的请求上遇到很多超时错误。在大多数情况下,它无法连接到服务器A,即使服务器A可以从任何其他IP地址完全访问。

我ssh进入服务器B,并有这些发现:

  • 我可以做一个curl www.ServerA.dk约。 在几秒钟内3次,然后连接死亡,我必须等待约。 20秒之前,我可以做更多的卷发

  • 我可以没有问题curl任何其他的URL多​​次,我想要的

  • 到服务器A的ping时间是可笑的低(<1毫秒)

我可以通过以下方式解决问题:

  • /etc/resolv.conf的DNS更改为Google公有DNS

要么:

  • 通过使用默认的Google URL(ServerA.appspot.com)而不是我的丹麦域名www.ServerA.dk来呼叫服务器A.

我有一种感觉,这是一个代表谷歌或我的丹麦DNS提供商的DNS问题。 你有什么线索吗?

实际的域名

  • www.kobstaden.dk(自定义域名)
  • kobstaden-hrd.appspot.com(默认Google网域)

一些(随机)DNS信息:

从我的DNS提供商我已经设置:

  • www.kobstaden.dk的C-Name指向ghs.google.com

干杯!

这是一个最好的猜测答案。 许多大的DNS提供商将把他们的DNS服务器放在一个地方 – 也就是说,相同的IP地址将把您发送到离您最近的服务器(networking拓扑结构而不是地理位置)。

如果其中一台响应多宿主IP的服务器configuration不正确,则来自客户端的任何请求可能会得到错误答案或无答案。 因此,通过更改DNS服务器,您可能会得到一个拓扑更接近您的域名服务器,并且通过使用不同的域名,您还可以获得更好的响应。