1. ホーム
  2. linux

LinuxでのDNSキャッシング

2023-10-16 05:25:57

質問

私は DNS キャッシュについて混乱しています。私は小さなフォワード プロキシ サーバーを書いていて、Linux システム上で OS DNS キャッシュを使用したいと思っています。

私が正しく理解しているならば、ブラウザレベルで DNS キャッシュがあります。そして、OS レベルでの DNS キャッシュがあります (Windows にはあります。Linux ディストリビューションがデフォルトで持っているかどうかはわかりません)。

では、ブラウザ/プロキシ サーバーはどのように OS DNS キャッシングを使用するのでしょうか。私は、DNS キャッシュをプロキシ内で独自に行う代わりに、Linux に頼ることができるかどうかを見つけようとしています。

ありがとうございます。

どのように解決するのですか?

Linux (そしておそらくほとんどの Unix) では、OS レベルの DNS キャッシングは nscd がインストールされ、実行されていない限り、OS レベルの DNS キャッシュはありません。それでも、少なくとも Debian では、nscd の DNS キャッシュ機能はデフォルトで無効になっています。 が壊れているためです。 . 実際、あなたの Linux システムでは、OS レベルの DNS キャッシュが行われていない可能性が非常に高いです。

アプリケーションに独自のキャッシュを実装することができます (たとえば、Squid の場合は diegows のコメント) を実装することもできますが、私はそれを勧めません。多くの作業が必要で、間違えやすく (nscd は間違っていました!!)、専用の DNS キャッシュほど簡単に調整できないでしょうし、アプリケーションの外にすでに存在する機能を重複させることになるからです。

ソフトウェアを使用するエンド ユーザーが、DNS クエリの負荷が問題になるほど大きい、または外部 DNS サーバーへの RTT が問題になるほど長いために DNS キャッシュを必要とする場合、次のようなキャッシュ DNS サーバーをインストールすることができます。 バインド解除 などのキャッシュ DNS サーバーをアプリケーションと同じマシンにインストールし、応答をキャッシュし、失敗した応答を通常の DNS リゾルバに転送するよう設定します。