Table des matières
Server de nom : dnsmasq
Présentation
Dnsmasq est un serveur DHCP et cache DNS léger. J'utilise les fonctions DNS pour maintenir les adresses des machines virtuelles de manière centralisée.
La gestion des adresses de DOMU se fait simplement via un fichier texte sur le modèle d'un fichier /etc/host.
Installation réalisée sur Debian 11 Bullseye.
Installation
root@mazarini:~# apt-get install dnsmasq ...
root@mazarini:~# apt list dnsmasq En train de lister... Fait dnsmasq/stable,now 2.85-1 all [installé] root@mazarini:~#
Configuration dnsmasq
/etc/default/dnsmasq
Extrait du fichier:
- to completely disable starting this dnsmasq instance
- to set DOMAIN_SUFFIX by running `dnsdomainname`
- to select an alternative config file by setting DNSMASQ_OPTS to –conf-file=<file>
- to tell dnsmasq to read the files in /etc/dnsmasq.d for more configuration variables.
- to stop the resolvconf package from controlling dnsmasq's idea of which upstream nameservers to use.
- to avoid using this dnsmasq instance as the system's default resolver by setting DNSMASQ_EXCEPT=“lo”
La configuration par défaut convient parfaitement :
- dnsmasq est actif (ENABLED=1)
- dnsmasq lit la repertoire /etc/dnsmasq.d pour sa configuration en ignorant certaines extensions (CONFIG_DIR=/etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new)
/etc/dnsmasq.conf
Ce fichier est initialement fournit avec un paramétrage entièrement en commentaire. Je préfère le laisser ainsi et utiliser le répertoire /etc/dnsmasq.d pour définir le fonctionnement de dnsmasq.
Remarque : comme il n'y a pas de paramétrage pour DHCP, la fonction n'est pas activée.
/etc/dnsmasq.d/local.conf
# If you don't want dnsmasq to read /etc/hosts, uncomment the # following line. no-hosts # or if you want it to read another file, as well as /etc/hosts, use # this. addn-hosts=/etc/dnsmasq-hosts.conf # If you want dnsmasq to listen for DHCP and DNS requests only on # specified interfaces (and the loopback) give the name of the # interface (eg eth0) here. # Repeat the line for more than one interface. interface=eth0 # Change this line if you want dns to get its upstream servers from # somewhere other that /etc/resolv.conf resolv-file=/etc/dnsmasq-dns.conf # The following two options make you a better netizen, since they # tell dnsmasq to filter out queries which the public DNS cannot # answer, and which load the servers (especially the root servers) # unnecessarily. If you have a dial-on-demand link they also stop # these requests from bringing up the link unnecessarily. # Never forward plain names (without a dot or domain part) domain-needed
no-hosts | le fichier /etc/hosts est ignoré |
addn-hosts=/etc/dnsmasq-hosts.conf | le fichier remplace le fichier /etc/hosts |
interface=eth0 | Le serveur répond aux requêtes recu sur l'interface ETH0 ; cette interface est celle du réseau local (10.0.0.0/16). Le serveur ne répondra donc pas à l'extérieur. |
resolv-file=/etc/dnsmasq-dns.conf | Ce fichier contient les serveurs à interroger |
domain-needed | Les machines sans nom de domaine ne sont traitée que localement |
/etc/dnsmasq-hosts.conf
10.0.0.1 dns ns 10.0.0.2 mail smtp imap 10.0.0.3 mysql 10.0.0.4 postgress 10.0.0.5 apache 10.0.0.13 test 10.0.0.254 router
Ce fichier permet la résolution des noms des machines locales, cf le paramètre addn-hosts
/etc/dnsmasq-dns.conf
nameserver 9.9.9.9 nameserver 1.1.1.1 nameserver 4.4.4.4
Références
- Quad9 : serveurs de DSN public.
- French Data Network : serveurs de DNS public.
- CloudFlare : serveurs de DNS public.