Unbound-Header
Antoine Coulot

Antoine Coulot

Créer un serveur DNS récursif avec Unbound

Le protocole DNS (Domain Name System) est un protocole de résolution de noms. Il permet d’associer un nom à un enregistrement, tel qu’une adresse IP.

 

Version utilisée :

Unbound 1.6.0

Système d’exploitation :

Debian 9.4.0 64 bits

 

Introduction au DNS

Le protocole DNS, comme expliqué précédemment, permet d’associer un nom de domaine à un enregistrement. Pour résoudre un nom, un client s’adresse à un serveur récursif 1 (ou resolver) qui s’adressera à son tour aux serveurs faisant autorité 2 sur leur domaine. Voici un schéma expliquant comment s’effectue la résolution d’un nom de domaine, ici pour obtenir l’adresse IPv6 de www.debian.org :

 

(schéma inspiré de ceux de l’article Wikipédia sur DNS et de Stéphane Bortzmeyer utilisé lors de sa conférence)

 

Il existe de nombreux types d’enregistrements de ressources possibles, en voici quelques uns :

Type d’enregistrement Description
A Adresse IPv4
AAAA Adresse IPv6
CNAME Nom (pour faire pointer un domaine vers un autre, par exemple).
MX Serveur de messagerie.
TXT Champ texte (pour le DNS-01 challenge de Let’s Encrypt, par exemple).
NS Serveur de noms.
PTR Enregistrement inverse (une adresse IP correspond à un nom)

 

Afin d’en savoir davantage sur DNS, je vous conseille l’article Wikipédia sur le DNS qui est assez complet, ainsi que la conférence de Stéphane Bortzmeyer sur ce sujet (liens en bas de l’article).

 

Installation

Pour créer un serveur récursif, nous allons utiliser Unbound. Pour l’installer, tapez la commande suivante :

sudo aptitude install unbound

 

Il faut ensuite configurer Unbound. Pour cela, modifiez le fichier de configuration grâce à la commande suivante :

sudo nano /etc/unbound/unbound.conf

Edition de /etc/unbound/unbound.conf

 

Modifiez ensuite ce fichier en fonction de votre configuration réseau et de vos besoins. N’hésitez pas à vous référer à la documentation officielle en cas de besoin (lien disponible en bas de l’article). Dans mon cas, voici ma configuration :

Modification du fichier de configuration unbound.conf

 

Il faut maintenant créer et attribuer les droits au dossier et au fichier de journalisation des évènements grâce aux 3 commandes suivantes :

sudo mkdir /var/log/unbound
sudo touch /var/log/unbound/unbound.log
sudo chown -R unbound:unbound /var/log/unbound

Création du fichier de log pour Unbound

 

Démarrez maintenant le service Unbound, et vérifiez son bon fonctionnement :

sudo service unbound start
sudo service unbound status

 

En cas d’erreur, consultez le fichier de logs du système. Il est possible que vous ayez fait une erreur dans le fichier de configuration unbound.conf

 

N’oubliez pas de modifier l’adresse de votre serveur DNS par l’adresse de la machine hébergeant votre service :

sudo nano /etc/resolv.conf

Et voilà, notre serveur récursif est normalement opérationnel ! Quelques outils pour vérifier son bon fonctionnement : dig et ping.

 

Pour installer dig, s’il n’est pas déjà installé sur votre machine :

aptitude install dnsutils

 

Vérifiez ensuite le fonctionnement du résolveur :

dig A www.debian.org
ping www.debian.org

Résolution avec l'outil dig (dnsutils)

 

On peut voir ici grâce à la commande dig que notre serveur récursif est opérationnel et qu’il a bien été utilisé afin de résoudre le nom de domaine www.debian.org

Enfin, la commande ping confirme le précédent résultat, notre machine peut bien accéder à www.debian.org en IPv4.

 

1. Serveur récursif : Serveur ne sachant que contacter les serveurs faisant autorité et qui possède un cache afin de stocker les correspondances déjà connues.

2. Serveur faisant autorité : Serveur connaissant un ou plusieurs domaines.

 

Lien utiles

Documentation d’Unbound Conférence de Stéphane Bortzmeyer

Page Wikipédia DNS Tutoriel Unbound par Quentin Demoulière

Partager cet article >

Partager sur linkedin
Partager sur skype
Partager sur email
Partager sur facebook
Partager sur twitter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour haut de page