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 发生了,但我可能是错的,你能解释一下这个问题吗?
重要的是要注意,它通常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