Ceci est une ancienne révision du document !
Configurer un serveur DNS pour son poste de travail avec Dnsmasq
DnsMasq est un petit serveur DNS (cache DNS). Peu gourmand en ressources et très simple à configurer, il est bien adapté à une installation pour installer un petit serveur DNS sur son poste de travail.
Pour la résolution des noms, il se base sur les DNS déclarés dans la configuration réseau (/etc/resolv.conf) ou sur le fichier /etc/hosts. Ce qui est bien pratique pour configurer une petite zone lan : il suffit d’éditer le fichier /etc/hosts comme nous le ferions pour une seule machine.
Installer une interface réseau virtuelle pour le serveur DNS
Éditer /etc/systemd/network/10-virtualeth0.netdev
[NetDev] Name = virtualeth0 Kind = dummy
Éditer /etc/systemd/network/10-virtualeth0.network
[Match] Name = virtualeth0 [Network] Address = 10.10.10.1/24 Address = fd00::/8
systemctl start systemd-networkd.service
systemctl enable systemd-networkd.service
reboot
Après le redémarrage vérifier la présence de l'interface réseau virtuelle.
ip a … 3: virtualeth0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether 9a:3c:56:42:f5:c9 brd ff:ff:ff:ff:ff:ff inet 10.10.10.1/24 brd 10.10.10.255 scope global virtualeth0 valid_lft forever preferred_lft forever inet6 fd00::/8 scope global valid_lft forever preferred_lft forever inet6 fe80::983c:56ff:fe42:f5c9/64 scope link valid_lft forever preferred_lft forever …
Configuration du client DHCP
Pour pouvoir ajouter le serveur DNS local à /etc/resolv.conf, il faut renseigner l’option prepend qui permet l’ajout du serveur DNS local en début de la liste des serveurs DNS fournit automatiquement par DHCP.
Vérifier les DNS présents :
$ nmcli dev show | grep DNS IP4.DNS[1]: yyy.yyy.yyy.yyy IP4.DNS[1]: yyy.yyy.yyy.yyy IP6.DNS[1]: yyyy:yyyy:yyyy::yyyy IP6.DNS[2]: yyyy:yyyy:yyyy::yyyy IP6.DNS[3]: yyyy:yyyy:yyyy::yyyy $ resolvectl dns Global: Link 2 (enp0sxx): Link 3 (wlx803xxxxx): yyyy:yyyy:yyyy::yyyy yyyy:yyyy:yyyy::yyyy yyyy:yyyy:yyyy::yyyy yyy.yyy.yyy.yyy Link 4 (wlo1): yyy.yyy.yyy.yyy Link 6 (virtualeth0):
Éditer /etc/dhcp/dhclient.conf
prepend domaine-perso.fr 10.10.10.1 fd00::
Domaine local du poste de travail
Voir le domaine local du poste de travail
$ hostname -d
Définir le domaine local de la machine Ubuntu
$ sudo hostnamectl set-hostname MachineUbuntu.domaine-perso.fr --static $ hostname -d domaine-perso.fr
Installation de Dnsmasq
Installer les applications de base pour Dnsmasq et sa gestion
$ sudo apt install dnsmasq net-tools
Configuration serveur DNS de Dnsmasq
Éditer /etc/dnsmasq.conf
# Ne transmet pas les requêtes ne contenant pas un nom de domaine complet domain-needed # "no such domain" pour des adresses IP privées non référencées dans dnsmasq bogus-priv # Corrige du spam DNS Microsoft filterwin2k # Formate les requêtes DNS suivant l’interface réseau utilisée localise-queries # Domaine dns local local = /domaine-perso.fr/ # Interfaces DNS interface = virtualeth0 exept-interface = lo exept-interface = enp0sxx exept-interface = wlx803xxxxx exept-interface = wlox # Adresses écoutées listen-address = 127.0.0.1 listen-address = 10.10.10.1 listen-address = fd00:: # Toutes les interfaces réseau sont en mode serveur DNS c’est ce qui permet de démarrer le serveur DNS bind-interfaces # Ajoute le nom de domaine DNS aux entrées /etc/hosts expand-hosts # Non de domaine pour extensions "expand-hosts" domain=domaine-perso.fr # Taille du cache DNS cache-size = 1000 # Désactive le "cache négatif" sur réponses "no such domain" no-negcache
Ajout du server DNS local à la liste des serveurs DNS de systemd-resolved. Éditer /etc/systemd/resolved.conf
DNS=10.10.10.1 fd00::
Relance de Dnsmasq
$ systemctl restart dnsmasq.service
$ systemctl enable dnsmasq.service
$ systemctl restart systemd-resolved.service
$ nmcli general reload