Vous êtes sur la page 1sur 6

Serveur DNS

1 Présentation de DNS
Le service de nom de domaine (DNS) est un service Internet qui établit la
correspondance entre les adresses IP et les noms de domaines pleinement qualifiés
(FQDN : Fully Qualified Domain Name). Ainsi, le DNS évite d'avoir à se rappeler
des adresses IP. Les ordinateurs sur lesquels s'exécutent les DNS sont appelés
des serveurs de nom. Ubuntu est fourni avec BIND (Berkley Internet Naming
Daemon), le programme le plus couramment utilisé pour gérer un serveur de nom
sur Linux.

2. Installation
Pour installer le service dns, exécutez la commande suivante dans un terminal :
sudo apt install bind9
Le paquet dnsutils est très utile pour tester et dépanner les problèmes de DNS.
Très souvent, ces outils seront déjà installés, mais afin de vérifier la présence et/ou
d'installer dnsutils, saisissez ce qui suit :
sudo apt install dnsutils

3. Configuration
Il y a plusieurs façons de configurer BIND9. La configuration la plus courante est
d’installer un serveur de noms de cache, un maître principal et un maître
secondaire.
1. Quand il est configuré en serveur de noms en mode cache, BIND9 effectuera
les résolutions de noms et se souviendra de la réponse lorsque qu'un domaine
sera demandé une nouvelle fois.

2. En tant que serveur maitre primaire, BIND9 lit les données d'une zone dans
un fichier sur son serveur hôte et il fait autorité pour cette zone.

3. En tant que maitre secondaire, BIND9 obtient les données de la zone depuis
le serveur de noms faisant autorité pour la zone.

A. NAANAA 1/1
Les fichiers de configuration DNS sont situés dans le répertoire /etc/bind.
Le fichier de configuration de base est /etc/bind/named.conf.
La ligne include spécifie le nom du fichier contenant les options DNS. La
ligne directory dans le fichier /etc/bind/named.conf.options indique au DNS où
chercher les fichiers. Tous les fichiers utilisés par BIND seront relatifs à ce
répertoire.
Le fichier /etc/bind/db.root décrit les serveurs DNS racines mondiaux. Il est
nécessaire de mettre à jour ce fichier de temps en temps. La section zone définit
le serveur maitre, et est stockée dans le fichier spécifié par l'option file.
Il est possible de configurer un unique serveur comme serveur de noms en mode
cache, maitre primaire et maitre secondaire. Un serveur peut faire autorité sur
une zone (Start of Authority, SOA), tout en fournissant un service secondaire
pour une autre zone, et en fournissant des services de cache pour les hôtes sur le
LAN local.

3.1 Serveur de noms de cache


La configuration par défaut alloue un rôle de serveur cache. Il suffit d'ajouter les
adresses IP des DNS du FAI dans le fichier /etc/bind/named.conf.options :
forwarders {
8.8.8.8;
8.8.4.4;
};

3.2 Maître primaire


Dans cette section, BIND9 sera configuré comme serveur primaire du
domaine example.com.

3.2.1 Fichier zone de recherche directe (Forward zone)


Pour ajouter une zone DNS à BIND9 afin de le transformer en serveur maitre
primaire, il faut tout d'abord modifier le fichier /etc/bind/named.conf.local :
zone "example.edu" {
type master;
file "/etc/bind/db.example.edu";
};

A. NAANAA 1/2
Créer le fichier de zone db.example.edu
sudo cp /etc/bind/db.local /etc/bind/db.example.edu

Editer le fichier de zone /etc/bind/db.example.edu est changé :


1. localhost par le FQDN de votre serveur ;
2. 127.0.0.1 avec l’adresse IP du serveur ;
3. root.localhost par root.example.edu
4. Créer un enregistrement A pour le domaine de base.
5. Créer un enregistrement A pour ns.exemple.edu, remplacer ns par le nom
de votre serveur.
@ IN NS ns.example.edu //FQDN
@ IN NS FQDN-client1
@ IN A @IP-serveur
@ IN A @IP-client1
@ IN A @IP-client2
alias IN A @IP-serveur

3.2.2 Fichier zone de recherche inverse


Maintenant que la zone est configurée pour résoudre les noms en adresses IP, il
est nécessaire de paramétrer la zone de recherche inverse (Reverse zone). Celle-ci
permet de résoudre les adresses IP en noms.
Modifiez le fichier /etc/bind/named.conf.local comme suit :

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};

Remplacez 1.168.192 par les trois premiers octets du réseau que vous utilisez.
Nommez également le fichier de zone /etc/bind/db.192 en conséquence. Il devrait
correspondre au premier octet de votre réseau.
Créez maintenant le fichier /etc/bind/db.192 :
sudo cp /etc/bind/db.127 /etc/bind/db.192

Modifiez ensuite /etc/bind/db.192 en changeant les mêmes options que


dans /etc/bind/db.example.edu :
;
; BIND reverse data file for local 192.168.1.XXX net
;
$TTL 604800
@ IN SOA ns.example.edu. root.example.edu. (
2 ; Serial

A. NAANAA 1/3
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.

3.3 Maître secondaire


Une fois que le maître primaire est paramétré il faut configurer un maître
secondaire afin de maintenir la disponibilité du domaine en cas d'indisponibilité
du serveur primaire.
Il faut tout d'abord autoriser le transfert de zone sur le serveur maître primaire.
Ajoutez l'option allow-transfer dans les exemples de définitions de zone de
recherche directe et inverse du fichier /etc/bind/named.conf.local :
zone "example.edu" {
type master;
file "/etc/bind/db.example.edu";
allow-transfer { @IP-secondaire; };
};

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
allow-transfer { @IP-secondaire; };
};

Redémarrer BIND9 :
sudo systemctl restart bind9.service

Installer le paquet bind9 sur le serveur maître secondaire de la même manière que
pour le serveur primaire. Puis modifier le fichier /etc/bind/named.conf.local et
ajouter les déclarations suivantes pour les zones de recherche directe et inverse :
zone "example.edu" {
type slave;
file "db.example.edu";
masters { @IP-primaire; };
};

zone "1.168.192.in-addr.arpa" {
type slave;
file "db.192";

A. NAANAA 1/4
masters { @IP-primaire; };
};

Redémarrer BIND9 sur le serveur maître secondaire :


sudo systemctl restart bind9.service

Dans /var/log/syslog, Il faut voir le transfert de zone quelque chose de semblable

Remarque : Pour avoir le transfert de zone il faut que le numéro de série dans le
serveur primaire est supérieure à celle du secondaire. Ajouter la notification de
zone par le mot clé : also-notify { @IP-client ; } ; dans le fichier
/etc/bind/named.conf.local du serveur primaire dans les deux zones.

3.4 Machine cliente

Dans le fichier /etc/resolv.conf, ajouter les serveurs de noms précédemment


configurer :
nameserver @IP-primaire
nameserver @IP-secondaire

Remarque :

Par défaut le serveur de nom écoute sur l’adresse 127.*, pour résoudre les
requêtes des clientes il faut changer dans le fichier /etc/default/bind9 la ligne
RESOLVCONF=no par RESOLVCONF=yes.

4. Tester la configuration
dig -x 127.0.0.1
Vous devriez obtenir un résultat similaire à ce qui suit :
;; Query time: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)

dig example.edu
dig oranix.exmaple.edu
ping oranix.example.com

named-checkzone
Un excellent moyen pour tester vos fichiers de zone est d'employer
l'utilitaire named-checkzone installé avec le paquet bind9. Cet utilitaire vous
permet de vous assurer que la configuration est correcte avant de
redémarrer BIND9 et d'appliquer les changements.
Tester le fichier de zone directe :

A. NAANAA 1/5
named-checkzone example.edu /etc/bind/db.example.edu
Si tout est configuré correctement, il faut avoir une sortie similaire à :
zone example.edu/IN: loaded serial 2
OK
De la même façon, afin de vérifier le fichier de zone inverse, entrez :
named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
La sortie devrait être semblable à :
zone 1.168.192.in-addr.arpa/IN: loaded serial 2
OK

nslookup oranix.example.edu
Server: 127.0.0.1
Address: 127.0.0.1#53

Name: oranix.example.edu
Address: 192.168.1.7

A. NAANAA 1/6