Atelier Administration des services réseaux 2019-2020
TP 3: Configuration d'un serveur de nom DNS
Objectifs du TP :
Installer et configurer un serveur DNS maître dans un LAN (configuration de
base)
Faire des résolutions de noms directes et inverses
Environnement du TP :
Pour ce TP, nous allons avoir besoin d’au moins :
- Une machine Ubuntu où sera hébergé le serveur DNS
- Un client Windows
- Un client Ubuntu
1. Plan du réseau et configuration demandée
Client
Windows
[Link]
Commutateur
Serveur
DNS
Ubuntu
[Link]
Client
Ubuntu
[Link]
Nom de domaine : [Link]
Nom machine @IP
rsi3server [Link]
Hostwin [Link]
Hostlinux [Link]
Toutes les manipulations à venir seront à effectuer en tant
que super-utilisateur de la machine.
Sana HAOUAS Page 1
Atelier Administration des services réseaux 2019-2020
2. Installation du serveur BIND9
BIND (Berkeley Internet Name Domain) est un logiciel open source permettant de
publier le système de noms de domaine associé à un LAN et de résoudre les requêtes
DNS pour ses utilisateurs.
C'est le logiciel DNS le plus utilisé sur Internet spécialement sur les systèmes de type
UNIX.
Il existe des alternatives à BIND, comme DJBdns ou MaraDNS, qui sont souvent
réputés plus sécurisés, mais ils sont encore beaucoup moins utilisés.
******
- Pour installer Bind, exécutez la commande suivante :
apt-get install bind9 dnsutils bind9-doc
Cette commande installe BIND (bind9), le client permettant de le tester (dnsutils) et
des documentations sur BIND (bind9-doc).
- Pour vérifier que Bind est bien installé, tapez :
apt-cache show bind9
3. Création de la zone principale
La zone principale permet de faire pointer un FQDN sur une adresse IP. Un FQDN a
la forme hô[Link] :
- hôte correspond au nom d’hôte d’une machine faisant parti du domaine
- domaine correspond au nom de domaine
- extension correspond à l’extension (.com par exemple)
*****
Dans notre cas, nous avons un domaine à zone unique :
- le nom du domaine : [Link]
- le nom de la zone : [Link]
- le FQDN de notre serveur DNS : [Link]
- le FQDN du client Windows : [Link]
- le FQDN du client Ubuntu : [Link]
Sana HAOUAS Page 2
Atelier Administration des services réseaux 2019-2020
La création d'une zone se fait dans le fichier de configuration locale de Bind :
/etc/bind/[Link]
C'est dans ce fichier que nous déclarons les zones associées au domaine (directes et
inverses).
De plus, à chaque zone créée, vous devrez créer un fichier de description de celle-ci.
Placez vous sous /etc/bind.
Éditez le fichier [Link].
Saisissez le bout suivant (respectez la syntaxe):
zone "[Link]" IN {
type master;
file "/etc/bind/[Link]";
};
L’option type a la valeur master pour indiquer que le serveur sur lequel nous
travaillons est le maître de la zone [Link] et l’option file indique le
chemin vers le fichier de configuration de la zone, que nous allons créer
prochainement.
Le fichier [Link] contiendra le détails des machines de votre
domaine.
Enregistrez les modifications.
Remarque :
Les options les plus courantes de la déclaration de zone comprennent :
allow-query — Spécifie les clients qui sont autorisés à requérir des informations à
propos de cette zone. Par défaut toutes les requêtes d'informations sont autorisées.
allow-transfer — Spécifie les serveurs esclaves qui sont autorisés à requérir un
transfert des informations de la zone. Par défaut toutes les requêtes de transfert sont
autorisées.
allow-update — Spécifie les hôtes qui sont autorisés à mettre à jour dynamiquement
des informations dans leur zone. Par défaut aucune requête de mise à jour
dynamique n'est autorisée.
Exemple :
zone "NomZone" IN {
type master;
file "chemin_vers_le_fichier_description";
Sana HAOUAS Page 3
Atelier Administration des services réseaux 2019-2020
allow-update { none; };
};
4. Configuration de la zone principale
Dans le dossier /etc/bind/ il existe un fichier [Link] qui est un exemple de
configuration d’une zone, ressemblant à ceci :
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. [Link]. (
2 ; Serie
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A [Link]
@ IN AAAA ::1
Le signe ";" introduit un commentaire.
Nombre de secondes pendant lesquels les informations de
la zone peuvent être considérées comme valides et être
$TTL (Time to Live)
mises en cache. A la fin du temps le fichier sera relu par
BIND (vaut 7 jours dans l'exemple).
Numéro de série à changer à chaque modification du
fichier si vous possédez au moins un serveur esclave,
Serie pour qu’il puisse prendre en compte les modifications sur
le serveur maître. Le standard est de renseigner la date de
la modification du fichier (YYYYMMDDn)
Délais en secondes qui vont piloter le comportement des
serveurs esclaves. A l’expiration du délai Refresh,
l’esclave va entrer en contact avec le maître. S’il ne le
Refresh, Retry, Expire trouve pas, il essaiera de nouveau à la fin du délai
Retry et si, au bout du délai Expire, il n’est pas parvenu à
ses fins, il considérera que le serveur maître a été retiré du
service.
Sana HAOUAS Page 4
Atelier Administration des services réseaux 2019-2020
Utilisé pour spécifier, en secondes, la durée de vie
pendant laquelle sont conservées en cache les réponses
Negative cache TTL
qui correspondent à des demandes d'enregistrements
inexistants.
Nous allons en faire une copie pour commencer la configuration de la zone
principale.
Faites une copie du fichier [Link] :
cp /etc/bind/[Link] /etc/bind/[Link]
De préférence, donnez comme nom au fichier celui de la zone ou un nom significatif
en lien avec la zone (ici [Link]).
Éditez le fichier que vous venez de créer et adaptez-le de la manière suivante :
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA [Link]. email@[Link]. (
201809121 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS [Link].
@ IN A [Link]
@ IN AAAA ::1
rsi3server IN A [Link]
hostwin IN A [Link]
hostlinux IN A [Link]
Un fichier de zone doit toujours commencer par la définition d’un SOA (Start Of
Authority) :
- « @ » spécifie la zone définie dans le fichier configuration
- « IN » précise qu’il s’adit d’une zone Internet, il s’agit « presque » de la valeur
par défaut,
Sana HAOUAS Page 5
Atelier Administration des services réseaux 2019-2020
- Ensuite on précise le mot clé SOA suivi du FQDN du serveur qui héberge la
zone ([Link].),
- puis, sur la même ligne une adresse email de contact
(email@[Link].).
Attention : Les « . » à la fin de [Link]. et
email@[Link]. sont obligatoires !
Remarque : Il ne faut pas oublier d’incrémenter le numéro de série après chaque
modification du fichier de zone.
Tout de suite après l’enregistrement SOA, il faut préciser le serveur DNS à consulter :
la machine [Link] est un serveur de nom (NS = Name server)
pour la zone.
Ensuite nous avons la définition des machines de notre réseau. Chaque ligne précise :
le nom du pc – le type de zone – le type d’enregistrement – l’adresse IP de la
machine.
La partie en rouge correspond à la définition des hôtes.
L’association du nom d’une machine à son adresse IP se fait de la manière suivante :
nom_hôte IN A ip_hôte
Enregistrez les modifications.
5. Vérification des fichiers de configuration
Pour voir si le fichier [Link] ne comprend pas d'erreur, on tape la
commande :
named-checkconf /etc/bind/[Link]
Si aucun message n'apparait, c’est qu’il n’y a aucune erreur.
Pour le fichier de zone, on utilise la commande :
named-checkzone [Link] /etc/bind/[Link]
Si aucun message n'apparait, c’est qu’il n’y a aucune erreur.
Sana HAOUAS Page 6
Atelier Administration des services réseaux 2019-2020
Redémarrez le service bind9.
Le service bind9 doit être redémarré à chaque modification, pour qu’elle soit prise
en compte.
Testez la résolution du nom de domaine (renseignez-vous sur dig : man dig):
dig @[Link] [Link]
Le serveur DNS doit vous retourner l’adresse IP de votre serveur maître.
La section AUTHORITY SECTION indique le FQDN du serveur faisant autorité
pour répondre aux requêtes concernant ce nom de domaine et la section
ADDITIONAL SECTION indique l’adresse IP du serveur faisant autorité pour
répondre aux requêtes concernant ce nom de domaine.
dig @[Link] [Link]
Le serveur DNS doit vous retourner l’adresse IP associée au nom hostwin.
6. Création d’une zone inversée
Dans une zone reverse, la résolution de nom se fait à l’envers. C’est-à-dire que l’on
demande au serveur DNS de renvoyer le FQDN (nom de domaine pleinement
qualifié) d’une machine à partir de son adresse IP.
Pour créer la zone inversée, vous aurez besoin de l’adresse du réseau pour lequel le
serveur devra résoudre les adresse IP. Si votre serveur DNS est utilisé par plusieurs
réseaux, vous devrez créer autant de zones que de réseaux différents en appliquant
pour chacune les manipulations que nous allons prochainement effectuer.
Pour l’exemple, nous prendrons l’adresse réseau [Link]/24.
Éditez le fichier [Link] et renseignez une nouvelle zone (inversée) de
la manière suivante :
zone "[Link]" IN {
type master;
file "/etc/bind/192.168.1";
};
Pour le nom de la zone, vous devez renseigner les 3 premiers octets de l’adresse
réseau à l’envers, suivi du nom de zone .[Link]. La zone [Link] permet
la résolution inversée.
Enregistrez les modifications.
Sana HAOUAS Page 7
Atelier Administration des services réseaux 2019-2020
7. Configuration de la zone inversée
Créez le fichier de description de votre zone inversée, en faisant une copie du
fichier de description de votre zone principale :
cp /etc/bind/[Link] /etc/bind/192.168.1
Éditez le fichier de description que vous venez de créer et adaptez-le de la
manière suivante :
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA [Link]. email@[Link]. (
201809121 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS [Link].
1 IN PTR [Link].
2 IN PTR [Link].
3 IN PTR [Link].
L’association de l’adresse IP d’une machine à son nom se fait de la manière suivante :
IP IN PTR FQDNMachine
Le nombre au début de chaque ligne correspond au dernier octet de l’adresse IP
d'une machine de votre LAN.
PTR (Point Record) permet d’effectuer des inversements d’enregistrement A ou
AAAA et de donner le nom d’hôte associé à l’adresse IP à résoudre.
Remarquez le "." en fin du FQDN.
Enregistrez les modifications et vérifiez la syntaxe :
named-checkzone [Link] /etc/bind/192.168.1
Redémarrez le service bind9.
Testez la résolution d’adresse IP :
Sana HAOUAS Page 8
Atelier Administration des services réseaux 2019-2020
dig @[Link] -x IPMachine
Exemple : IPMachine = [Link]
Attention à ajouter l’option -x à la commande dig pour pouvoir demander au serveur
DNS de résoudre une adresse IP.
Vérifiez le résultat sous ANSWER SECTION.
8. Tests du serveur DNS
8.1. Configuration des clients
a. Cas d’un client Ubuntu
Il faut d’abord indiquer à la machine l’adresse du serveur DNS à consulter. Pour cela,
il suffit d’éditer le fichier /etc/[Link] :
search [Link]
nameserver [Link]
On peut spécifier plusieurs serveurs DNS à interroger avec la commande
nameserver.
La commande search indique que si un nom de domaine n'est pas trouvé, il faudra
essayer en lui ajoutant .[Link].
b. Cas d’un client Windows
Il suffit de spécifier l’adresse du serveur BIND (à savoir [Link]) comme serveur
DNS primaire au niveau de la configuration de la carte réseau.
8.2. Tests : NSLOOKUP
Deux commandes peuvent être utilisées pour la résolution de noms : dig et nslookup.
dig sous linux, nslookup sous windows/linux.
1. Pour faire l’essai de la résolution directe, il suffit d’utiliser la commande :
nslookup [Link]
2. Pour tester la résolution inversée, il suffit d’utiliser la commande :
nslookup [Link]
Il y a aussi la commande host sous linux, utilisez le man pour voir comment l'utiliser.
Sana HAOUAS Page 9