L'application DNS (Domain Name Service) livre des extraits de la base à des utilisateurs, en réponse à leurs interrogations.
La couche DNS est composée de 2 types d'entités-DNS, qui échangent des PDU-DNS en utilisant la couche UDP :
des clients-DNS, ou résolveurs, qui reçoivent les questions des utilisateurs installés dans le même système, dialoguent avec les serveurs-DNS (par des PDU-DNS) pour en obtenir des réponses qu'ils livrent aux utilisateurs.
(Par exemple, les processus host lancés dans les exercices précédents sont des utilisateurs du service-DNS.)- des serveurs-DNS, qui disposent de copies maîtres et/ou esclaves de zones, dont ils extraient les réponses aux questions reçues.
Dans le cas où un serveur-DNS ne trouve pas l'information cherchée dans les copies de zones dont il dispose, il peut demander à "son" résolveur de poser la question à d'autres serveurs-DNS (mode récursif).
Un serveur-DNS est lié au port UDP/53 dans le système où il est implanté.
Plusieurs implémentations existent, une des plus connues est BIND (Berkeley Internet Name Domain) est installée sur custsv.
Autres fichiers intéressants que l'on trouve dans le fichier named.conf de sp.isima.fr : isima.db, isima.rev, isima.local, isima.ca.
La configuration du serveur-DNS BIND est définie par le fichier /etc/named/named.conf ou /etc/bind/named.conf (copie de custsv ou copie de sp.isima.fr.
Lorsque le serveur-DNS n'a pas l'information qu'un client-DNS lui demande, il peut propager la questionAprès avoir obtenu une réponse, il la mémorise dans une zone-cache les informations reçues. Ainsi il enrichit sa propre connaissance, et ainsi peut répondre plus tard à partir de son cache. Cependant, s'il répond à une question à partir de ce cache, la réponse est dite "non autorisée" (non authoritative).
auprès d'un serveur-DNS qui possède une copie maître ou esclave de la zone dans laquelle se trouve la réponse, s'il connait un tel serveur-DNS,
ou bien auprès d'un serveur-DNS-racine (liste dans /etc/bind/db.root ou fichier isima.ca, qui lui renverra la liste des RR-NS de la zone.
Il pourra ensuite propager la question l'un de ces serveurs-DNS si le résolveur le demande.
Les résolveurs sont implantés dans les fonctions gethostbyname et gethostbyaddr, généralement installées dans une bibliothèque partagée (libc.so pour la plupart des Unix).
Un résolveur est configuré pour adresser les questions soumises par un utilisateur (par exemple host) à une liste d'au moins un serveur-DNS.
Chaque serveur-DNS de la liste est désigné par la seule adresse-IP du système dans lequel il est installé; cette adresse est complétée par UDP/53.
- Unix : fichier /etc/resolv.conf
- Microsoft : Paramètres, Panneau de configuration, Réseau, TCP, Propriétés, onglet DNS
Le résolveur s'adresse d'abord au 1er serveur-DNS de la liste.
Si la réponse n'arrive dans l'échéance prévue (4 secondes), il s'adresse au 2ème, s'il y en a un, puis au suivant...
- Exercice 4.3.1
- Quelle est la liste des serveurs-DNS du résolveur de ada.local.isima.fr ? de votre PC ?