D N S
DomainName System
CHAPITRE
La couche Application
2.
Introduction
•L’Internet est constituéde réseaux de réseaux (des millions de hôtes connectés).
•La technologie de base utilisée est celle de (TCP/IP)
• TCP/IP permet l’accès aux Hôtes par leur adresse IP.
•Il est pratiquement impossible aux humains de retenir toutes les adresses (IP) des
machines auxquelles ils veulent accéder.
•Il est plus facile de retenir le nom que l’adresse IP.
•C’est pour cela il faut bâtir un système qui permet :
•De définir un mécanisme standard pour le nommage des machines.
•De définir un mécanisme qui permet de trouver la correspondance entre l’adresse
IP d’une machine avec son nom et vise versa.
3.
Historique
• Au départil existait un nombre de machines restreins ( dans
un Internet ou dans les réseaux locaux )
• La solution était d’utiliser un fichier sur chaque machine
• Ce fichier contient la liste des machines du réseau avec leur
adresse IP ( sous Linux /etc/hosts et sous Windows C:
WINDOWSsystem32driversetchosts )
• Exemple :
192.168.0.1 machine1.esi.dz machine1
192.168.0.2 machine2.esi.dz machine2
3
4.
Problèmes liés aufichier /etc/hosts
• Cette solution :
– posent le problème de la mise à jours du fichiers : à chaque
ajout ou suppression d’une machine il faut mettre à jour les
fichiers sur toutes la machines.
– ne garantie pas l’unicité des nom de machines .
– Si le nombre de machine est très grand , la maintenance du
fichier devient pratiquement impossible.
• C’est pour cela le système DNS ( Domain Name System ) à
été proposé en 1984.
5.
Rôle et Principedu D N S
• Le rôle principal du système DNS est :
• D’identifier un machine par un nom représentatif et unique.
• De faire les correspondances :
Nom machine @ IP machine
@IP machine Nom machine
• L’idée de base est de garder le même principe du fichier
/etc/hosts , mais ce fichier sera éclater en plusieurs fichiers de
taille inférieur pour une gestion plus facile.
• Les fichiers ne sont pas gérés par les machines eux même , mais
par des serveurs dédiés.
6.
D N S: Architecture Client/Serveur
• Le Client DNS émet une requête au serveur DNS pour chercher
l’adresse IP d’une machine .
• Le serveur DNS :
– Chaque serveur de nom ( serveur DNS ) gère sa propre base
de données ( fichier ) il ne connait q’une partie de l’espace
de nom des machines .
– Son rôle est de répondre aux différentes requêtes des clients
– La réponse est soit directe ( si le serveur contient
l’information ) ou en contactant d’autres serveurs de noms
7.
Organisation de l’espacede nom du DNS
“”
arpa com edu gov org dz
• Le DNS est un système hiérarchique ( Arborescence)
• Il commence par un nœud racine noté « . »
• Chaque noeud est responsable de ses données
8.
DNS est unsystème distribué
• Une base de donnée est associée à chaque noeud
• L’ensemble de ces bases de données constitue le DNS
• Chaque nœud détiens :
– Les informations permettant de retrouver les noeuds fils
– Les informations propre au noeud : liste des machines
• La gestion de chaque noeud peut être effectuée par des entités
différentes.
• Chaque nœud représente un domaine .
8
9.
Définition d’un domaineet d’une zone
• L’espace de nom est divisé en domaine .
• C’est quoi un domaine ?
– Un domaine est la partie de l’arborescence à partir du
noeud portant son nom
Exemple: domaine dz : arborescence à partir du noeud dz
– Un sous domaine est un domaine inclut dans un autre
Exemple: esi.dz est un sous domaine du domaine dz
• C’est quoi une Zone ?
– C’est la base de donnée associée à un nœud
• Contenu des bases de donnée associées aux zones
– Noms/Adresses des serveurs de la zone
– Noms/Adresses des machines de ce domaine
9
10.
Exemple de domaineet de zone
Le domaine dz divisé en zones
com org
dz
Zone
dz
usthb
esi
ina
zone usthb.dz Zone esi.dz
Zone umbb.dz
www ftp
Domaine .dz
11.
Convention de nomagedes machine
• Séquence de labels séparés par des points
• label au maximum 63 caractères
• nom au maximum 255 caractères
• insensible à la casse
• Exemple :
– www.esi.dz
– mail.esi.dz
– www.emp.edu.dz
– ftp.redhat.com
11
dz
esi usthb
ina
mail wwwmail
mail.usthb.dz
mail.esi.dz
Unicité des noms de machines
Il n’existe pas deux nœuds du même niveau qui porte le même nom
14.
Domaines existant
• Lesdomaines du premier niveau ou Top Level Domain(TLD)
•Deux grande catégories : gTLD et ccTLD
• Génériques internationaux (gTLD) en trois lettres
–.com : organisations commerciales ; (ex: ibm.com)
– .edu : organisations concernant l’education ; (ex: mit.edu)
– .gov : organisations gouvernementales ; (ex: nsf.gov)
– .mil : organisations militaires ; (ex: army.mil)
– .net : organisations réseau Internet ; (ex: worldnet.net )
– .org : organisations non commerciales ; (ex: icann.org)
– .int : organisations internationales ; (ex: nato.int )
– .arpa : domaine reservé à la résolution de nom inversée
•Liste des domaines génériques 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,…). 14
15.
Les domaines ccTLD
•Par pays (ou Country Code, ccTLD) en deux lettres :
– .dz : Algérie
– .fr : France
– .us : USA
– .jp : Japon
– .ma : Maroc
– .tn : Tunisie
• Liste des ccTLD sur le site : www.icann.org/cctlds
15
16.
Les DNS racine
•Lesserveurs racine gèrent les domaines TLD .
•Il existe un nombre restreint de serveurs racine au tour du monde
• Il existe 13 serveurs noté [A..M] , répartie a travèr le monde.
17.
Délégation d’un sousdomaine
géré par l’ESI
“”
dz org mil
edu com
Zone
esi.dz
•Chaque domaine est géré par un organisme à part
•Ex : le domaine .dz est géré par le CERIST .
•La gestion des sous domaine peuvent être délégué à d’autres organismes
•Ex : le sous domaine esi.dz est géré par l’ESI.
18.
Le domaine esi.dzdivisé en zones
= délégation
“”
zone
esi.dz
dz
esi
de dg cs pg
zone zone zone zone
de.esi.dz dg.esi.dz cs.esi.dz pg.esi.dz
19.
Responsabilité administratif
• ICANN(Internet Corporation for Assigned Names and Numbers) gére les
TLD .
• Chaque organisation gère sont sous domaine avec sont propre serveur DNS
• Chaque zone a au moins un serveur d’autorité .
• Ce serveur d’autorité contient la base complète de la zone
• Mais , souvent une zone a deux serveurs autorités : un serveur primaire
(maître) et des serveurs secondaires (esclaves) .
• Les serveurs secondaires se synchronisent avec le primaire ( il comportent
la même base de données ).
• Le serveur secondaire prend le relais si le serveur primaire tombe en
panne.
19
20.
Résolution du nomd’une machine
• Hypothèses :
• Le client doit connaitre aux moins un serveur de nom
( généralement un serveur local ).
• Le serveur DNS local connait les adresses des serveurs
racine .
• Le client déclenche le processus de résolution de nom
( recherche de l’adresse IP ).
20
21.
www.esi.dz
Serveur
DNS local
Internaute
Serveur DNSracine
.
@ip?? De www.esi.dz.
.
us. com.
Serveur
DNS dz.
@IP de serveur DNS dz
dz.
.
@ip?? De www.esi.dz.
Serveur DNS
Esi.dz
@IP de serveur DNS
esi.dz.
esi.dz.
@ip?? De www.esi.dz.
.
www ftp mail
@IP
www.esi.dz.
www.esi.dz.
@IP www.esi.dz.
@
Ip
??
usthb.dz
cta.dz.
1
2 3
4
5
6
7
8
22.
Amélioration du processusde résolution
• Utilisation d’un mécanisme de cache dans le serveur “local”
pour limiter le nombre d’interrogations.
• Après chaque requête de résolution , le serveur sauvegarde le
résultat dans sont cache.
• Chaque résultat possède une durée de vie limitée TTL(Time
Ti Live) spécifié dans les réponses
• L’utilisation d’un cache évite la surcharge du réseau , diminue
les délais de réponse et baisse la charge des serveurs de haut
niveau
22
23.
Résolution inverse
• Trouverle nom d’une machine à partir à partir de son l’adresse IP.
• Utiliser pour l’authentification ( pour s’assurer que l’adresse IP est bien
associé à une machine bien connue )
• C’est le même principe utilisé pour les noms.
• Chaque octet de l’adresse IP est vue comme un sous domaine
• Un domaine TLD particulier : arpa
• Sous domaines
– in-addr pour les adresses IPV4
– ip6 pour les adresses IPV6
• Exemple:
Soit la machine qui possède l’adresse 15.16.192.152
En renversant l’adresse elle devient 152.192.16.15.in-addr.arpa.
• Le processus de résolution utilisé est le même que celui des nom
23
25
Les zones DNS
Unezone de noms ou zone DNS est un ensemble
d'enregistrements de ressources appartenant à la même
portion de l'espace de noms DNS.
Enregistrements de ressources
Un enregistrement de ressource est une structure de
base de données DNS standard qui contient des
informations utilisées pour traiter les requêtes DNS
A : Les enregistrements de ressources A (pour Adresse
d'hôte) sont des mappage entre un nom d'hôte et une
adresse IPv4
PTR : les enregistrements de ressources de type PTR
(PoinTeR ou pointeur) sont des mappages entre une
adresse IP et un nom d'hôte
26.
26
SOA : lesenregistrements de ressources de type SOA
(Start Of Authority) contiennent le nom d'hôte et
l'adresse IP du serveur DNS qui héberge actuellement
la zone DNS principale. Il y a un seul enregistrement
SOA par zone DNS. C'est le premier enregistrement
crée dans une zone DNS.
SRV : les enregistrements de type SRV (service)
permettent de mapper un nom d'hôte à un type de
service donné. Ainsi les enregistrements SRV peuvent
permettre de retrouver la liste des serveurs HTTP ou
bien encore des contrôleurs de domaines. Il est
possible de donner une priorité différente à chaque
enregistrement SRV.
27.
27
NS :les enregistrements de ressources de type NS
(Name Server ou serveur de nom) identifient les
serveurs DNS de la zone DNS. Ils sont utilisés dans le
cadre de la délégation DNS.
MX : les enregistrements de ressources de type MX
(Mail eXchanger) identifient les serveurs de
messageries.
CNAME : les enregistrement de ressources de type
CNAME (Canonical NAME ou nom canonique) sont des
mappages entre un nom d'hôte et un autre nom
d'hôte. Ils permettent de créer des alias pour un nom
d'hôte donné (c'est-à-dire d'associer plusieurs noms
d'hôte à une même machine).
28.
28
2. Les différentstypes de zones DNS
a) Les zones principales
Peuvent ajouter, modifier et supprimer des
enregistrements de ressource.
29.
29
b) Les zonessecondaires
Sont des copies en lecture seule d'une zone
principale donnée. Un serveur DNS qui héberge
une zone secondaire ne peut pas ajouter ni
modifier d'enregistrements de ressource. Les
zones secondaires ont donc pour seul intérêt
de garantir une tolérance aux pannes.
30.
30
c) Les zonesde stub
Sont des copies partielles d'une autre zone.
Elles contiennent uniquement les
enregistrements de ressource de types SOA,
NS et A.
31.
31
d) Les zonesDNS intégrées à Active
Directory :
Stockent les enregistrements de ressources
directement dans le service d'annuaire Active
Directory.
32.
32
Transferts de zoneDNS
Un transfert de zone est le transfert total ou
partiel des données d’une zone à partir du
serveur DNS principal qui héberge la zone vers
un serveur DNS secondaire qui héberge une
copie de cette zone.
Lorsque des modifications sont apportées à la
zone sur un serveur DNS principal
Il existe deux types de transferts de zone
DNS :
33.
33
Transfert de zonecomplet est le type de
requête standard pris en charge par tous les
serveurs DNS pour mettre à jour et
synchroniser les données d’une zone lorsque
celle-ci a subi des modifications. Lorsqu’une
requête DNS est effectuée avec le type de
requête AXFR, la réponse est un transfert de
l’intégralité de la zone. Une requête AXFR est
une demande de transfert de zone complet.
34.
34
Transfert de zoneincrémentiel est un autre
type de requête utilisé par certains serveurs
DNS pour mettre à jour et synchroniser les
données d’une zone lorsque celle-ci a subi des
modifications depuis la dernière mise à jour.
Une requête IXFR est une demande de
transfert de zone incrémentiel.
Démon,Port,Protocle et RFC
•Le démon DNS sous Linux est appelé named
• Attend les requêtes sur le port 53 en:
– UDP: les requtes de résolution
– TCP: transfert de zone par les serveurs secondaire .
• RFC: 1034,1035
37.
Types de Configuration
•primaire : origine des infos d ’une zone, c ’est le SOA ( Start of
Authority)
• secondaire : récupère de manière automatique les informations
d ’une zone sur le primaire.
• cache : récupère la liste des serveurs autorités d ’une zone. N ’est
pas autorité sur la zone.
38.
Configurer un serveurDNS primaire
• Vous avez acheté un nom de domaine (linux.dz) et vous
souhaitez héberger 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 l’adresse de votre
serveur secondaire .
• Pour notre exemple , on suppose que l’drresse IP du primaire :
12.42.112.242 et celle du secondaire est 12.42.112.241
39.
Les fichiers deconfiguration
• named.conf
– Un fichier de configuration qui décrit la nature des zones et
l’emplacement des fichiers zone
• named.ca
• Contient les noms et adresses des serveurs de domaine racine
d’Internet
• Les données du fichier named.ca permettent d’initialiser les
tampons du cache à chaque démarrage du démon named
• Les serveurs root d’Internet connaissent les serveurs de nom
ayant autorité sur tous les domaines racine ( .fr .dz .ca ….)
40.
Contenu du fichiernamed.ca
; formerly NS.INTERNIC.NET
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
41.
Configurer un serveurDNS primaire
• Au niveau du serveur primaire , effecuter la odification 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 données du primaire ) . Il faut le créer dans
/var/named/linux.dz.zone
42.
Exemple de fichierde 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
1D) ; Minimum TTL
IN NS ns.linux.dz
ns.linux.dz. IN A 12.42.112.242
poste2 IN A 12.42.112.243
poste3 IN A 12.42.112.244
ftp IN CNAME poste2.linux.dz
mail IN CNAME poste3.linux.dz
www IN CNAME poste3.linux.dz.
43.
• UNE lignedans 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 même
– Host IN A Adresse : adresse IP d’une machine
– nomdomain IN MX pref Host : nom du serveur de messagerie
– Alias IN CNAME Host : alias d ’une machine
– Adresse IN PTR Host : pointeur adresse
Les enregistrements d’un serveur de nom
Ressource Records (RR)
44.
$TTL 86400
$ORIGIN linux.dz.
@IN SOA ns.linux.dz. root.linux.dz (
1 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D) ; Minimum TTL
- SOA (Start of Authority) est l’index de la délégation d'une zone.
- @: représente le nom de la zone courante
- ns.linux.dz.: le nom du serveur primaire pour la zone
L’enregistrement : SOA
45.
L’enregistrement : NS
NS(Name Server) :
•Indique une délégation pour la gestion du nom donné.
•l'enregistrement NS peut être répéter autant de fois qu'il y a de serveurs pour la
zone.
Exemple :
linux.dz IN NS ns.linux.dz.
IN NS ns1.linux.dz.
IN NS ns2.linux.dz.
46.
Enregistrement de type:A
• Syntaxe
[hostname] IN A @IP
• hostname :peut être relatif au domaine courant ou complètement
qualifié (si terminé par un .) ou simplement nom d’un hôte
• IN: Internet
• Exemple:
ns.linux.dz. IN A 12.42.112.242
poste2 IN A 12.42.112.243
poste3 IN A 12.42.112.244
47.
Enregistrement de type:AAAA
• Pour les machine qui possèdent des adresses IPv6.
• Cela necessitent la prise en compte par le serveur DNS ( pour
named à partir de la version 9 )
posteipv6 IN A 157.159.100.3
IN AAAA 2001:660:3203:1000:203:e3ff:fe53:2891
47
48.
Enregistrement de type:CNAME
CNAME (Cannonical Name):
• indique qu’un nom donné est un alias vers un autre nom.
• utile , pour faire aparaitre la machine avec plusieurs noms.
Syntaxe:
aliasname IN CNAME [host]
Exemple:
ftp IN CNAME poste2.linux.dz
mail IN CNAME poste3.linux.dz
www IN CNAME poste3.linux.dz.
49.
Enregistrement de type:MX
(Mail eXchange)
MX = Mail eXchanger
• Identifie le serveur de messagerie pour une zone
• Si plusieurs enregistrements MX sont présents,alors delivrer le courrier vers la
machine ayant le poids associé le plus faible.
Syntaxe :
domainname IN MX preference mx-host
• mx-host : spécifie le nom du serveur de courrier
Exemple :
Linux.dz. IN MX 10 mail.linux.dz.
IN MX 20 poste3.linux.dz.
50.
Configuration de larésolution inverse
• Pour permettre la résolution inverse , il faut modifier dans le
fichier de configuration named.conf
zone “112.42.12.in-addr.arpa" {
type master;
file "linux.dz.rev";
};
51.
Exemple du fichierde 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 IN PTR ns.linux.dz.
243 IN PTR poste2.linux.dz.
244 IN PTR poste3.linux.dz.
52.
Enregistrement de type:PTR
• Sert pour la conversion d’adresses IP en noms d’hôtes ( dans le fichier de la
zone inverse linux.dz.rev)
Syntaxe :
Name IN PTR host
Exemple
242 IN PTR ns.linux.dz.
243 IN PTR poste2.linux.dz.
244 IN PTR poste3.linux.dz.
53.
Configurer un serveursecondaire
• 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 désigne le fichier qui sera transféré automatiquement depuis le
serveur DNS primaire
•12.42.112.242 est l'adresses IP du serveur primaire de la zone.
•Démarer le service named , il va faire le transfert de la zone ( le fichier ) à partir
du serveur primaire .
54.
Configuration du clientDNS :
le fichier /etc/resolv.conf
• Spécifie les serveurs DNS à contacter et leur ordre lors de la
résolution de noms
Domain esi.dz
Search esi.dz
nameserver 12.42.112.242
nameserver 12.42.112.241
• @ 12.42.112.242 deuxième serveur DNS à contacter
• @ 12.42.112.242 premier serveur DNS à contacter
• Si on cherche la résolution d’un nom machine poste alors la
requête sera destinée aux 2 serveur comme poste.esi.dz
55.
Commandes utiles
• Nslookup: interrogation d’un serveur DNS en intercative .
• Dig : récuperer des informations sur la zone d’un serveur de
nom.