Outils pour utilisateurs

Outils du site


dnsmasq

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:

  1. to completely disable starting this dnsmasq instance
  2. to set DOMAIN_SUFFIX by running `dnsdomainname`
  3. to select an alternative config file by setting DNSMASQ_OPTS to –conf-file=<file>
  4. to tell dnsmasq to read the files in /etc/dnsmasq.d for more configuration variables.
  5. to stop the resolvconf package from controlling dnsmasq's idea of which upstream nameservers to use.
  6. to avoid using this dnsmasq instance as the system's default resolver by setting DNSMASQ_EXCEPT=“lo”

La configuration par défaut convient parfaitement :

  1. dnsmasq est actif (ENABLED=1)
  2. 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-hostsle fichier /etc/hosts est ignoré
addn-hosts=/etc/dnsmasq-hosts.confle fichier remplace le fichier /etc/hosts
interface=eth0Le 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.confCe fichier contient les serveurs à interroger
domain-neededLes 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

dnsmasq.txt · Dernière modification : 2023/07/04 10:55 de 127.0.0.1