J'essaie d'utiliser nscd (Nameservices Cache Daemon) pour mettre en cache DNS localement afin que je puisse arrêter d'utiliser Bind pour le faire. Je l'ai commencé et ntpd semble essayer de l'utiliser. Mais tout le reste pour les hôtes semble l'ignorer. Par exemple, si je creuse apache.org 3 fois, aucun d'entre eux n'atteindra le cache. J'affiche les statistiques du cache en utilisant nscd -g
pour déterminer si elles ont été utilisées. J'ai également augmenté le niveau du journal de débogage pour voir si je peux le voir frapper et les requêtes ne frappent même pas 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
comme une sorte de note latérale j'utilise Arch Linux.
note: cela a été déplacé deux fois, je n'ai jamais compris pourquoi les applications, à l'exception de dig, ne frappent pas le cache nscd, les navigateurs, la messagerie instantanée, l'IRC, tout aurait dû l'être, mais ils ne l'ont pas fait
la source
Réponses:
La raison pour laquelle vous manquez les hits de cache est que dig interroge directement le DNS. Vous pouvez essayer de voir si le cache fonctionne avec la
getent
commande:L'exécution d'un DNS de mise en cache distinct est une bonne idée, mais vous devriez envisager de l'exécuter au niveau du réseau si possible. Si chaque hôte met en cache les données séparément, il exécutera toujours plusieurs requêtes pour les mêmes hôtes. Le cache unique contourne ce problème.
Nscd lui-même est un démon de mise en cache pour les fonctions NSS. Le focus est donc un peu différent de celui des serveurs de noms de mise en cache native. Donc, si vous voulez juste un serveur de noms en cache, utilisez autre chose que nscd. Si à la place vous souhaitez mettre en cache des choses comme les noms d'utilisateur partagés et les données d'hôtes en dehors du système DNS normal, optez pour nscd.
Et pour mémoire, je suis devenu très friand du résolveur powerdns (pdns-resolver).
la source
Vous manquez la configuration des hôtes dans nscd.conf. Je poste le mien à titre d'exemple:
Cela cassera certaines choses. Les informations suivantes proviennent du paquet Debian:
la source
Je ne sais pas grand-chose sur nscd, sauf qu'il a si souvent causé des problèmes avec les recherches DNS que je l'ai toujours désactivé (ou du moins la partie de recherche d'hôte). Nscd vous permet de définir les valeurs de durée de vie et je sais que DNS s'attend à "posséder" ces valeurs et à ce que tous les résolveurs les respectent. Vous pouvez vous retrouver avec des résultats étranges si les TTL dans DNS ne sont pas respectés. Ma recommandation est de ne pas utiliser nscd pour la mise en cache DNS. Il semble que vous ayez déjà un serveur de noms en cache en cours d'exécution sur votre boîtier local, donc pas besoin de mettre en cache les recherches DNS deux fois.
la source
nscd n'est vraiment pas fiable pour tout, pas seulement pour DNS. Cela vaut la peine d'être évité, sauf si vous en avez désespérément besoin pour une raison quelconque. Vous devez utiliser un démon de mise en cache DNS spécialement conçu si vous souhaitez mettre en cache DNS localement (ce qui est une bonne idée!).
Deux de mes favoris sont dnsmasq et dnscache de djbdns .
la source
S'il y a une mise en cache DNS en enfer, elle est fournie par nscd. Non. Utilisation. Il.
Juste pour être différent: pdnsd est en fait un très bon remplacement. Ou unscd (utilisé par défaut au moins dans openSUSE).
la source
pdnsd
est en baisse. Peut-être cela est un bon lien à la place: members.home.nl/parombouts/pdnsdJe voudrais ajouter que lorsque vous avez partagé activé vos statistiques ne refléteront pas correctement:
hôtes partagés oui
http://prefetch.net/blog/index.php/2006/02/08/viewing-name-service-cache-statistics/
Je n'ai vu personne d'autre mentionner cela et il m'a fallu un certain temps pour comprendre pourquoi mon taux de réussite continuait d'afficher 0%
la source