NSCD TTL和DNS TTL,哪个更强?

Ita*_*not 1 domain-name-system ttl

我已经在我的公司中配置了许多服务器来与 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
Run Code Online (Sandbox Code Playgroud)

您可以看到我已将 Positive-TTL 配置为 24 小时。

我的问题是,使用的是哪个 TTL?是在此处配置的还是在 DNS 中按域配置的?

我的猜测是更短的 TTL 发生了,但我可能是错的,你能解释一下这个问题吗?

Håk*_*ist 5

重要的是要注意,它通常nscd充当解析器系统的缓存,不是专门用于 DNS 查找,而是用于名称查找的所有方式。
因此,nscd在处理 DNS TTL 时一直存在问题。

2004-09-15 之前glibcnscd版本没有正确处理 DNS TTL。
解决这个问题后,glibcnscd仍然只在应用程序调用时getaddrinfo处理 DNS TTL ;如果应用程序调用了过时的gethostbyname函数,则 DNS TTL 值仍会被忽略。

据我所知,glibc 维护者最终屈服于 glibc 2.8 (2008) 并使所有名称查找方法的行为保持一致。无论查找是如何启动的,当前版本都应使用 DNS TTL。

另请参见:
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