La mise en cache DNS sous linux
Je suis confus au sujet de la mise en cache DNS. Je suis en train d'écrire un petit pas en avant du serveur proxy et que vous voulez utiliser OS cache DNS sur un système Linux.
Si je comprends bien, il y a ensuite la mise en cache DNS au niveau du navigateur. Il y a ensuite la mise en cache DNS au niveau de l'OS (Windows a il. Je ne suis pas sûr si les distributions Linux ont par défaut).
Alors, comment un navigateur/proxy_server utiliser OS de mise en cache DNS? J'essaie de savoir si je peux compter sur Linux pour la mise en cache DNS au lieu de le faire sur mon propre à l'intérieur de mon proxy.
Grâce
- s'appuyer sur l'OS de la mise en cache.
- Si vous avez un proxy, le cache DNS est dans le proxy. Squid par exemple, dispose de son propre cache DNS et de résolution.
InformationsquelleAutor agent.smith | 2012-06-13
Vous devez vous connecter pour publier un commentaire.
Sur Linux (et probablement la plupart des systèmes Unix), il n'y a pas d'OS au niveau de la mise en cache DNS, sauf nscd est installé et en cours d'exécution. Même alors, la fonctionnalité de mise en cache DNS de nscd est désactivé par défaut, au moins dans Debian car c'est cassé. La conséquence pratique est que votre système linux très très probablement ne pas faire n'importe quel OS au niveau de la mise en cache DNS.
Vous pouvez implémenter votre propre cache dans votre application (comme ils l'ont fait pour Squid, selon diegowss'commentaire), mais je vous recommande contre elle. C'est beaucoup de travail, il est facile de se tromper (nscd eu tort!!!), il ne sera probablement pas aussi facilement accordable un cache DNS, et il duplique la fonctionnalité qui existe déjà en dehors de votre application.
Si un utilisateur final à l'aide de votre logiciel doit avoir la mise en cache DNS parce que la requête DNS de charge est assez grand pour un problème ou un RTT pour le serveur DNS externe est assez long pour être un problème, ils peuvent installer un serveur de cache DNS comme Unbound sur la même machine que votre application, configuré en cache des réponses et de l'avant manque à la régulière des résolveurs DNS.
getaddrinfo()
et coll.) et met en œuvre ses propres requêtes DNS directement. Qui s'applique à mac os X sans condition, et elle s'applique à Linux si par hasard nscd est en cours d'exécution et active (ne peux pas parler pour MS Windows). Si une application implémente son propre cache, puis elle s'applique en outre à tout niveau de l'OS de cache qui peuvent ou peuvent ne pas être présents (encore une fois, à moins que l'application contourne le système d'exploitation et directement des requêtes).On Linux (and probably most Unix), there is no OS-level DNS caching unless nscd is installed and running.
? J'ai googlé autour avec pas de chance...resolv
sous-répertoire de la glibc code source, tout y est. Ce n'est pas une réponse précise, je me rends compte, mais il revient au fait qu'il n'y a pas de code qui implémente un cache, et dans tous les cas vous pouvez le voir si vous le trace qu'il ne fait pas de l'utilisation d'un fichier ou d'un segment de mémoire partagée ou de tout autre genre d'endroit où ce cache pourrait potentiellement être stockées.systemd
il y a un service de cache DNS, il peut être activé avecsystemctl enable systemd-resolved
.Voici deux autres logiciels qui peuvent être utilisés pour la mise en cache DNS sous Linux:
Après la configuration du logiciel pour transfert DNS et la mise en cache, vous devez définir le système de résolution DNS à l'adresse 127.0.0.1 dans /etc/resolv.conf.
Si votre système est NetworkManager vous pouvez essayer d'utiliser le
dns=dnsmasq
option dans/etc/NetworkManager/NetworkManager.conf
ou vous pouvez modifier vos paramètres de connexion Automatique (Adresse Uniquement), puis utiliser un script dans le/etc/NetworkManager/dispatcher.d
répertoire pour obtenir le DHCP serveur de noms de domaine, le transfert DNS server dans votre cache DNS logiciel, puis déclencher une configuration recharger.systemd
est un plus, il peut être activé avecsystemctl enable systemd-resolved
.Vous avez ici un exemple de La mise en Cache DNS dans Debian à l'aide de dnsmasq.
Résumé de la Configuration:
/etc/default/dnsmasq
/etc/resolv.dnsmasq
/etc/resolv.conf
Il suffit de redémarrer dnsmasq.
Test de référence à l'aide de DNS 1.1.1.1:
Test de référence à l'aide de votre cache DNS:
Firefox contient un cache dns.
Pour désactiver le cache DNS:
Lorsqu'il est désactivé, Firefox va utiliser le cache DNS fournis par le système d'exploitation.