DNS リゾルバの改善?

DNS リゾルバの改善?

最近、DNS 解決の速度を上げるはずの /etc/resolv.conf の次の構成に遭遇しました。

nameserver 1.1.1.1
nameserver 2.2.2.2
nameserver 3.3.3.3
option rotate 
option timeout:1

構成で 3 つの DNS サーバーを使用する以外に、当然ながら「オプション」フラグを念頭に置いています (通常は 2 つだけが使用されます)。最初のフラグは、3 つの DNS サーバーすべてでローテーション/ラウンドロビンを行うもので、最後のフラグはルックアップ タイムアウトを 1 秒に設定するものです (デフォルトは 5 秒のようです)。皆さんの中にこの構成を使用している方がいるかどうか、また改善が見られるかどうか知りたいです。改善にはまったく役立たないと言う人もいますが、その理由がよくわかりません。

答え1

これは、最初のネームサーバー自体に障害が発生した場合を除いて、すべてのケースで状況を悪化させます。これがどのように状況を悪化させるかの例を以下に示します。

たとえば、プライマリ ネーム サーバーが遅いか壊れているサイトを解決しようとしているとします。通常、このようなことが起こります。

  1. 最初のネームサーバーを試します。

  2. サイトのプライマリネームサーバーを試行します。

  3. プライマリがタイムアウトしました。

  4. 最初のネームサーバーがセカンダリネームサーバーを試します。

  5. 応答が得られます。

  6. 応答が返ってきます。

しかし、変更すると次のようになります:

  1. 最初の namserver を試します。

  2. 最初のネームサーバーは、サイトのプライマリネームサーバーを試行します。

  3. タイムアウトです。

  4. 2 番目のネームサーバーを試します。

  5. 2 番目のネームサーバーは、サイトのプライマリ ネームサーバーを試行します。

  6. 最初のネームサーバーはサイトのセカンダリネームサーバーを試行し、応答を取得します。残念ながら、すでにタイムアウトになっています。

  7. 2 番目のネームサーバーでタイムアウトが発生します。

  8. 3 番目のネームサーバーを試します。

  9. 3 番目のネームサーバーは、サイトのプライマリ ネームサーバーを試行します。

  10. 2 番目のネームサーバーに回答がありますが、残念ながらすでにタイムアウトになっています。

  11. 3 番目のネームサーバーでタイムアウトになります。

  12. 3 番目のネームサーバーに回答がありますが、もうリッスンしていません。

タイムアウトです方法早すぎると、ネームサーバーが回答を得る直前に諦めてしまい、同じプロセスを繰り返す可能性が高くなります。良い面としては、すべてのネームサーバーのキャッシュに結果が保存されるようになります。

答え2

DNS パフォーマンスを向上させる私の方法:

  1. 走る名前ベンチあなたにとって最速の DNS プロバイダーを見つけましょう。
  2. 終わり。

私の知る限り、DNS クエリの速度を向上させる魔法のようなローカル構成は存在しません。しかし、私はこのトピックの専門家ではありません。

答え3

私の記憶が正しければ、応答がない場合、最初に試した DNS サーバーがタイムアウトして、リスト内の次のサーバーを試すまでに、デフォルトでは 2 秒かかります。したがって、最後のオプションにより、リスト内の次のサーバーを試す前にタイムアウトが 1 秒に短縮されるようです。

最初に試行する DNS サーバーをローテーションする他のオプションは、すべての DNS サーバーが互いに同じ速度で、要求の負荷分散を試みている場合にのみメリットがあります。

私はnamebenchを使用します。オリバーは言ったそれぞれの速度を調べて、速度順にリストに入れ、速度が同じでない限り、回転オプションを削除します。

関連情報