Beruflich Dokumente
Kultur Dokumente
DNS
Installation d’un serveur DNS primaire, et d’un serveur secondaire et mise à jour des enregistrements DNS via serveur DHCP
adim
Serveur DNS bind9 sous Ubuntu 14.04 :
Principe de fonctionnement :
Le service DNS (Domain Name Server) est chargé d’établir la correspondance entre une adresse IP et un nom
de machine. Cela permet que les hôtes obtiennent une adresse IP en sachant le nom de la machine à atteindre (pour 2
aller sur Google nous utilisons l’adresse www.google.com et non pas l’adresse IP associée).
Le principe du système DNS repose sur la décentralisation des données et sur une vision hiérarchique des
réponses aux requêtes. Chaque serveur DNS est responsable de sa zone et n’est pas en mesure de communiquer
directement les adresses IP associées aux noms de machines demandés, mais il est néanmoins capable de
transmettre la demande aux serveurs susceptibles de répondre.
La représentation classique d’une arborescence DNS se fait sous forme d’arbre inversé, avec, à son sommet
la « Racine DNS » (composée de 13 serveurs répartis à travers le monde), puis les serveurs couvrant les labels TLD
(.fr, .com, .org…) et enfin les serveurs couvrant les zones comme « ac-caen.fr » ou « ndlaprovidence.org »
Un serveur de noms (= serveur DNS) s’occupe d’une partie de cet arbre inversé, du nœud sur lequel il fait autorité et
il n’est pas capable de gérer les autres zones.
Zone reverse :
La zone reverse (ou zone inverse) est une zone utilisée pour connaître le nom d’une machine en connaissant
son adresse IP, elle est nommée « in-addr.arpa ».
Exemple : Dans un réseau de type 192.168.1.x, l’adresse reverse sera « 1.168.192.in-addr.arpa » et devra
répondre pour toutes les adresses déclarées entre 192.168.1.0 et 192.168.1.254.
Installation du serveur DNS
I. Installer Ubuntu 14.04 Server et mettez à jour la liste des paquets (apt-get update / apt-get upgrade)
II. Télécharger les paquets de bind9, dnsutils et locate (apt-get install nomdupaquet)
III. Lorsque le paquet bind9 est téléchargé il se lance automatiquement, utiliser la commande ps –ef | grep
3
named afin de vérifier que le service est lancé par l’utilisateur bind
IV. Vous pouvez à tout moment éteindre le service DNS, le redémarrer sans avoir à redémarrer tout le système
en exécutant la commande /etc/init.d/bind9 start (ou restart / stop)
V. Mettez à jour le paquet locate avec un updatedb
VI. Création de la zone DNS principale :
a. Modifiez le fichier named.conf.local (nano /etc/bind/named.conf.local) et ajoutez les lignes
suivantes :
zone ‘’mondomaine.fr’’ {
type master ;
file ‘’/etc/bind/mondomaine.fr.hosts’’ ;
} ;
zone ‘’2.168.192.in-addr.arpa’’ {
type master ;
file ‘’/etc/bind/mondomaine.fr.inverse’’ ;
} ;
NB : Les enregistrements de type “A” mettent en relation les adresses IP avec les noms d’hôtes, et ceux de
type “NS” définissent un serveur de noms.
IX. Configuration de la zone DNS secondaire :
a. Créez le fichier mondomaine.fr.inverse en faisant une copie du fichier db.empty (cp
/etc/bind/db.empty /etc/bind/mondomaine.fr.inverse)
b. Modifier ce fichier (nano /etc/bind/mondomaine.fr.inverse) comme suit :
I. Il peut subsister des problèmes d’écriture car les droits d’écritures sont (sur le serveur secondaire)
limités par le démon named. Pour palier à ce problème il faut modifier le fichier usr.sbin.named
dans apparmor.d (nano /etc/apparmod.d/usr.bin.named) comme suit :
etc/bind/** rw,
Une fois le serveur principal configuré, il est recommandé d’utiliser un serveur secondaire afin d’assurer la
disponibilité du DNS lorsque le premier est indisponible.
II. Ajouter la ligne allow-transfer dans le fichier named.conf.local du serveur principal (nano 5
/etc/bind/named.conf.local)
zone ‘’mondomaine.fr’’ {
type master ;
file ‘’/etc/bind/mondomaine.fr.hosts’’ ;
allow-transfer { 192.168.1.10 ; } ;
} ;
zone ‘’2.168.192.in-addr.arpa’’ {
type master ;
file ‘’/etc/bind/mondomaine.fr.inverse’’ ;
allow-transfer { 192.168.1.10 ; } ;
} ;
III. Toujours sur le serveur principal, modifiez les fichiers dimitri.sio.hosts et dimitri.sio.inverse (nano
/etc/bind/mondomaine.fr.hosts (ou .inverse) comme suit :
ZONE PRINCIPALE :
IV. Sur le serveur secondaire, installez les mêmes paquets que sur le principal (bind9, dnsutils, locate)
V. Modifiez le fichier named.conf.local (nano /etc/bind/named.conf.local), rajouter l’argument masters et
définissez le type en slave :
zone ‘’mondomaine.fr’’ {
type slave ;
file ‘’/etc/bind/mondomaine.fr.hosts’’ ;
masters { 192.168.1.20 ; } ;
} ;
zone ‘’2.168.168.in-addr.arpa’’ {
type slave ;
file ‘’/etc/bind/mondomaine.fr.inverse’’ ;
masters { 192.168.1.20 ; } ;
} ;
VI. Redémarrez le service DNS sur les deux serveurs (/etc/init.d/bind9 restart)
VII. N’oubliez pas d’incrémenter la ligne ‘’serial’’ (dans les fichiers /etc/bind/mondomaine.fr.hosts(ou .inverse))
afin que le serveur secondaire rapatrie les données DNS.
VIII. Vérifiez dans le fichier syslog (nano /var/log/syslog) que le serveur secondaire se mette bien à jour :
Dimitri MICHINEAU | BTS SIO SISR
NB : Un serveur secondaire met à jour sa zone DNS uniquement si le serial du serveur principal est supérieur au sien.
IX. Sur les deux serveurs, modifiez le fichier resolv.conf (nano /etc/resolv.conf) :
search mondomaine.fr
nameserver 192.168.1.20
nameserver 192.168.1.10
Mise à jour dynamique des enregistrements DNS :
Pour mettre à jour l’enregistrement des clients DHCP dans le DNS, il faut bien entendu avoir un serveur
DHCP fonctionnel.
Le serveur DNS doit être configuré pour pouvoir être mis à jour par le serveur DHCP, ils utiliseront une clé
partagée TSIG, il faudra soit en créer une soit récupérer celle qui se crée sur le serveur DNS au moment de
l’installation de bind9 (nano /etc/bind/rndc.key).
7
I. Côté serveur DNS, il faut modifier le fichier named.conf.local afin de définir les hôtes qui seront
mis à jour par le serveur DHCP (nano /etc/bind/named.conf/local)
zone ‘’mondomaine.fr’’ {
type master ;
allow-update {
key rndc-key; #UTILISATION DE LA CLÉ RNDC EXISTANTE
192.168.2.30 ; #IP DU DHCP
192.168.2.20 ; #IP DU DNS PRIMAIRE
192.168.2.10 ; #IP DU DNS SECONDAIRE
192.168.2.0/24 ; #IP DU RÉSEAU
} ;
file ‘’/etc/bind/mondomaine.fr.hosts’’ ;
allow-transfer { 192.168.1.10 ; } ;
} ;
zone ‘’2.168.168.in-addr.arpa’’ {
type master ;
allow-update {
key rndc-key; # UTILISATION DE LA CLÉ RNDC EXISTANTE
192.168.2.30 ; # IP DU DHCP
192.168.2.20 ; # IP DU DNS PRIMAIRE
192.168.2.10 ; # IP DU DNS SECONDAIRE
192.168.2.0/24 ; # IP DU RÉSEAU
} ;
file ‘’/etc/bind/mondomaine.fr.inverse’’ ;
allow-transfer { 192.168.1.10 ; } ;
Dimitri MICHINEAU | BTS SIO SISR
} ;
II. Toujours côté DNS primaire, il faut modifier le fichier named.conf pour rajouter une ligne
include (nano /etc/bind/named.conf) :
include ‘’/etc/bind/rndc.key’’ ;
III. Il faut maintenant aller modifier le fichier dhcpd.conf sur le serveur DHCP (nano
/etc/dhcp/dhcpd.conf) :
ddns-updates on;
ddns-update-style interim;
update-static-leases on ;
IV. Sur le serveur DHCP, il convient d’éditer le fichier dhcp.conf (nano /etc/dhcp/dhcp.conf) :
8
option domain-name “mondomaine.fr” ;
option domain-name-servers dns.mondomaine.fr ;
default-lease-time 600 ;
max-lease-time 7200 ;
V. Sur le serveur DNS primaire, il faut ensuite modifier les droits sur les fichiers de zones (chmod –
R 755 /etc/bind)
VI. Toujours sur le serveur DNS, il faut rajouter les lignes suivantes dans le fichier
named.conf.option (nano /etc/bind/named.conf.option) :
controls {
inet 192.16.2.20 ports 953 allow {192.168.2.20 ; 192.168.2.30 ;} keys {
“rndc-key”;};
};
Dimitri MICHINEAU | BTS SIO SISR
VII. Redémarrer le service DNS sur les deux serveurs DNS (/etc/init.d/dns restart)
VIII. Redémarrer le service DHCP sur le serveur DHCP (/etc/init.d/isc-dhcp-server restart)
Les enregistrements DNS :
A : Associe une adresse IP à un nom d’hôte dans une zone primaire (IPV4)
AAAA : Associe une adresse IP à un nom d’hôte dans une zone primaire (IPV6)
CNAME : Créé un alias d’un enregistrement de type A existant
NS : Défini les serveurs, il doit pointer vers un enregistrement de type A
MX : Défini sur quel serveur doit être envoyé les mails, il doit pointer vers un 9
enregistrement de type A
PTR : Associe une adresse IP à un nom d’hôte dans une zone inverse
TXT : Fournie des informations en format texte brut à des sources extérieures au domaine,
les informations envoyées sont directement exploitables par un ordinateur ou une personne et elle peuvent
servir différents objectifs (Google s’en sert par exemple pour valider la propriété d’un domaine et mettre en
œuvre des sécurité de messagerie)