
毎年、インターネットの速度-ラストマイルとトランクチャネルの両方が高速化しています。 不変のものは1つだけです-遅延は物理的な制限にかかっています。光ファイバーの光速度は1秒あたり約20万kmであり、したがって、大西洋をまたがるサーバーから予見可能な将来に〜150ms以内に応答を得ることができません(もちろん、光ファイバーのような喜びもあります)空芯または無線リレーですが、これは単なる人間にはほとんどアクセスできません)。
たとえば、ロシアから米国にあるWebサイト(NSサーバーが存在する可能性が高い)を開こうとして、プロバイダーのDNSキャッシュにドメインが見つからなかった場合、ギガビットインターネット上でも、おそらく1秒でも長い間待たなければなりません:私たちが実際にDNSリクエストを送受信するまで、海を渡ってNSドメインサーバーの名前を受け取ります。
数年前、GoogleはパブリックDNSサーバーを開始し、それらへの移行を扇動するために、NameBench
ユーティリティを開発しました。これ
は 、サーフィン履歴でDNSテストを
実行し、Google DNSがプロバイダーのDNSサーバーよりも高速であることを示します。
しかし、Google Public DNSよりも高速な独自のDNSサーバーを作成することができました。この簡単なメモでは、結果を共有したいと思います。
PDNSD
pdnsdは、キャッシングDNSプロキシです。 DNSクエリの通常のキャッシング(最小TTLを厳密に設定する機能-非常に悪いインターネット上で必要になる可能性がある)に加えて、複数の「親」DNSサーバーに同時に要求を送信し、クライアントに最初の応答を返すことができます。
並列ポーリングを含めることで、速度の主な利点が得られます 。 いずれかのプロバイダーのキャッシュで結果を見つけると、結果を非常にすばやく取得し、最初のプロバイダーがキャッシュに応答を持たない場合、完全で遅い解決を待たない。
Ubuntuにインストールされます-ありふれたapt-get。
構成内のいくつかのポイント
global { perm_cache=10240;
原則として、キャッシングはそれほど積極的ではありません(たとえば、min_ttl = 1m)が、運用中に特別な問題はありませんでした。 問題が発生した場合-必要に応じて、キャッシュから1つのエントリを消去できます。
sudo pdnsd-ctl record 3.14.by delete
または一度に:
sudo pdnsd-ctl empty-cache
NameBenchのテスト結果

リクエストの50%については10ミリ秒以内に回答が得られ、Google Public DNSよりも85%高速であることがわかります。その場合、結果は自然にGoogleと一致します。
テスト結果によると、NameBenchは私たちに喜んで知らせてくれます。
8.8.8.8 SYS-192.167.0.98の遅いレプリカ[192.167.0.98]
8.8.4.4 SYS-192.167.0.98の遅いレプリカ[192.167.0.98]
したがって、並列クエリを備えたスマートキャッシングDNSプロキシ-100メガビットのインターネットでも高速化できます。 また、遅延とパケット損失が大きい低速(無線)リンクの場合、違いは天国と地球の間にあります。