GNU/Linux >> Tutoriels Linux >  >> Linux

Mise en cache DNS sous Linux

Voici deux autres packages logiciels pouvant être utilisés pour la mise en cache DNS sous Linux :

  • dnsmasq
  • lier

Après avoir configuré le logiciel pour le transfert et la mise en cache DNS, vous définissez ensuite le résolveur DNS du système sur 127.0.0.1 dans /etc/resolv.conf.

Si votre système utilise NetworkManager, vous pouvez soit essayer d'utiliser le dns=dnsmasq option en /etc/NetworkManager/NetworkManager.conf ou vous pouvez modifier vos paramètres de connexion sur Automatique (adresse uniquement) puis utiliser un script dans le /etc/NetworkManager/dispatcher.d répertoire pour obtenir le serveur de noms DHCP, définissez-le comme serveur de transfert DNS dans votre logiciel de cache DNS, puis déclenchez un rechargement de la configuration.


Sous Linux (et probablement la plupart des Unix), il n'y a pas de cache DNS au niveau du système d'exploitation à moins que nscd soit installé et en cours d'exécution. Même dans ce cas, la fonctionnalité de mise en cache DNS de nscd est désactivée par défaut au moins dans Debian car elle est cassée. Le résultat pratique est que votre système Linux n'effectue très probablement pas de mise en cache DNS au niveau du système d'exploitation.

Vous pouvez implémenter votre propre cache dans votre application (comme ils l'ont fait pour Squid, selon le commentaire de diegows), mais je le déconseille. C'est beaucoup de travail, il est facile de se tromper (nscd s'est trompé !!!), il ne sera probablement pas aussi facile à régler qu'un cache DNS dédié, et il duplique des fonctionnalités qui existent déjà en dehors de votre application.

Si un utilisateur final utilisant votre logiciel a besoin d'une mise en cache DNS parce que la charge de la requête DNS est suffisamment importante pour poser un problème ou que le RTT vers le serveur DNS externe est suffisamment long pour poser un problème, il peut installer un serveur DNS de mise en cache tel que Unbound sur la même machine que votre application, configuré pour mettre en cache les réponses et transmettre les échecs aux résolveurs DNS habituels.


Vous avez ici un exemple de mise en cache DNS dans Debian utilisant dnsmasq :Mise en cache DNS locale, article sur ManageaCloud.

Résumé de la configuration :

/etc/default/dnsmasq

# Ensure you add this line
DNSMASQ_OPTS="-r /etc/resolv.dnsmasq"

/etc/resolv.dnsmasq

# Your preferred servers
nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 2001:4860:4860::8888

/etc/resolv.conf

nameserver 127.0.0.1

Ensuite, redémarrez dnsmasq.

Test de performance avec DNS 1.1.1.1 :

for i in {1..100}; do time dig slashdot.org @1.1.1.1; done 2>&1 | grep ^real | sed -e s/.*m// | awk '{sum += $1} END {print sum / NR}'

Test de référence à l'aide de votre redirecteur DNS de mise en cache locale (dnsmasq) :

for i in {1..100}; do time dig slashdot.org; done 2>&1 | grep ^real | sed -e s/.*m// | awk '{sum += $1} END {print sum / NR}'

Linux
  1. Configuration du serveur DNS de cache uniquement indépendant sur RHEL 7 Linux

  2. Linux - Comment remplacer un serveur Vm DNS ?

  3. Quels sont les types de serveurs de noms DNS sous Linux

  4. Service du système d'exploitation Linux "nommé"

  5. Comment puis-je enregistrer le serveur Linux avec le serveur DNS Windows

Comment effacer ou vider le cache DNS sous Linux

Comment vider le cache DNS sous Linux

Linux contre Unix

Comment vider le cache DNS sous Linux ?

Comment installer et configurer le serveur DNS sous Linux

Commutateur de fichiers hôtes sous Linux