私は、ホストのローカルキャッシュのためにNSCDと連携し、ローカルDNSサーバーへのトラフィックを減らし、可能な場合はより高速なDNS応答を返すように、社内の多くのサーバーを構成しました。
私はnscd
をそのように構成し、ホストのキャッシュにのみ使用しています。
logfile /var/log/nscd.log
debug-level 9
server-user nscd
paranoia no
enable-cache hosts yes
#positive-time-to-live hosts 3600
positive-time-to-live hosts 86400
negative-time-to-live hosts 20
suggested-size hosts 211
check-files hosts yes
persistent hosts yes
shared hosts yes
#max-db-size hosts 67108864
max-db-size hosts 536870912
ポジティブTTLを24時間に設定したことがわかります。
私の質問は、どちらのTTLが使用されているか?ここで構成されているものか、DNSのドメインごとに構成されているものか?」です。
私の推測では、短いTTLが発生しますが、私は間違っている可能性があります。この問題に光を当てていただけますか?
nscd
は、特にDNSルックアップではなく、名前ルックアップのすべての手段に対して、一般にリゾルバーシステムのキャッシュとして機能することに注意することが重要です。
この結果、nscd
はこれまでDNSTTLの処理に問題がありました。
2004-09-15より前のglibc nscd
のバージョンはDNSTTLを適切に処理しませんでした。
それが解決されたとき、glibc nscd
はまだDNSTTLのみを処理していました アプリケーションがgetaddrinfo
を呼び出した場合 ;廃止されたgethostbyname
関数と呼ばれるアプリケーションの場合、DNS TTL値は引き続き無視されました。
私の理解では、glibcメンテナ 最終的にglibc 2.8で陥没 (2008)し、すべての名前ルックアップメソッドで動作を一貫させました。現在のバージョンでは、ルックアップの開始方法に関係なく、DNSTTLを使用する必要があります。
参照:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=335476
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=669304
https://sourceware.org/ml/libc-alpha/2008-04/msg00050.html
https://sourceware.org/bugzilla/show_bug.cgi?id=4428
http://udrepper.livejournal.com/16362.html