Dnsmasq est un serveur DNS faisant office de cache, simple à mettre en place et léger. Il est parfaitement adapté pour des petits réseaux locaux domestiques ou d’entreprises. Dnsmasq intègre également un serveur DHCP et TFTP, mais cet article présente l’installation et la configuration du service DNS uniquement.
Ce tutoriel se base sur la distribution Raspbian, une distribution dérivée de Debian dédiée au Raspberry. Le but est de mettre en place un serveur DNS relais capable de répondre aux requêtes des différentes machines du réseau local et du serveur lui-même.
# aptitude install dnsmasq
Le fichier de configuration se trouve dans le répertoire /etc/hosts. Il est préférable de faire une sauvegarde de ce fichier avant toute modification
# cp /etc/dnsmasq.conf /etc/dnsmasq.conf.ori
Voici la configuration que j’utilise sur mon réseau.
# vi /etc/dnsmasq.conf
# Empêche l’envoi des noms d’hôtes et adresses IP de votre réseau local aux serveurs DNS extérieurs
domain-needed
bogus-priv
# Utilise le fichier /etc/resolv.conf.dnsmasq au lieu de /etc/resolv.conf
resolv-file=/etc/resolv.conf.dnsmasq
# Faire écouter Dnsmasq sur l’interface eth0 et lo
interface=eth0
interface=lo
# Désactiver les serveurs DHCP et TFTP
no-dhcp-interface=eth0
Par défaut Dnsmasq effectue la résolution DNS pour les autres machines du réseau en s’appuyant les DNS externes présents dans /etc/resolv.conf. Si l’on souhaite que le serveur lui-même utilise les informations de Dnsmasq alors on lui indique qu’il doit utiliser un autre fichier à l’aide de l’option resolv-file de la configuration.
# vi /etc/resolv.conf.dnsmasq
nameserver 212.27.40.240
Ce fichier contient le serveur DNS externe sur lequel Dnsmasq va s’appuyer pour ses requêtes.
Dans le fichier /etc/resolv.conf on spécifie la boucle locale.
#vi /etc/resolv.conf
nameserver 127.0.0.1
Ainsi lorsqu’une requête locale au serveur est effectuée, celui-ci interroge 127.0.0.1 (la boucle locale). Dnsmasq qui écoute aussi sur l’interface lo (en plus d’eth0) va être en mesure de répondre à cette requête. A ce stade, la configuration est terminée. Vous pouvez réaliser quelques tests de requêtes DNS, en vous aidant de la fonction DEBUG, qui s’active en spécifiant l’option log-queries du fichier de configuration de Dnsmasq.
Bien entendu, n’oubliez pas de configurer votre serveur DHCP pour que ce dernier envoi l’adresse IP du DNS aux clients.