Présentation
Dnsmasq a la particularité d’être un serveur de cache DNS et un serveur DHCP. Un seul démon, deux services en somme !
Installation
Sous GNU/Linux Debian il suffit de faire :
apt install dnsmasq
Configuration
Nous n’allons utiliser dnsmasq qu’en tant que serveur DNS, sans la partie DHCP.
Votre configuration - dans le fichier /etc/dnsmasq.conf - doit ressembler à quelque chose comme :
domain-needed
bogus-priv
no-resolv
server=208.67.222.222
server=208.67.220.220
Si vous avez un nom de domaine hébergé sur la même machine, ajoutez :
local=/mondomaine.tld/
domain=mondomaine.tld
Changer la configuration de /etc/resolv.conf et ne mettre QUE la ligne suivante :
nameserver 127.0.0.1
Ceci oblige dnsmasq à faire un cache.
On relance ensuite le serveur :
service dnsmasq restart
Port
Le port utilisé est le port 53 (UDP) par défaut !
Configurer son serveur DHCP (isc-dhcp-server) pour prendre par défaut le serveur DNS
Il suffit d’éditer le fichier /etc/dhcp/dhcpd.conf et de modifier afin d’obtenir une ligne comme :
option domain-name-servers 127.0.0.1;
Vider le cache
sudo kill -HUP $(pgrep dnsmasq)
Tester sur un client que le cache DNS fonctionne
Faire :
$ dig oreilly.com
<snip much output>
;; Query time: 75 msec
;; SERVER: 192.168.1.50#53(192.168.1.50)
$ dig oreilly.com
<snip much output>
;; Query time: 3 msec
;; SERVER: 192.168.1.50#53(192.168.1.50)
La seconde fois met moins de temps !