Próbuję użyć nscd (demon bufora nazw) do lokalnego buforowania DNS, aby przestać używać Bind, aby to zrobić. Zacząłem to i wydaje się, że NTTP próbuje go użyć. Ale wszystko inne dla hostów wydaje się ignorować. np. jeśli wykonam 3 apache.org 3 razy, żaden z nich nie trafi do bufora. Przeglądam statystyki pamięci podręcznej, nscd -g
aby ustalić, czy została wykorzystana. Również podniosłem poziom dziennika debugowania, aby zobaczyć, czy mogę zobaczyć, jak uderza i zapytania nie trafiają nawet w nscd.
nsswitch.conf
# Begin /etc/nsswitch.conf
passwd: files
group: files
shadow: files
publickey: files
hosts: cache files dns
networks: files
protocols: files
services: files
ethers: files
rpc: files
netgroup: files
# End /etc/nsswitch.confenter code here
nscd.conf
#
# /etc/nscd.conf
#
# An example Name Service Cache config file. This file is needed by nscd.
#
# Legal entries are:
#
# logfile <file>
# debug-level <level>
# threads <initial #threads to use>
# max-threads <maximum #threads to use>
# server-user <user to run server as instead of root>
# server-user is ignored if nscd is started with -S parameters
# stat-user <user who is allowed to request statistics>
# reload-count unlimited|<number>
# paranoia <yes|no>
# restart-interval <time in seconds>
#
# enable-cache <service> <yes|no>
# positive-time-to-live <service> <time in seconds>
# negative-time-to-live <service> <time in seconds>
# suggested-size <service> <prime number>
# check-files <service> <yes|no>
# persistent <service> <yes|no>
# shared <service> <yes|no>
# max-db-size <service> <number bytes>
# auto-propagate <service> <yes|no>
#
# Currently supported cache names (services): passwd, group, hosts, services
#
logfile /var/log/nscd.log
threads 4
max-threads 32
server-user nobody
# stat-user somebody
debug-level 9
# reload-count 5
paranoia no
# restart-interval 3600
enable-cache passwd yes
positive-time-to-live passwd 600
negative-time-to-live passwd 20
suggested-size passwd 211
check-files passwd yes
persistent passwd yes
shared passwd yes
max-db-size passwd 33554432
auto-propagate passwd yes
enable-cache group yes
positive-time-to-live group 3600
negative-time-to-live group 60
suggested-size group 211
check-files group yes
persistent group yes
shared group yes
max-db-size group 33554432
auto-propagate group yes
enable-cache hosts yes
positive-time-to-live hosts 3600
negative-time-to-live hosts 20
suggested-size hosts 211
check-files hosts yes
persistent hosts yes
shared hosts yes
max-db-size hosts 33554432
enable-cache services yes
positive-time-to-live services 28800
negative-time-to-live services 20
suggested-size services 211
check-files services yes
persistent services yes
shared services yes
max-db-size services 33554432
resolv.conf
# Generated by dhcpcd from eth0
nameserver 127.0.0.1
domain westell.com
nameserver 192.168.1.1
nameserver 208.67.222.222
nameserver 208.67.220.220
na marginesie używam Arch Linux.
Uwaga: zostało to przeniesione dwukrotnie, nigdy nie dowiedziałem się, dlaczego aplikacje, z wyjątkiem dig, nie uderzają w pamięć podręczną nscd, przeglądarki, komunikatory, IRC, wszystko powinno być, ale nie
źródło
Odpowiedzi:
Powodem, dla którego brakuje Ci trafień w pamięci podręcznej, jest to, że wykopuje bezpośrednio DNS. Możesz spróbować sprawdzić, czy pamięć podręczna działa z
getent
poleceniem:Uruchomienie osobnego buforowania DNS jest dobrym pomysłem, ale jeśli to możliwe, należy rozważyć uruchomienie go na poziomie sieci. Jeśli każdy host buforuje dane osobno, nadal będzie uruchamiał wiele zapytań dla tych samych hostów. Pojedyncza pamięć podręczna rozwiązuje ten problem.
Sam Nscd jest demonem buforującym dla funkcji NSS. Dlatego fokus jest nieco inny niż natywne buforowanie serwerów nazw. Więc jeśli chcesz buforować serwer nazw, użyj czegoś innego niż nscd. Jeśli zamiast tego chcesz buforować rzeczy takie jak wspólne nazwy użytkowników i dane hosta poza normalnym systemem DNS, wybierz nscd.
Dla przypomnienia, polubiłem resolvera powerdns (pdns-resolver).
źródło
Brakuje konfiguracji hostów w nscd.conf. Podaję mój jako przykład:
To zepsuje niektóre rzeczy. Następujące informacje pochodzą z pakietu Debian:
źródło
Nie wiem zbyt wiele o nscd, z wyjątkiem tego, że tak często powodował problemy z wyszukiwaniem DNS, że zawsze go wyłączałem (lub przynajmniej część wyszukiwania przez hosta). Nscd pozwala ci ustawić wartości czasu do wygaśnięcia i wiem, że DNS spodziewa się „posiadać” te wartości i pozwolić wszystkim programom tłumaczącym je honorować. Możesz skończyć z dziwnymi wynikami, jeśli TTL w DNS nie będą honorowane. Radzę nie używać nscd do buforowania DNS. Wygląda na to, że masz już buforowany serwer nazw działający na twoim lokalnym urządzeniu, więc nie musisz buforować dwukrotnie wyszukiwań DNS.
źródło
nscd jest naprawdę zawodny na wszystko, nie tylko na DNS. Warto go unikać, chyba że z jakiegoś powodu desperacko go potrzebujesz. Powinieneś użyć specjalnie zaprojektowanego demona buforującego DNS, jeśli chcesz buforować DNS lokalnie (co jest dobrym pomysłem!).
Dwa z moich ulubionych to dnsmasq i dnscache od djbdns .
źródło
Jeśli w Hell jest buforowanie DNS, zapewnia je nscd. Nie rób Posługiwać się. To.
Po prostu inaczej: pdnsd jest naprawdę bardzo dobrym zamiennikiem. Lub unscd (domyślnie używany przynajmniej w openSUSE).
źródło
pdnsd
jest wyłączony. Może jest to dobre połączenie zamiast: members.home.nl/parombouts/pdnsdChciałbym dodać, że po udostępnieniu włączone statystyki nie będą poprawnie odzwierciedlać:
współdzieleni gospodarze tak
http://prefetch.net/blog/index.php/2006/02/08/viewing-name-service-cache-statistics/
Nie widziałem, żeby ktokolwiek o tym wspominał i zajęło mi sporo czasu, aby dowiedzieć się, dlaczego mój współczynnik trafień wciąż wyświetla się jako 0%
źródło