{{tag>netadmin sysadmin dns cache dnsmasq}} :TODO: ====== dnsmasq ====== Une résolution faisant intervenir un serveur DNS distant est de l'ordre de la vingtaine de millisecondes. Avec un cache DNS sur le réseau local ou s’exécutant sur la machine on descend autour de la milliseconde dès la deuxième demande de résolution. ===== Installation ===== ==== Gestionnaire de paquets ==== Le plus simple naturellement c'est d'utiliser le gestionnaire de paquets: sudo apt-get install dnsmasq Dans l'exemple ci-dessus la distribution intègre la version 2.85 de dnsmasq: dnsmasq --version Version de Dnsmasq 2.85 Copyright (c) 2000-2021 Simon Kelley ==== Installation via les sources (support des sets NFT) ===== Il peut être utile d'installer une version plus récente notamment pour bénéficier de certaines fonctionnalités comme le [[netadmin/recompilation_dnsmasq_support_nftset|peuplement des ensembles nft]]) disponible à partir de la version 2.87. ===== Configuration du cache DNS ===== Après toute modification des fichiers de configuration, il faut redémarrer le service pour les prendre en compte. Le signal **SIGUSR1** fait un dump des statistiques du cache dans le fichier log: kill -USR1 $(cat /var/run/dnsmasq/dnsmasq.pid) journalctl --unit dnsmasq.service Dans l'exemple ci-dessous, on retrouve bien dans les journaux système les statistiques du cache: mars 26 14:48:36 debian11vm dnsmasq[10251]: time 1679834916 mars 26 14:48:36 debian11vm dnsmasq[10251]: cache size 150, 0/1 cache insertions re-used unexpired cache entries. mars 26 14:48:36 debian11vm dnsmasq[10251]: queries forwarded 5, queries answered locally 4 mars 26 14:48:36 debian11vm dnsmasq[10251]: queries for authoritative zones 0 mars 26 14:48:36 debian11vm dnsmasq[10251]: pool memory in use 48, max 48, allocated 2400 mars 26 14:48:36 debian11vm dnsmasq[10251]: server 192.168.122.1#53: queries sent 5, retried or failed 0 ===== Vider le cache ===== A la réception du signal **HUP**, dnsmasq vide le cache DNS : killall -HUP dnsmasq # Equivalent kill -HUP $(cat /var/run/dnsmasq/dnsmasq.pid) Le man indique bien que la réception du signal **SIGHUP** ne provoque pas la relecture des fichiers de configuration. Pour prendre en compte toute modification de la configuration, il faudra redémarrer le service. ===== Fake DNS ===== Il est possible de redéfinir l'adresse IP associée à un domaine (fake DNS): # IP originale associée au FQDN www.example.com dig +short www.example.com 93.184.216.34 On modifie le fichier de configuration ''/etc/dnsmasq.d/local.conf'' address=/www.example.com/192.168.33.11 ===== Journalisation ===== ===== Références ===== * https://fr.wikipedia.org/wiki/Dnsmasq * https://askubuntu.com/questions/1314927/clear-dnsmasq-cache-without-restarting-the-service * https://www.linuxtricks.fr/wiki/dnsmasq-le-serveur-dns-et-dhcp-facile-sous-linux