Google 计算引擎上的 DNS 问题

sqr*_*ren 6 networking domain-name-system ubuntu google curl

我遇到了一些有趣的网络问题,我可以重现和解决这些问题,尽管没有解释 - 因此我问你!:)

我有两台服务器的设置,都位于 Google 的网络中:

  • 服务器 A(Google App Engine):面向公众的 Web 服务器,为网站提供服务
  • 服务器 B (Google Compute Engine):抓取服务器,获取服务器 A 的 HTML 图像

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

我 SSH 进入服务器 B 并有以下发现:

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

  • 我可以随心所欲地多次卷曲任何其他 URL

  • 到服务器 A 的 ping 时间低得离谱(< 1 毫秒)

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

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

或者:

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

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

实际域

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

一些(随机)DNS 信息:

我从我的 DNS 提供商那里设置了:

  • www.kobstaden.dk 的 C 名称指向 ghs.google.com

干杯!

Jen*_*y D 1

这是对此的最佳猜测答案。许多大型 DNS 提供商的 DNS 服务器都是多宿主的 - 即相同的 IP 地址会将您发送到距离您最近的服务器(就网络拓扑而言,而不是地理位置而言)。

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