Comprendre le fonctionnement global des DNS

Documentation et tutoriels

  • webo-facto
  • Domaines et e-mails

Préambule

Avant toute chose, il est important de préciser que cet article n'a pas pour vocation d'être 100% exact d'un point de vue technique. Son but essentiel, c'est de présenter les concepts qui régissent le fonctionnement des DNS d'un point de vue pratique, et les différents acteurs impliqués. Pour une documentation technique complète, vous pouvez consulter notamment les pages de l'AFNIC à ce sujet : www.afnic.fr/ext/dns/index.html

A quoi sert un serveur DNS

Prenez un annuaire, disons "les Pages blanches". Un tel annuaire permet, à partir d'un nom de famille, d'obtenir les informations de contact nécessaires pour "interagir" avec la personne, par différents moyens :

Capture PB
Figure 1 : une fiche fictive issue de l'annuaire pages Blanches

A partir du nom, on retrouve ainsi les informations permettant de :

  • prendre contact physiquement avec la personne, ou par courrier postal : adresse physique
  • l'appeler au téléphone : n° de téléphone
  • lui envoyer un fax : n° de fax
  • ...

Bref, un certain nombres d'infos de contact, passant par différents moyens "matériels" (la Poste, les télécoms...).

Et donc...?

Et bien le système DNS sert exactement à la même chose pour les ordinateurs sur internet : à partir d'un nom de domaine, il permet de retrouver les infos nécessaires pour interagir de différentes façons avec le site correspondant ("site" au sens large). Plus précisément, on y stocke typiquement les infos pour contacter :

  • le serveur d'hébergement (pour voir les pages du site avec un navigateur)
  • le serveur qui gère les mails en réception (pour relever les boites mail associées à ce nom de domaine avec un mailer)
  • le(s) serveur(s) qui gère(nt)... les infos DNS (on verra pourquoi après, )

L'ensemble de ces informations de contact, qu'on appelle en langage technique des "enregistrements DNS", est généralement nommé "une zone DNS".

vegadns_domain
Figure 2 : un exemple type de zone DNS

Les infos de contact en question peuvent prendre deux formes : soit une adresse IP, soit un nom de domaine. (Si c'est un nom de domaine, il sera à son tour automatiquement passé à la moulinette du sytème DNS - expliqué ci-après -, jusqu'à obtenir une adresse IP, puisque que c'est le seul format que peut utiliser un ordinateur pour en contacter un autre.)

Le système DNS va donc être utilisé par la plupart de vos programmes : navigateurs, FTP, mailers...

Comment ça marche

La différence fondamentale entre un annuaire comme "les Pages Blanches" et le système DNS, c'est qu'il n'y a pas UN annuaire DNS unique, mais des dizaines de milliers de petits annuaires répartis sur toute la planète (ce qui correspond à la philosophie de décentralisation d'internet). On appelle ces petits annuaires des serveurs DNS.

De ce fait, découle un fonctionnement très particulier :

I- Décentralisation de l'information

Vu la quantité de sites internet, il est évident quand on y pense que chaque serveur DNS ne peut pas matériellement avoir l'ensemble des infos sur tous les sites de la planète. Chaque serveur DNS possède donc une liste restreinte, qui correspond simplement à la liste des infos les plus susceptibles de lui être demandées (sites les plus souvent demandés, les plus récemment demandés, les plus "proches"...). Bref, une liste utile, mais incomplète.

II- Référent principal

Etant donné qu'il n'y a pas un annuaire unique qui pourrait servir de référence absolue, chaque nom de domaine est associé à un référent principal, c'est à dire une autorité "suprème" à qui ont se réfère en cas de besoin. Ainsi, quand on cherche à contacter un site, et que le serveur DNS auquel on s'adresse ne connait pas ce site, le serveur DNS va pouvoir interroger le référent principal. Et le référent principal, c'est en fait le registrar chez qui le nom de domaine a été déposé , A titre d'information, il existe un service internet qui permet, à partir d'un nom de domaine, de retrouver son registrar : whois .

III- Qui possède l'info recherchée

Le registrar est donc le référent, c'est à dire celui à qui on s'adresse quand l'info est localement inconnue, MAIS ça ne signifie pas pour autant que le registrar a bien les infos demandées. Dans ce cas, cependant, le registrar sera capable de nous dire QUI (quels serveurs DNS) possède les infos qui nous intéressent.

Dans les faits, il existe trois cas :

  1. Le registrar possède effectivement directement les infos demandées, c'est à dire qu'il héberge lui-même la zone DNS (les registrars ont leurs propres serveurs DNS). Le registrar les fournit donc au demandeur, qui en fait généralement une copie en local pour son usage ultérieur (un cache), afin d'avoir cette information à disposition s'il en a besoin à nouveau prochainement (ce qui est presque toujours le cas, chaque page d'un site étant composée de plusieurs fichiers).
    gandi-normalinterface-fr
    Figure 3 : la gestion de zone DNS, chez Gandi
  2. Le registrar n'héberge pas la zone DNS, mais on lui a indiqué un ou plusieurs serveurs DNS qui vont être, en somme, les référents secondaires. Il indique donc au demandeur qu'il ne possède pas les infos, et qu'il faut s'adresser à un des référents secondaires (en général, il y en a plusieurs, comme ça si l'un d'eux tombe en panne, l'info est toujours accessible chez un autre).
    gandi-changedns-fr
    Figure 4 : gestion de zone DNS externalisée, chez Gandi
  3. Le nom de domaine demandé est en fait un simple alias. Dans ce cas, le registrar redirige le demandeur vers le "vrai nom" du site (qui peut à son tour s'avérer être un alias).
    gandi-webforwardinterface-fr
    Figure 5 : redirection de nom de domaine, chez Gandi

IV- Propagation de l'information

Dans les faits, plutôt que d'interroger systématiquement le registrar quand un serveur DNS ne connait pas une info qu'on lui demande, il pose plutôt la question à ses "voisins" (d'autres serveurs DNS). Ainsi, de proche en proche, les serveur DNS communiquent et se passent les infos. C'est un genre de "téléphone arabe" informatique.

Etant donné ce fonctionnement, il est possible que pour un même nom de domaine, plusieurs versions différentes des mêmes infos existent au même moment a des endroits différents du réseau. Vu que les serveurs DNS conservent un cache des infos qu'ils ont reçues, si on change l'info principale chez le registrar, on se retrouve déjà avec deux versions.

Afin de limiter au maximum ce genre de problèmes, on associe à chaque enregistrement de la zone DNS, une période de validité, c'est le fameux champ TTL. Techniquement, il s'agit simplement d'une date de péremption, au delà de laquelle le serveur DNS va aller chercher une mise à jour de ses infos.

En apartée, il était question au tout début de l'article de la présence des infos concernant des serveurs DNS directement dans la zone DNS d'un nom de domaine (). La présence de ces infos est notamment utile pour savoir à qui se référer quand on doit faire la mise à jour des infos.

Ces deux phénomènes sont à l'origine de ce qu'on appelle la propagation, et explique le fameux "temps de propagation", qui est le temps qu'il faut pour que tous les serveurs DNS soient à jour pour un nom de domaine en particulier.

En pratique chez Medialibs

Gestion DNS

Nous vous proposons deux méthodes pour la gestion DNS de votre nom de domaine :

  1. La zone DNS n'est pas gérée par les serveurs DNS de Médialibs. Dans ce cas, la zone DNS doit exister ailleurs (chez votre registrar, chez votre hébergeur...). A l'intérieur de la zone, vous devez donc définir manuellement les infos de contact, autrement dit les enregistrements DNS. Le nombre d'enregistrements que vous mettrez en place dépendra des services associés à votre nom de domaine : site web, réception et/ou envoi d'e-mail, serveurs DNS de référence... Chacun de ces services est associé à des types d'enregistrements : A, CNAME (plutôt pour l'hébergement), NS (pour les serveurs DNS de référence), MX (pour la réception ou le transfert d'e-mail). Pour voir notre FAQ pour les détails techniques : cliquez-ici.
  2. Les serveurs DNS de Médialibs gère la zone DNS pour votre nom de domaine. Dans ce cas, il faut indiquer à votre registrar que nos serveurs DNS sont les serveurs "référents secondaires" pour votre nom de domaine. ATTENTION, avant d'indiquer ces infos à votre registrar il est fortement recommandé de s'assurer que la zone DNS existe bien chez nous (c'est même indispensable pour les .fr, sinon la configuration sera refusée). Si votre site gère d'autres services que la mise à disposition de pages internet, il faut donc nous l'indiquer afin qu'on mette les enregistrements adéquats en place (ça concerne essentiellement les enregistrements de type MX, pour les mails). Pour voir notre FAQ pour les détails techniques : cliquez-ici.

Précisions sur le fonctionnement de l'hébergement

Un même serveur d'hébergement (correspondant donc à une seule et même IP) peut contenir plusieurs sites. Or, chaque site est associé à un ou plusieurs noms de domaine, chacun pointant tous sur la même IP, celle du serveur. La question est donc : comment le serveur d'hébergement sait à quel site correspond un nom de domaine particulier ?

Et bien, il s'agit d'une configuration manuelle. Le logiciel qui est chargé de distribuer les pages internet (en général Apache) doit être configuré pour savoir à quel site correspondent quels noms de domaine. Pour qu'un site réponde bien, il est donc nécessaire qu'il existe une zone DNS qui pointe vers le serveur d'hébergement ET que le serveur ait été configuré pour savoir à quel site correspond le nom de domaine. C'est pourquoi, quand vous voulez ajouter ou changer un nom de domaine pour un de vos sites, il faut nous en informer afin que nous mettions en place la configuration qui associera le nom de domaine et le site correspondant.