web-dev-qa-db-ja.com

NSCD TTLおよびDNSTTL、どちらが強いですか?

私は、ホストのローカルキャッシュのために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が発生しますが、私は間違っている可能性があります。この問題に光を当てていただけますか?

1
Itai Ganot

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

5