NSCD TTL и DNS 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
Вы можете видеть, что я настроил Positive-TTL на 24 часа.
У меня вопрос, какой TTL используется? Тот, который настроен здесь, или тот, который настроен для домена в DNS?
Я предполагаю, что короче TTL имеет место, но я могу ошибаться, не могли бы вы пролить свет на этот вопрос?
1 ответ
Важно отметить, что nscd
действует как кеш для системы распознавания в целом, не только для поиска DNS, но и для всех средств поиска имен.
В результате, nscd
исторически были проблемы, связанные с DNS TTL.
Версии glibc nscd
до 2004-09-15 неправильно обрабатывал DNS TTL.
Когда это было решено, glibc nscd
все еще имеет дело с DNS TTL, если приложение называется getaddrinfo
; если приложение называется устаревшим 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