web-dev-qa-db-ja.com

Google ComputeEngineでのDNSの問題

説明はしていませんが、再現して回避できる興味深いネットワークの問題が発生しています。そのため、お願いします。 :)

2台のサーバーをセットアップしました。どちらもGoogleのネットワークにあります。

  • サーバーA(Google App Engine):ウェブサイトにサービスを提供する公開ウェブサーバー
  • サーバーB(Google Compute Engine):サーバーをスクレイピングし、サーバーAのHTML画像を取得します

数日前、サーバーBからサーバーAへの要求で多くのタイムアウトエラーが発生し始めました。サーバーAが他のIPアドレスから完全に利用可能であっても、ほとんどの場合、サーバーAに接続できませんでした。

サーバーBにSSHで接続し、次の結果が得られました。

  • 私は約curl www.ServerA.dkを行うことができます。数秒以内に3回、その後接続が切断され、約1時間待たなければなりません。 20秒、もっとカールできるようになる前に

  • 他のURLを何回でも問題なくカールできます

  • サーバーAへのping時間は途方もなく短い(<1ミリ秒)

私は次の方法で問題を解決できます:

  • /etc/resolv.confのDNSをGooglesPublicDNSに変更する

または:

  • デンマークのドメインwww.ServerA.dkではなく、デフォルトのGoogle URL(ServerA.appspot.com)を使用してサーバーAを呼び出す

これはGoogleまたは私のデンマークのDNSプロバイダーに代わってDNSの問題であると感じています。手がかりはありますか?

実際のドメイン

  • www.kobstaden.dk(カスタムドメイン)
  • kobstaden-hrd.appspot.com(デフォルトのGoogleドメイン)

いくつかの(ランダムな)DNS情報:

私のDNSプロバイダーから私はセットアップをしました:

  • Www.kobstaden.dkのC名はghs.google.comを指します

乾杯!

6
sqren

これに対する最良の答えは次のとおりです。多くの大規模なDNSプロバイダーは、DNSサーバーをマルチホーム化します。つまり、同じIPアドレスを使用すると、(地理ではなくネットワークトポロジの観点から)最も近いサーバーに送信されます。

マルチホームIPに応答するサーバーの1つが正しく構成されていない場合、トポロジ的にそれに近いクライアントからの要求は、間違った応答を受け取るか、応答がない可能性があります。したがって、DNSサーバーを変更することで、トポロジ的に近いサーバーを取得できます。また、別のドメイン名を使用すると、応答が向上する可能性のある別のサーバーにアクセスできます。

1
Jenny D