Vous êtes sur la page 1sur 51

CHAPITRE 4

La couche Application
D N S

Domaine Name System


Protocole de rsolution de nom

Introduction
Le rseau Internet est constitu de rseaux de rseaux (des millions
dhtes connectes entre elles).
La technologie de base utilise sur Internet est TCP/IP.
TCP/IP permet laccs aux Htes par leurs adresses IP, mais il est
pratiquement impossible aux humains de retenir toutes les adresses
IP des machines auxquelles ils veulent accder.
Il est plus facile de retenir le nom dune machine que ladresse IP.
Cest pour cela il faut btir un systme qui permet de dfinir un
mcanisme standard pour :
Le nommage des machines.
Trouver la correspondance entre ladresse IP dune machine avec
son nom et vise versa.

Historique
Au dpart il existait un nombre de machines restreins ( sur
Internet ou dans les rseaux locaux )
La solution tait dutiliser un fichier sur chaque machine
Ce fichier contient la liste des machines du rseau avec leur
adresse IP ( sous Linux /etc/hosts et sous Windows
C:\WINDOWS\system32\drivers\etc\hosts )
Exemple de fichier hosts :

192.168.0.1

machine1.esi.dz

machine1

192.168.0.2

machine2.esi.dz

machine2

Par exemple, lorsquon excute la commande ping machine1, la


commande demande de rcuprer ladresse de la machine partir du
fichier puis la commande sexcute.
3

Problmes lis au fichier /etc/hosts


Cette solution :
posent le problme de la mise jours du fichiers : chaque
ajout ou suppression dune machine il faut mettre jour les
fichiers sur toutes les machines.
Si le nombre de machine est trs grand , la maintenance du
fichier devient pratiquement impossible.
ne garantie pas lunicit des noms de machines .
Cest pour cela le systme DNS ( Domain Name System )
t propos en 1984.

Rle et Principe du D N S
Le rle principal du systme DNS est :
Didentifier un machine par un nom reprsentatif et unique.
De faire les correspondances :
Nom machine @ IP machine
@IP machine Nom machine
Lide de base est de garder le mme principe du fichier
/etc/hosts , mais ce fichier sera clater en plusieurs fichiers de
taille infrieur pour une gestion plus facile.
Aussi , les fichiers ne sont plus grs par les machines eux mme ,
mais par des serveurs ddis.

Principe gnral du DNS


Serveur 2

Serveur 3

Serveur 1

M1

Si la machine M1 veut avoir


ladresse de la machine M2 ,
elle contacte le serveur 1 en premier.
Se dernier va vrifier dans son fichier et
Ne trouve pas ladresse de la machine M2.
Alors il contacte le serveur 2 puis
le serveur 3 pour avoir le rsultat.

M2

Architecture du systme DNS


Le systme DNS est fonctionne selon le modle Client/serveur.
Le Client DNS met une requte au serveur DNS pour chercher
ladresse IP dune machine ou le nom dune machine.
Une machine client doit connatre au moins un serveur DNS
Le serveur DNS :
Chaque serveur de nom ( serveur DNS ) gre sa propre base
de donnes ( fichier ) il ne connait quune partie de
lespace de nom des machines .
Son rle est de rpondre aux diffrentes requtes des clients
La rponse est soit directe ( si le serveur contient
linformation ) ou en contactant dautres serveurs de noms

Convention de nommage des machines

Dans le systme DNS chque machine possede un nom .


Squence de labels spars par des points
label au maximum 63 caractres
nom au maximum 255 caractres
insensible la casse
Exemple :

www.esi.dz
ftp.esi.dz
www.emp.edu.dz
ftp.redhat.com

Le DNS utilise une organisation hirarchique pour bien grer les nom des
machines
8

Organisation de lespace de nom du DNS


Le DNS est un systme hirarchique ( Arborescence)
Il commence par un nud racine not .
Chaque noeud est responsable de ses donnes

arpa

com
cisco

www
www

edu

gov

org

dz
esi

ftp

Organisation de lespace de nom du DNS


Une base de donne est associe chaque nud ( serveur )
Lensemble de ces bases de donnes constitue le DNS
Chaque nud dtiens :
Les informations permettant de retrouver les noeuds fils
Les informations propre au noeud : liste des machines
La gestion de chaque noeud peut tre effectue par des entits
diffrentes.
Chaque nud reprsente un domaine .

10

Dfinition dun domaine


Lespace de nom est divis en domaine.
Un domaine est la partie de larborescence partir du nud
portant son nom.
Un sous domaine est un domaine inclut dans un autre.
Par exemple, le domaine dz est larborescence partir du
nud dz et esi.dz est un sous domaine du domaine dz.

11

Exemple : le domaine dz divis en plusieurs sous-domaines


Domaine .dz

com

dz

org

esi.dz

usthb.dz

ina
www
Sous domaine
usthb.dz

Sous domaine
ina.dz

Sous domaine
esi.dz

ftp

Le domaine usthb.dz divis en plusieurs sous


domaines
dz
domaine
usthb.dz

= dlgation

usthb

de

de.usthb.dz

rectorat

rectorat.usthb.dz

cs

cs.usthb.dz

me

me.usthb.dz

Prcision du nom dune machine


Le nom dune machine est exprim partir de la racine jusqu'au
nom relative du domaine au quelle elle appartien.
Ce nom complet sappel FQDN : Fully Qualiffied Domain Name.

www.esi.dz.

14

Unicit des noms de machines


Il nexiste pas dans le systme DNS deux nuds du
mme niveau qui porte le mme nom

dz

esi

usthb

ina
mail

www
mail.esi.dz

mail
mail.usthb.dz

Domaines existant
Les domaines du premier niveau ou Top Level Domain(TLD)
Deux grande catgories : gTLD et ccTLD
Gnriques internationaux (gTLD) en trois lettres
.com : organisations commerciales ; (ex: ibm.com)
.edu : organisations concernant leducation ; (ex: mit.edu)
.gov : organisations gouvernementales ; (ex: nsf.gov)
.mil : organisations militaires ; (ex: army.mil)
.net : organisations rseau Internet ; (ex: worldnet.net )
.org : organisations non commerciales ; (ex: icann.org)
Liste des domaines gnriques et de leur registre associ sur le
site: www.iana.org/gtld/gtld.htm
Des nouveaux domaines(.aero, .biz, .coop, .info, .museum,
.name, .pro , firm, store, web, arts, rec, info, nom,).
16

Les domaines ccTLD


Par pays (ou Country Code) en deux lettres :

.dz : Algrie
.fr : France
.us : USA
.jp : Japon
.ma : Maroc
.tn : Tunisie

Liste des ccTLD sur le site : www.icann.org/cctlds

17

Les DNS racine


Les serveurs racine grent les domaines TLD .
Il existe un nombre restreint de serveurs racine au tour du monde
Il existe 13 serveurs not [A..M] , rpartie a travr le monde.

Les DNS racine


Contenu du fichier named.ca ( ce fichier existe au
niveau de chaque serveur DNS )
A.ROOT-SERVERS.NET.

3600000

198.41.0.4

B.ROOT-SERVERS.NET.

3600000

192.228.79.201

C.ROOT-SERVERS.NET.

3600000

192.33.4.12

D.ROOT-SERVERS.NET.

3600000

128.8.10.90

E.ROOT-SERVERS.NET.

3600000

192.203.230.10

F.ROOT-SERVERS.NET.

3600000

192.5.5.241

G.ROOT-SERVERS.NET.

3600000

192.112.36.4

H.ROOT-SERVERS.NET.

3600000

128.63.2.53

I.ROOT-SERVERS.NET.

3600000

192.36.148.17

192.58.128.30

J.ROOT-SERVERS.NET.

3600000

K.ROOT-SERVERS.NET.

3600000

193.0.14.129

L.ROOT-SERVERS.NET.

3600000

198.32.64.12

M.ROOT-SERVERS.NET.

3600000

202.12.27.33

Responsabilit administratif
ICANN (Internet Corporation for Assigned Names and
Numbers) gre les TLD .
Chaque organisation gre son sous domaine avec son propre
serveur DNS .
Chaque domaine a au moins un serveur dautorit.
Ce serveur dautorit contient la base complte des machines
qui existe dans ce domaine.

20

Responsabilit administratif : exemple


Chaque domaine est gr par un organisme part
Ex : le domaine .dz est gr par le CERIST .
La gestion des sous domaine peuvent tre dlgu dautres organismes
Ex : le sous domaine esi.dz est gr par lESI.

dz
Sous domaine
esi.dz

org

edu

mil

com

gr par lESI

Dfinition dune Zone


Une Zone est la base de donnes associe un nud. Elle
comporte :
Noms/Adresses des serveurs du domaine lui mme
Noms/Adresses des machines de ce domaine
La liste des serveurs des sous domaines
Lexemple suivant montre un extrait des fichiers de zone :
dun serveur racine ,
dun serveur responsable du domaine dz
dun serveur responsable du domaine esi.dz .

22

Exemple de fichier de zone pour un serveur racine


(exemple le serveur M.ROOT-SERVERS.NET. ayant ladresse 202.12.27.33)
DZ.
NS
DZ.
NS
DZ.
NS
DZ.
NS
CASBAH.ELDJAZAIR.NET.DZ.
DECST.CERIST.DZ.
A

CASBAH.ELDJAZAIR.NET.DZ.
DECST.CERIST.DZ.
NS3.NIC.FR.
NS-DZ.RIPE.NET.
193.194.81.45
193.194.64.11

Exemple de fichier de zone pour le domaine .dz


(le serveur DECST.CERIST.DZ. ayant ladresse
193.194.64.11)
esi.dz.
esi.dz.
usthb.dz.
umbb.dz.
ns.esi.dz.
ns.usthb.dz.
ns.umbb.dz.

NS
NS

ns.esi.dz.
ns1.esi.dz.
NS
ns.usthb.dz.
NS
ns.umbb.dz.
A
193.194.77.227
A
193.194.77.200
A
193.194.64.45

Exemple de fichier de zone pour le domaine esi.dz


(le serveur ns.esi.dz. ayant ladresse
193.194.77.227)

ns.esi.dz.
poste2.esi.dz.
poste3.esi.dz.
ftp
mail
www

IN
IN
IN
IN
IN
IN
IN

NS
ns.esi.dz
A
193.194.77.227
A
12.42.112.243
A
12.42.112.244
CNAME
poste2.esi.dz
CNAME
poste3.esidz
CNAME
poste3.esi.dz.

23

Les enregistrements dun serveur de nom


Ressource Records (RR)

UNE ligne dans un fichier de configuration de ZONE peut tre :


Zone IN SOA : Autorit pour une zone
Host IN NS Serveur : nom du serveur de nom luis mme
Host IN A Adresse : adresse IP dune machine
nomdomain IN MX pref Host : nom du serveur de messagerie
Alias IN CNAME
Adresse IN PTR

Host : alias d une machine


Host : pointeur adresse

Lenregistrement : NS
Indique une dlgation pour la gestion du nom donn.
Lenregistrement NS peut tre rpter autant de fois qu'il y a de
serveurs pour le domaine ou les sous domaine.
Dans lexemple suivant, les trois serveurs ns.linux.dz,
ns1.linux.dz et ns2.linux.dz servent le domaine linux.dz.
Exemple :
linux.dz

IN

NS

ns.linux.dz.

IN

NS

ns1.linux.dz.

IN

NS

ns2.linux.dz.

Enregistrement de type: A
Indique ladresse IPv4 dune machine donne. Cet enregistrement
la forme suivante :
[hostname] IN A
@IP
hostname : Peut tre relatif au domaine courant ou compltement
qualifi (si termin par un point .)
Exemple:
ns.linux.dz.
Poste2.linux.dz.
Poste3.linux.dz.

IN
IN
IN

A
A
A

12.42.112.242
12.42.112.243
12.42.112.244

Enregistrement de type: AAAA


Pour les machine qui possdent des adresses IPv6.
Cela necessitent la prise en compte par le serveur DNS ( pour named
partir de la version 9 )
Exemple :
Posteipv6.linux.dz. IN A 157.159.100.3
IN AAAA 2001:660:3203:1000:203:e3ff:fe53:2891

27

Enregistrement de type: CNAME


Indique quun nom donn est un alias vers un autre nom.
Cest utile, pour faire apparaitre la machine avec plusieurs noms.
La forme gnrale de cet enregistrement est :
aliasname IN CNAME [host]
Exemple:
ftp
mail
www

IN CNAME
poste2.linux.dz
IN CNAME
poste3.linux.dz
IN CNAME
poste3.linux.dz.

Types de Configuration dun serveur DNS


Un serveur DNS peut tre configur en tant que :
Serveur primaire : origine des infos d une zone, c est le SOA
( Start of Authority)

Serveur secondaire : Souvent pour un domaine on utilise deux


serveurs DNS : un serveur primaire (matre) et des serveurs
secondaires (esclaves). Les serveurs secondaires se synchronisent
avec le primaire (ils comportent la mme base de donnes) A
chaque modification de la base de donnes du primaire, le
secondaire la rcupre dune faon automatique.
Serveur cache : rcupre la liste des serveurs autorits d une
zone. N est pas autorit sur la zone.

Serveur DNS primaire et secondaire


Le serveur secondaire , contacte priodiquement le serveur primaire
pour vrifier si le fichier de zone t mis jours ou non
Sil y a un changement , le secondaire rcupre le nouveau fichier et mis
jours son fichier .

Attend les requtes sur le port 53 en:


UDP: les requtes de recherche
TCP: transfert de zone par les serveurs secondaire
.
30

Processus de rsolution du nom dune machine


comment trouver ladresse dune machine ?
Le client peut interroger le serveur DNS pour avoir diffrents
types de ressources : SOA, NS, A, AAAA, CNAME, MX,
PTR.

Le client doit connaitre aux moins un serveur de nom


(gnralement un serveur local).

Le serveur DNS local connait les adresses des serveurs racine.


Cest le client qui dclenche le processus de rsolution de nom
(recherche de ladresse IP par exemple).
31

Internaute
@ip?? De www.esi.dz.

www.esi.dz
@
Ip
??

@IP de serveur DNS

DNS

racine

dz.

193.194.64.11

1
@IP www.esi.dz.

3
@ip?? De www.esi.dz.
4

@IP de serveur DNS 193.194.77.227

Serveu
r DNS
dz.

com.

us.

esi.dz.

6
@ip?? De www.esi.dz.
Serveur
DNS
local

Serveur

7
@IP www.esi.dz.
193.194.77.196
ww
w

Serveur
DNS
Esi.dz

ftp

usthb.dz
cta.dz.

ma
il

Voici lexplication des tapes prsentes dans le schma :


1. Le Client contacter son serveur DNS local pour lui demander de rechercher
ladresse IP de la machine www.esi.dz.
2. Ce dernier consulte a base de donnes, pour rcuprer ladresse IP dun des
serveurs racine. Il lui envoi une requte dinterrogation du type NS pour rcuprer
ladresse IP du serveur DNS responsables du domaine dz.
3. Le serveur racine luis envoi la liste des serveurs responsables du domaine dz.
4. Le serveur local, contacte lun des serveurs responsables domaine dz en envoyant
une requte de type NS pour lui demander ladresse IP du serveur DNS
responsable du domaine esi.dz.
5. Le serveur responsable du domaine dz renvoi la liste des serveurs DNS responsable
du domaine esi.dz
6. Le serveur local envoi une requte du type A , un des serveurs responsables du
domaine esi.dz.
7. Le serveur responsable du domaine esi.dz, consule son fichier de zone, sil trouve
la machine www.esi.dz alors il renvoi ladresse IP associe cette machine.
8. Le serveur local renvoi le rsultat au client , alors le client peut maintenant accder
la page web .

33

Remarque
Cest le mme processus de rsolution quelques que soit le
type de la ressource recherche.
Avec la commande nslookup , on peut interroger un serveur
DNS en interactive.
La commande dig permet de rcuprer des informations sur la
zone dun serveur de nom.

34

Amlioration du processus de rsolution


Utilisation dun mcanisme de cache dans le serveur local
pour limiter le nombre dinterrogations.
Aprs chaque requte de rsolution , le serveur sauvegarde le
rsultat dans sont cache.
Chaque rsultat possde une dure de vie limite TTL(Time
To Live) spcifi dans les rponses
Lutilisation dun cache vite la surcharge du rseau , diminue
les dlais de rponse et baisse la charge des serveurs de haut
niveau

35

Rsolution inverse

La rsolution inverse consiste trouver le nom dune machine partir de


son adresse IP.
Ce type de rsolution est utilis pour lauthentification de la machine
(pour sassurer que ladresse IP est bien associe une machine bien
connue).
Comme les noms des machines, les adresses IP doivent tre bien
organises.
Pour cela, un domaine TLD particulier arpa. a t dfini.
Ce domaine possde deux sous domaines
arpa.in-addr pour les adresses IPV4
arpa.ip6 pour les adresses IPV6
Chaque octet de ladresse IPv4 est vue comme un sous domaine ( On
obtient 4 sous domaines avec 255 nuds dans chaque domaine).
Les feuilles de larborescence reprsentent les machines.
36

Le domaine in-addr.arpa
adresse IP 15.16.192.152

arpa
in-addr

255

15
255

16

255

192

152
machine mail.esi.dz

Exemple
Soit la machine qui possde ladresse 15.16.192.152.
En renversant ladresse elle devient
152.192.16.15.in-addr.arpa.
Le processus de rsolution utilis pour rechercher le
nom dune machine est le mme que celui utiliser
pour rechercher ladresse IP.
Une requte de type PTR est utilise.

38

Enregistrement de type: PTR

Pour spcifier la conversion dadresses IP en noms dhtes lenregistrement du


type PTR est utilis. La forma gnrale est la suivante :
Name
IN
PTR
host

Exemple :

Par exemple dans le domaine inverse 192.16.15.in-addr.arpa. La correspondance


inverse est reprsente sous la forme
242

IN

243

IN

244

IN

PTR
PTR
PTR

ns.esi.dz.
poste2.esi.dz.
mail.esi.dz.

La relation entre u serveur de messagerie et le DNS

Un serveur de messagerie ( un MTA : Mail Transfert Agent ) a besoin du


serveur de noms pour transformer le nom de la machine distante en adresse
IP .

Le champ RR (``Resource Record'') correspondant est du type MX (``Mail


Exchanger'').
Il spcifie une liste d'htes pondrs par des prfrences, qui on peut
envoyer du courrier.
Une pondration indique l'ordre suivre pour les tentatives de connexions .

Exemple :
linux.dz.

IN
IN

MX
MX

10
20

mail.linux.dz.
poste3.linux.dz.
40

La relation entre u serveur de messagerie et le DNS


Dans cette exemple le serveur de messagerie contacte le DNS pour avoir La
liste des serveur DNS responsable du domaine D.
Le serveur DNS lui renvois une liste de 3 serevurs

41

Configuration du client DNS :


le fichier /etc/resolv.conf
Spcifie les serveurs DNS contacter et leur ordre lors de la
rsolution de noms
domain esi.dz
search esi.dz
nameserver 12.42.112.242
nameserver 12.42.112.241
@ 12.42.112.241 deuxime serveur DNS contacter
@ 12.42.112.242 premier serveur DNS contacter
Si on cherche la rsolution dun nom machine poste alors la
requte sera destine aux 2 serveur comme poste.esi.dz

Configuration dun serveur de nom


Le serveur BIND sous Linux:
Berkeley Internet Name Daemon

Dmon,Port,Protocle et RFC
Le dmon DNS sous Linux est appel named
Attend les requtes sur le port 53 en:
UDP: les requtes de rsolution
TCP: transfert de zone par les serveurs secondaire .
RFC: 1034,1035

Configurer un serveur DNS primaire

Vous avez achet un nom de domaine (linux.dz) et vous


souhaitez hberger votre DNS primaire ?
Il faut configurer un serveur primaire pour votre domaine
Il faut aussi configurer un serveur secondaire.
Donner l'organisme auquel vous avez achet votre domaine
l'adresse IP de votre serveur primaire ainsi que ladresse de votre
serveur secondaire .
Pour notre exemple , on suppose que ldrresse IP du primaire :
12.42.112.242 et celle du secondaire est 12.42.112.241

Les fichiers de configuration


named.conf
Un fichier de configuration qui dcrit la nature des zones et
lemplacement des fichiers zone
named.ca
Contient les noms et adresses des serveurs de domaine racine
dInternet
Les donnes du fichier named.ca permettent dinitialiser les
tampons du cache chaque dmarrage du dmon named
Les serveurs root dInternet connaissent les serveurs de nom
ayant autorit sur tous les domaines racine ( .fr .dz .ca .)

Configurer un serveur DNS primaire

Au niveau du serveur primaire , effecuter la modification de


named.conf i.e. rajout des lignes suivantes :
zone "linux.dz" IN{
type master;
file " linux.dz.zone";
};

linux.dz le nom de domaine de votre serveur primaire,


linux.dz.zone : est le fichier qui contient les corespondance
IP/NOM ( base de donnes du primaire ) . Il faut le crer dans
/var/named/linux.dz.zone

Exemple de fichier de zone pour la zone linux.dz

Le fichier linux.dz.zone

$TTL

86400

$ORIGIN linux.dz.
@

IN SOA ns.linux.dz. root.linux.dz (


1 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire

ns.linux.dz.
poste2
poste3
ftp
mail
www

1D) ; Minimum TTL


IN
NS
ns.linux.dz
IN A
12.42.112.242
IN A
12.42.112.243
IN A
12.42.112.244
IN
CNAME
poste2.linux.dz
IN
CNAME
poste3.linux.dz
IN
CNAME
poste3.linux.dz.

Configuration de la rsolution inverse


Pour permettre la rsolution inverse , il faut modifier dans le
fichier de configuration named.conf

zone 112.42.12.in-addr.arpa" {
type master;
file "linux.dz.rev";
};

Exemple du fichier de zone inverse

Le fchier :linux.dz.rev

$TTL 86400
$ORIGIN linux.dz.
@
IN SOA ns.linux.dz. root.linux.dz (
1 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D) ; Minimum TTL
IN
NS
ns.linux.dz.
242
243
244

IN
IN
IN

PTR
PTR
PTR

ns.linux.dz.
poste2.linux.dz.
poste3.linux.dz.

Configurer un serveur secondaire


Au niveau serveur secondaire , effecuter la modification suivante dans
named.conf i.e. rajout des lignes suivantes :
zone "linux.dz" IN{
type slave;
file "linux.dz.zone";
masters { 12.42.112.242; };
};
o :
linux.dz le nom de domaine de votre serveur primaire,
linux.dz.zone dsigne le fichier qui sera transfr automatiquement depuis le
serveur DNS primaire
12.42.112.242 est l'adresses IP du serveur primaire de la zone.
Dmarer le service named , il va faire le transfert de la zone ( le fichier )
partir du serveur primaire .