0% ont trouvé ce document utile (0 vote)
87 vues14 pages

Comprendre le système DNS en UNIX

Le document décrit le fonctionnement du système DNS (Domain Name System) qui permet la correspondance entre les noms de domaines et les adresses IP. Il explique les concepts clés comme les serveurs DNS, les enregistrements DNS, les requêtes DNS et le cache DNS.

Transféré par

HASSANE A.KARIM
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
87 vues14 pages

Comprendre le système DNS en UNIX

Le document décrit le fonctionnement du système DNS (Domain Name System) qui permet la correspondance entre les noms de domaines et les adresses IP. Il explique les concepts clés comme les serveurs DNS, les enregistrements DNS, les requêtes DNS et le cache DNS.

Transféré par

HASSANE A.KARIM
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ADMINISTRATION UNIX

Le système de nommage d’Internet Domain Name System


DNS

Introduction

Le système DNS (Domain Name System) permet la localisation des noms de domaine
Internet et leur conversion en adresses IP (Internet Protocol). Il établit une correspondance
entre le nom dont les utilisateurs se servent pour localiser un site Web et l'adresse IP par
laquelle un ordinateur identifie ce même site

Implémentation
• JEEVES : première implémentation du DNS (1984)
• BIND (The Berkeley Internet Name Domain) sur BSD Unix
• Interrogation en UDP ou TCP si la taille des paquets dépasse 512 octets
• Echange des bases de données en TCP

Types de service DNS


On trouve deux types de service DNS différents sur Internet. Chacun de ces services traite
différemment les requêtes DNS, selon leurs fonctions.

 Résolveur DNS récursif :


un résolveur DNS récursif est un serveur DNS qui répond à la requête et recherche le
serveur de noms faisant autorité ou un cache de DNS contenant le résultat de la
requête.
 Serveur DNS faisant autorité :
un serveur DNS faisant autorité contient le résultat de la requête DNS. De ce fait, si
vous demandez à un serveur DNS faisant autorité l’une de ses adresses IP, celui-ci n’a
pas besoin d’interroger un autre serveur. Le serveur de noms faisant autorité est
l’autorité finale en ce qui concerne les noms et adresses IP.
 DNS public :
pour qu’un serveur soit accessible sur l’Internet public, il doit avoir un enregistrement
DNS public, et son adresse IP doit être accessible sur Internet.
 DNS privé :
les ordinateurs qui sont derrière un pare-feu ou dans un réseau interne utilisent un
enregistrement DNS privé qui permet aux ordinateurs locaux de les identifier par leur
nom. Les utilisateurs extérieurs, sur Internet, ne pourront pas accéder directement à
ces ordinateurs.

Quels sont les types de requêtes DNS ?

Les requêtes DNS sont le code informatique qui indique aux serveurs DNS la nature de la
requête et les informations qui sont demandées. Une recherche DNS standard peut
correspondre à trois requêtes DNS de base.

 Requête récursive :
dans une requête récursive, l’ordinateur demande une adresse IP ou la confirmation
que le serveur DNS ne connaît pas cette adresse IP.
 Requête itérative :
avec une requête itérative, on demande au serveur DNS la meilleure réponse en sa
possession. Si le serveur DNS n’a pas l’adresse IP, il renverra le serveur de noms
ayant autorité ou le serveur de noms TLD. Le demandeur poursuivra son processus
itératif jusqu’à ce qu’il obtienne une réponse ou que le délai imparti expire.
 Requête non récursive :
un résolveur DNS utilisera cette requête pour trouver une adresse IP qu’il ne détient
pas dans son propre cache. Pour limiter l’utilisation de la bande passante réseau,
celles-ci sont limitées à une seule requête.
Qu’est-ce que le cache DNS + fonctions de mise en cache ?
Le cache DNS est un référentiel de noms de domaine et d’adresses IP stockés sur un
ordinateur, et qui permet de ne pas avoir à demander une adresse IP à chaque fois.
Imaginez si, à chaque fois qu’un utilisateur tentait de se rendre sur www.iat.com, le DNS
devait envoyer une requête aux serveurs de noms ayant autorité pour Iat. Cela générerait un
trafic considérable ! La seule pensée de ce trafic explique le pourquoi de la mise en cache
DNS. La mise en cache DNS répond à deux objectifs majeurs :

 Accélérer les requêtes DNS


 Réduire la bande passante des requêtes DNS sur Interne

Qu'est-ce qu'un enregistrement DNS ?

Les enregistrements DNS (ou fichiers de zone) sont des instructions qui résident dans
des serveurs DNS faisant autorité et fournissent des informations sur un domaine,
notamment quelle adresse IP associée à ce domaine et la manière de traiter les requêtes
pour ce domaine. Ces enregistrements sont constitués d’une série de fichiers textes écrits
dans ce qu'on appelle la syntaxe DNS. La syntaxe DNS est une chaîne de caractères utilisée
comme commandes pour indiquer au serveur DNS ce qu’il doit faire. Tous les
enregistrements DNS sont également dotés d’un « TTL » (Time To Live) qui indique à quelle
fréquence un serveur DNS rafraîchira cet enregistrement.
Quels sont les types d'enregistrement DNS les plus
courants ?

 Enregistrement A - L'enregistrement qui contient l'adresse IP d'un domaine.


 Enregistrement CNAME - Transfère un domaine ou un sous-domaine à un
autre domaine, ne fournit PAS d'adresse IP.
 Enregistrement MX - Dirige le courrier vers un serveur de messagerie.
 Enregistrement TXT - Permet à un administrateur de stocker des notes de
texte dans l'enregistrement.
 Enregistrement NS - Stocke le serveur de noms pour une entrée DNS.
 Enregistrement SOA - Stocke les informations administratives d'un domaine.
 Enregistrement SRV - Spécifie un port pour des services spécifiques.
 Enregistrement PTR - Fournit un nom de domaine dans les recherches
inversées.

Structuration des noms DNS


• Hiérarchique par domaine: www.imag.fr

– Machine www dans le domaine imag lui-même dans le domaine fr


– Analogie avec les noms de fichier/répertoire à l’envers avec le. à la place de /
– On omet en général la racine (le point) : www.imag.fr.
– Les majuscules ne sont pas significatives
Principe de fonctionnement

• Application client/serveur
• Serveur DNS
• Gère la base de données contenant nom/adresse IP des machines du domaine et
nom/adresse IP des serveurs d’un sous-domaine
• Système robuste par redondance: plusieurs serveurs possèdent la base de données d’un
domaine
• Client DNS
– Resolver: permet l’interrogation d’un serveur
– Référence à un serveur DNS par défaut “local”
• Interrogation client vers le serveur local
– Récursive
– Le client attend la réponse finale
• Interrogations serveur à serveur
– Souvent itératives (mais peuvent aussi être récursives)

Interrogations et découpage des zones

• En fait les requêtes successives sur les serveurs sont des requêtes sur le nom complet
– Le serveur répond
» soit par l’adresse IP du nom complet demandé
» soit par la liste des serveurs pouvant y répondre si il ne connait pas l’adresse du nom
complet demandé
• Ceci pour deux raisons
– Les serveurs gérant des zones de «haut niveau» peuvent faire des statistiques,
recherches... sur les requêtes complètes
– Le découpage des zones n’est pas connu par les serveurs DNS
» Par exemple la zone de truc.fr est peut être géré par les serveurs de .fr

Interrogation DNS
• Pour une zone : une liste d’adresse de serveurs
– Répartition des interrogations
– Requêtes successives si défaillance d’un serveur ou du réseau
– Importance de la répartition géographique des serveurs d’une même zone
• Mécanisme de cache dans le serveur “local” pour limiter le nombre d’interrogations
– Evite la surcharge du réseau
– Diminue les délais de réponse
– Baisse la charge des serveurs de haut niveau
• Remplissage du cache lors des requêtes des clients
• Durée de vie limitée dans le cache
– TTL(Time To Live) spécifié dans les réponses.

UDP quand c’est possible, (requêtes courtes) pour des raisons d’efficacité par TCP sinon
(transfert de zones).
Port serveur = 53, port client > 1023
-serveur à serveur UDP : port 53 à 53.
-serveur à serveur tcp : > 1023 à 53
Type de requêtes
Un client interroge un serveur qu’il connait (par exemple le DNS indiqué par le FAI)
Deux types de serveurs
Récursif : s’occupe de trouver une réponse et la transmet au client
Itératif : renvoie le client sur un autre serveur.

• Serveur de messagerie
– Indique les serveurs SMTP à contacter pour envoyer un courriel à un utilisateur d'un
domaine donné
– Dénoté mx (Mail eXchange)
• Interrogation inverse
– Permet de faire une requête inverse : un nom à partir d’une adresse
– Dénoté ptr
• Serveur maître d’un domaine
– Permet de connaître des informations sur le serveur maître d’un domaine
– Dénoté soa (Start Of Autority)

Requêtes récursives, requêtes itératives

Les étapes d’une recherche DNS

L’envoi d’une requête DNS se déroule comme suit :


 Une requête DNS est envoyée lorsque vous essayez de vous connecter à un site
internet quelconque.
 L’ordinateur effectue l’analyse du cache du DNS local. Quand un site est visité, son
adresse se trouve à cet endroit.
 Si l’adresse IP n’est pas dans le cache, le DNS consulte un serveur DNS discursif (de
la zone DNS associée).
 Le serveur DNS récursif a son propre cache. Si ce dernier a un l’adresse IP, il
l’envoie immédiatement.
 Si l’adresse IP n’est pas trouvée, des serveurs de noms TLD peuvent envoyer la
requête DNS dans la bonne direction.
 Les serveurs de noms TLD identifient l’emplacement du serveur de nom gérant le site
recherché. Ce dernier répond avec l’adresse IP demandée. Le serveur DNS récursif
la stocke dans le cache DNS local, avant de l’envoyer à votre ordinateur.
 Le DNS enregistre l’adresse IP dans le cache local, avec une durée de vie prédéfinie
(appelée TTL). Cette durée de validité fixe l’enregistrement de l’adresse IP dans le
cache. Quand celle-ci est expirée, la requête pour le même site suit de nouveau ce
cheminement.
Résolution inverse
• Client
– à travers les fonctions de programmation comme gethostbyname, gethostbyaddr...
– outils associés (host, nslookup...)
• Serveur processus particulier
– Port 53 en TCP ou UDP
– nom: named
• Trouver le nom à partir de l’adresse
• Même principe que 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: 229.38.88.129.in-addr.arpa
Un poste du d´département veut connaitre l’adresse de www.labri.fr
Le poste client interroge un DNS local (172.16.95.6) celui-ci interroge un serveur racine, qui
lui donne l’adresse d’un serveur pour “.fr”.
Il demande à ce serveur l’adresse du DNS pour “labri.fr”
Il demande au DNS du Labri l’adresse de “www.labri.fr”
Il fournit la réponse au client.

Fichiers “système” de configuration DNS côté serveur


• Configuration du processus serveur (Système à l’Unix)
– FreeBSD: /etc/namedb/named.conf
– Unix/solaris/Linux: /etc/named.conf
– Contient la liste des zones gérées par le serveur
» Nom du domaine
» Nom du fichier “base de donnée”
» Type master/slave
– Spécifie l’endroit où se trouvent les fichiers “base de donnée”
– Contient au moins la base de données des serveurs racines
Base de données DNS

A (Address)
C'est l'enregistrement le plus courant. Il indique une adresse IP
associée à un nom (le DNS a été fait pour cela).
Quand une machine dispose de plus d'une adresse IP (un routeur ou
une machine avec plusieurs cartes), on doit indiquer plusieurs
enregistrements A, un par adresse, mais il faut alors que tous les
enregistrements PTR pointent vers ce nom là.
Nom IN A 193.10.20.30
AAAA (Address IPv6)
Le format précis n'est pas encore connu. Si le type d'enregistrement
est nommé AAAA, c'est car l'adresse IP version 6 est quatre fois plus
longue que pour un enregistrement de type A.
MX (Mail eXchanger)
Cet enregistrement indique pour un nom de domaine quelle est la
machine à laquelle il faut envoyer le courrier pour ce domaine. Un
paramètre précise le poids relatif de cet enregistrement.
Si plusieurs enregistrements MX sont présents, le MTA va essayer
d'envoyer le courrier en premier à la machine ayant le poids associé le
plus faible, puis ensuite dans l'ordre croissant des poids.
Si la machine qui relaie le courrier est dans la liste des MX pour le
domaine, elle envoie le courrier aux machines de poids inférieur au
sien.
nom IN MX 10 nom.du.relais.
IN MX 20 nom.du.deuxieme.relais.
CNAME (Cannonical Name)
Cet enregistrement indique que le nom de domaine donné est un
alias vers un autre nom (le nom cannonique). Il est possible d'avoir
une chaîne d'alias, mais la longueur de celle-ci est limitée, en général
autour de 10.
Nota: Quand un nom de domaine figure en partie droite d'un
enregistrement, ce dernier ne doit pas être une alias. C'est à dire que
les noms figurant à droite dans les enregistrements NS, MX, etc. ne
doivent pas être des alias, mais les noms cannonique (au bout de la
chaîne des alias), l'exception est qu'un CNAME peut pointer vers un
autre CNAME, mais attention aux boucles.
Nota: Quand pour un nom on a un enregistrement CNAME, il est
interdit de faire figurer d'autres enregistrements. S'il y a à faire figurer
des enregistrements, il faut les faire figurer pour le nom cannonique.
alias IN CNAME nom.cannonique.
SOA (Start Of Authority)
L'enregistrement SOA est l'acte de naissance d'une zone. Il contient
un certain nombre de paramètres:

Le nom du serveur primaire pour la zone.

L'adresse de courrier électronique du responsable technique de la


zone (zone-contact).
Il faut l'écrire en replaçant le @ par un point. On a alors par exemple:
[email protected] qui devient root.inria.fr.

Les serveurs secondaires interrogent régulièrement le serveur


primaire de chaque zone pour déterminer si la zone a été mise à jour
selon le mécanisme décrit ici
L'intervalle entre les rafraichissements (refresh)
Temps en secondes entre les vérifications du numéro de série par les
secondaires. La valeur conseillée est 24 heures, soit 86400
secondes.
L'intervalle entre les rafraichissements (retry)
Temps en secondes entre les vérifications du numéro de série par les
secondaires si la première vérification a échouée. La valeur
conseillée est 6 heures, soit 21600 secondes.
La durée d'expiration des enregistrements d'un secondaire
Si un secondaire n'arrive pas à contacter le serveur primaire de la
zone, il continue à répondre aux requêtes pendant la durée donnée.
La valeur conseillée est de 41 jours, soit 3600000 secondes.
La durée de vie par défaut des enregistrements (default TTL)
Quand le TTL d'un enregistrement n'est pas spécifiée, cette valeur
est utilisée. La valeur conseillée est de 24 heures, soit 86400
secondes.
Les différentes valeurs sont toujours telles que l'inégalité suivante est
vérifiée (avec un rapport au moins 10 entre les termes):
retry << refresh << expire

zone IN SOA nom.du.primaire. adresse.du.hostmaster. (


95021502; numero de serie
86400; refresh
21600; retry
3600000; expire
86400);

default TTL
Dans la syntaxe bind, le symbole @ représente le nom de la zone
courante, donc nous avons souvent au début du fichier pour une
zone:
@ IN SOA ...
IN NS ...
IN NS ...
IN MX 10 ...

NS (Name Server)
Cet enregistrement indique une délégation pour la gestion du nom
donné. C'est à dire que le nom donné devient une zone, dont la
gestion est déléguée au serveur indiqué en partie droite.
L'enregistrement donne le nom d'un des serveurs de noms autoritaire
pour la zone, comme il y a toujours plus d'un serveur de noms pour
une zone, on répète l'enregistrement NS autant de fois qu'il y a de
serveurs pour la zone.
Quand pour un nom, on a des enregistrements NS, il est interdit de
faire figurer dans la zone parente (celle-là) d'autres enregistrements.
S'il y a à faire figurer des enregistrements, il faut les mettre dans la
zone fille.
Zone IN NS serveur.nom.de.domaine.
IN NS autreServeur.nom.de.domaine.
IN NS encoreUn.autreNom.de.domaine.
TXT (Text)
Cet enregistrement permet de stocker une chaîne de caractères.
Nom IN TXT "Bonjour !"
PTR (Pointer)
Les enregistrements PTR permettent d'indiquer une correspondance
vers un autre nom dans l'abre de nommage. Ils sont discutés dans la
section sur le domaine in-addr.arpa.
10.20.30.192.in-addr.arpa. IN PTR ma.machine.fr.
HINFO (Host Info)
L'enregistrement HINFO permet de préciser pour une machine quel est
son système d'exploitation et le matériel. Cet enregistrement est peu
utilisé.

RP (Responsible Person)
Cet enregistrement permet de donner les noms des responsables
d'un nom de domaine. Le nom de domaine en question peut être une
zone, ou simplement un nom de machine. Ce type d'enregistrement
n'étant pas encore répandu, il faut vérifier que votre serveur de nom
ainsi que tous les secondaires de la zone le supportent. Les deux
paramètres sont d'une part une adresse de courrier électronique
formatée de manière similaire à celle de l'enregistrement SOA, et
d'autre part un autre nom de domaine. Pour cet autre nom de
domaine, on fait figurer un enregistrement TXT donnant plus
d'informations (téléphone, numéro de beep, etc.).

Délégation
En utilisant la structure d'arbre, il est possible de définir des domaines de
responsabilité dans le nommage. Chaque arc reliant un noeud à un noeud
inférieur peut convoyer une information précisant qui est reponsable du
niveau inférieur. En des termes plus informatique, le domaine à l'origine de
l'arc (le père) contient des informations précisant quels sont les serveurs
possédant des informations sur les fils (éventuels). À chaque niveau cela
peut se répéter, d'où la création d'une répartition des responsabilités de
nommage et de fonctionnement. Un arc peut également indiquer qu'il n'y a
pas de délégation de responsabilité.

Notion de zone
Une zone est la partie d'un domaine parcourue sans franchir d'arc délégant
la responsabilité. C'est à dire qu'une zone est la partie de l'abre gérée par le
même serveur.
Dans ce schéma, les arcs en pointillés sont des délégations, les arcs continus
signifient que l'on reste dans la même zone.

Duplication
Les données de chaque zone sont dupliquées sur plusieurs serveurs. Cette
duplication permet d'améliorer la fiabilité du service et de répartir la charge
entre les différents serveurs. De plus, entre les serveurs, un système permet
de trouver le "meilleur" serveur parmi les serveurs pour une zone (en terme
de temps de réponse).

Utilisation
La plupart des services des machines connectées à l'Internet utilisent le
DNS. Chaque fois que l'un de ces services fait référence à une machine par
son nom, la base de données est interrogée (si l'enregistrement recherché
n'est pas dans le cache du client).

Vous aimerez peut-être aussi