Vous êtes sur la page 1sur 9

LYCE NOTRE-DAME DE LA PROVIDENCE AVRANCHES (50)

DNS
Installation dun serveur DNS primaire, et dun 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 dtablir la correspondance entre une adresse IP et un nom
de machine. Cela permet que les htes obtiennent une adresse IP en sachant le nom de la machine atteindre (pour
aller sur Google nous utilisons ladresse www.google.com et non pas ladresse IP associe).

Le principe du systme DNS repose sur la dcentralisation des donnes et sur une vision hirarchique des
rponses aux requtes. Chaque serveur DNS est responsable de sa zone et nest pas en mesure de communiquer
directement les adresses IP associes aux noms de machines demands, mais il est nanmoins capable de
transmettre la demande aux serveurs susceptibles de rpondre.
La reprsentation classique dune arborescence DNS se fait sous forme darbre invers, avec, son sommet
la Racine DNS (compose de 13 serveurs rpartis 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) soccupe dune partie de cet arbre invers, du nud sur lequel il fait autorit et
il nest pas capable de grer les autres zones.

Zone reverse :

La zone reverse (ou zone inverse) est une zone utilise pour connatre le nom dune machine en connaissant
son adresse IP, elle est nomme in-addr.arpa .
Exemple : Dans un rseau de type 192.168.1.x, ladresse reverse sera 1.168.192.in-addr.arpa et devra
rpondre pour toutes les adresses dclares entre 192.168.1.0 et 192.168.1.254.

Dimitri MICHINEAU | BTS SIO SISR

Cheminement dune rsolution dadresse :


I. Le client DNS veut contacter ladresse www.google.com
II. Le serveur racine rsout la partie .com et envoie vers un des serveurs
faisant autorit dans ce nud
III. Le serveur de label .com renvoi la requte vers un des serveurs DNS de
Google,
IV. Les serveurs DNS de Google font la correspondance entre le nom www et
un serveur web et renvoie ladresse IP au client

Installation du serveur DNS


Dans cet exemple, lIP du serveur principal sera : 192.168.1.20

I.
II.
III.
IV.
V.
VI.

Installer Ubuntu 14.04 Server et mettez jour la liste des paquets (apt-get update / apt-get upgrade)
Tlcharger les paquets de bind9, dnsutils et locate
(apt-get install nomdupaquet)
Lorsque le paquet bind9 est tlcharg il se lance automatiquement, utiliser la commande ps ef | grep
named afin de vrifier que le service est lanc par lutilisateur bind
Vous pouvez tout moment teindre le service DNS, le redmarrer sans avoir redmarrer tout le systme
en excutant la commande /etc/init.d/bind9 start (ou restart / stop)
Mettez jour le paquet locate avec un updatedb
Cration 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 ;
} ;

VII.

Cration de la zone DNS inverse :


a. Modifiez toujours le fichier named.conf.local, et ajoutez aux lignes prcdentes :

zone 2.168.192.in-addr.arpa {
type master ;
file /etc/bind/mondomaine.fr.inverse ;
} ;

Configuration de la zone DNS principale :


a. Crez le fichier mondomaine.fr.hosts en faisant une copie du fichier db.empty (cp
/etc/bind/db.empty /etc/bind/mondomaine.fr.hosts)
b. Modifier ce fichier (nano /etc/bind/mondomaine.fr.hosts) comme suit :

IN

@
dns

IN
IN

SOA
dns.mondomaine.fr. webmaster.mondomaine.fr. (
1 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ; minimum TTL of 1 day)
NS
dns.mondomaine.fr.
A
192.168.1.20

NB : Les enregistrements de type A mettent en relation les adresses IP avec les noms dhtes, et ceux de
type NS dfinissent un serveur de noms.

Dimitri MICHINEAU | BTS SIO SISR

VIII.

IX.

Configuration de la zone DNS secondaire :


a. Crez 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 :

IN

@
20

IN
IN

SOA
dns.mondomaine.fr. webmaster.mondomaine.fr. (
1 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ; minimum TTL of 1 day)
NS
dns.mondomaine.fr.
PTR
dns.mondomaine.fr.

NB : Ici, 20 correspond la fin de ladresse IP du serveur DNS (192.168.1.20), et lenregistrement de


type PTR signifie pointeur est un renvoi vers le DNS.
I.

Il peut subsister des problmes dcriture car les droits dcritures sont (sur le serveur secondaire)
limits par le dmon named. Pour palier ce problme il faut modifier le fichier usr.sbin.named
dans apparmor.d (nano /etc/apparmod.d/usr.bin.named) comme suit :

etc/bind/** rw,

XI.
XII.

Testez les fichiers named-checkzone mondomaine.fr /etc/bind/mondomaine.fr.hosts et namedcheckzone 1.168.192.in-addr.arpa /etc/bind.mondomaine.fr.inverse


Testez si la rsolution des noms est bonne avec les commandes nslookup www.google.fr ou dig
www.google.fr
Si les tests sont concluants, redmarrez le service DNS avec /etc/init.d/bind9/restart

Dimitri MICHINEAU | BTS SIO SISR

X.

Mise en service dun serveur DNS secondaire :


Dans cet exemple, lIP du serveur secondaire sera : 192.168.1.10
Une fois le serveur principal configur, il est recommand dutiliser un serveur secondaire afin dassurer 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


/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 :

IN

IN
@
dns
dns2

SOA
dns.mondomaine.fr. webmaster.mondomaine.fr. (
1 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ) ; minimum TTL of 1 day
NS
dns.mondomaine.fr.
IN
NS
dns2.mondomaine.fr.
IN
A
192.168.1.20
IN A
192.168.1.10

Dimitri MICHINEAU | BTS SIO SISR

ZONE PRINCIPALE :

ZONE SECONDAIRE :
@

IN

@
@
20
10

IV.
V.

SOA
dns.mondomaine.fr. webmaster.mondomaine.fr. (
1 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ) ; minimum TTL of 1 day
IN
NS
dns.mondomaine.fr.
IN
NS
dns2.mondomaine.fr.
IN
PTR
dns.mondomaine.fr.
IN
PTR
dns2.mondomaine.fr.

Sur le serveur secondaire, installez les mmes paquets que sur le principal (bind9, dnsutils, locate)
Modifiez le fichier named.conf.local (nano /etc/bind/named.conf.local), rajouter largument masters et
dfinissez le type en slave :

zone mondomaine.fr {
type slave ;
file /etc/bind/mondomaine.fr.hosts ;
masters { 192.168.1.20 ; } ;
} ;

VI.
VII.
VIII.

Redmarrez le service DNS sur les deux serveurs (/etc/init.d/bind9 restart)


Noubliez pas dincrmenter la ligne serial (dans les fichiers /etc/bind/mondomaine.fr.hosts(ou .inverse))
afin que le serveur secondaire rapatrie les donnes DNS.
Vrifiez dans le fichier syslog (nano /var/log/syslog) que le serveur secondaire se mette bien jour :

slave zone mondomaine.fr (IN) loader (serial 2)


slave zone 10.168.192.in-addr.arpa (IN) loader (serial 2)

NB : Un serveur secondaire met jour sa zone DNS uniquement si le serial du serveur principal est suprieur 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

Dimitri MICHINEAU | BTS SIO SISR

zone 2.168.168.in-addr.arpa {
type slave ;
file /etc/bind/mondomaine.fr.inverse ;
masters { 192.168.1.20 ; } ;
} ;

Mise jour dynamique des enregistrements DNS :


Pour mettre jour lenregistrement 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
partage TSIG, il faudra soit en crer une soit rcuprer celle qui se cre sur le serveur DNS au moment de
linstallation de bind9 (nano /etc/bind/rndc.key).
7

I.

Ct serveur DNS, il faut modifier le fichier named.conf.local afin de dfinir les htes qui seront
mis jour par le serveur DHCP (nano /etc/bind/named.conf/local)

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 RSEAU
} ;
file /etc/bind/mondomaine.fr.inverse ;
allow-transfer { 192.168.1.10 ; } ;
} ;

II.

Toujours ct DNS primaire, il faut modifier le fichier named.conf pour rajouter une ligne
include (nano /etc/bind/named.conf) :

include /etc/bind/rndc.key ;

Dimitri MICHINEAU | BTS SIO SISR

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 RSEAU
} ;
file /etc/bind/mondomaine.fr.hosts ;
allow-transfer { 192.168.1.10 ; } ;
} ;

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 dditer 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 ;
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.50 192.168.2.100
# Plage dadresses DHCP
option domain-name-servers dns.mondomaine.fr ;
option domain-name mondomaine.fr;
option routers 192.168.2.254 ;
# Adresse de la passerelle
option broadcast-address 192.168.2.255 ; # Adresse de broadcast
default-lease-time 600 ;
max-lease-time 7200 ;
ddns-domainname mondomaine.fr ;
ddns-rev-domainname in-addr.arpa ;
}

V.
VI.

Sur le serveur DNS primaire, il faut ensuite modifier les droits sur les fichiers de zones (chmod
R 755 /etc/bind)
Toujours sur le serveur DNS, il faut rajouter les lignes suivantes dans le fichier
named.conf.option (nano /etc/bind/named.conf.option) :

VII.
VIII.

Redmarrer le service DNS sur les deux serveurs DNS (/etc/init.d/dns restart)
Redmarrer le service DHCP sur le serveur DHCP (/etc/init.d/isc-dhcp-server restart)

Dimitri MICHINEAU | BTS SIO SISR

controls {
inet 192.16.2.20 ports 953 allow {192.168.2.20 ; 192.168.2.30 ;} keys {
rndc-key;};
};

Les enregistrements DNS :


Il existe plusieurs types denregistrements (liste non-exhaustive) :

A
:
Associe une adresse IP un nom dhte dans une zone primaire (IPV4)
AAAA
:
Associe une adresse IP un nom dhte dans une zone primaire (IPV6)
CNAME
:
Cr un alias dun enregistrement de type A existant
NS
:
Dfini les serveurs, il doit pointer vers un enregistrement de type A
MX
:
Dfini sur quel serveur doit tre envoy les mails, il doit pointer vers un
enregistrement de type A
PTR
:
Associe une adresse IP un nom dhte dans une zone inverse
TXT
:
Fournie des informations en format texte brut des sources extrieures au domaine,
les informations envoyes sont directement exploitables par un ordinateur ou une personne et elle peuvent
servir diffrents objectifs (Google sen sert par exemple pour valider la proprit dun domaine et mettre en
uvre des scurit de messagerie)

Dimitri MICHINEAU | BTS SIO SISR