Le DNS est un service informatique trÚs utile, surtout sur Internet, qui permet de résoudre des noms de domaine en adresses IP.

Mais comment est-ce que ça fonctionne réellement ce SystÚme de Noms de Domaine ?

Et bien je vous propose de découvrir cela grùce à ce 2Úme post sur le sujet ! boast


Le systĂšme de noms de domaine

Traduction d’un nom en adresse IP

Commençons sans plus attendre avec un petit rappel de ce qu’est le Systùme de Noms de Domaine, plus connu sous le nom de DNS !

Info + : Dans ce 2nd article sur le sujet, nous aborderons le fonctionnement du service DNS. La premiĂšre partie de cette introduction au DNS est disponible au lien suivant : Le principe des noms de domaine

Le DNS c’est un service fortement utile en informatique qui permet (entre autres), la rĂ©solution de noms sur internet.

Il faut savoir que lorsque l’on veut aller sur un site internet, c’est en rĂ©alitĂ© un serveur web pouvant ĂȘtre au 4 coins du monde qui va nous rĂ©pondre.

Par exemple, quand vous arrivez sur google.fr, c’est grĂące Ă  votre navigateur internet qui communique avec un serveur web qui hĂ©berge le site google.fr.

Le serveur web sait que c’est lui que vous interrogez car vous utilisez tacitement son adresse IP pour le contacter.

Comment ça son adresse IP ?! shock J’ai juste voulu aller sur google moi j’ai rien fais du tout !

Vous avez raison, vous n’avez rien fait du tout
 c’est la magie de l’informatique qui a fait tout le boulot pour vous laugh

Quand vous utilisez l’adresse d’un site web, vous utilisez rĂ©ellement ce qu’on appelle son « nom de domaine ».

Je vous rappelle qu’un nom de domaine c’est l’identifiant d’une zone sur internet regroupant plusieurs machines, toutes membres de cette mĂȘme zone. Et l’adresse d’un site web comprend ce nom de domaine.

Quand on regarde l’adresse complĂšte du site web de Google par exemple, ce que l’on peut en dĂ©duire, c’est que l’hĂŽte qui s’appelle « www » est membre du domaine « google.fr ».

Donc quand vous allez sur google.fr, vous communiquez avec une machine, qui n’est autre qu’un serveur web.

Ce serveur web, comme n’importe quel Ă©quipement en rĂ©seau, possĂšde justement
 une adresse IP ! Comme je vous le disait prĂ©cĂ©demment, c’est grĂące Ă  cette adresse IP que le serveur est en capacitĂ© de vous rĂ©pondre (enfin de rĂ©pondre Ă  votre navigateur
)

Et c’est là que le service DNS est trùs utile puisque c’est lui qui traduit les noms de domaine en adresse IP !

Sans ce service, internet fonctionnerait toujours, par contre, nous serions tous condamnĂ©s Ă  nous rendre sur des sites internet en utilisant uniquement leur adresse IP, et nos adresses de site web ressemblerait Ă  cela : 277.154.12.54, 172.217.22.131, 52.95.116.113…

 

Autant dire que pour l’Homme, il est tout simplement impossible de retenir les adresses IP de tous les sites internet qui existent au monde !

Si on rĂ©sume : l’accĂšs Ă  un site internet est possible grĂące Ă  la rĂ©solution de son nom en adresse IP, opĂ©ration qui est effectuĂ©e par le service DNS.

On peut voir un serveur DNS comme un gros annuaire qui va servir Ă  Ă©tablir une correspondance entre le nom d’un domaine et une adresse IP.

Il stocke en mémoire différents enregistrements qui peuvent exister dans un domaine (nous verrons les principaux un peu plus loin dans cet article
).

Et votre PC va envoyer des requĂȘtes aux serveurs DNS afin de connaĂźtre le contenu de ces enregistrements.

Dans le cas de notre exemple avec www.google.fr, le PC va demander au service DNS, l’adresse IP d’un des hĂŽtes, du domaine google.fr, en l’occurrence, celle du serveur web nommĂ© « www » afin de pouvoir y accĂ©der. De votre cĂŽtĂ© d’utilisateur, vous n’avez rien Ă  faire !

 

RequĂȘtes et enregistrements DNS

Comme je viens de le dire, un serveur DNS contient des données, appelées des enregistrements (ou des « DNS Records » en anglais) sur un domaine et il fournit le contenu de ses enregistrements aux clients DNS qui en font la demande.

Dans le cas de votre PC, il est justement client DNS. Il demande donc les informations dont il a besoin Ă  un serveur DNS. On dit qu’il envoie des « requĂȘtes DNS ».

Les requĂȘtes DNS sont des messages envoyĂ©s aux serveurs DNS qui vont permettre de consulter les donnĂ©es stockĂ©es sur le serveur. Par exemple, il peut s’agir d’une requĂȘte pour connaĂźtre l’adresse IP d’un serveur web ou d’un serveur de messagerie au sein d’un domaine.

Pour connaĂźtre le contenu d’un enregistrements DNS, le processus d’envoi des requĂȘtes peut se faire de deux façons :

  • Par requĂȘte rĂ©cursive : c’est-Ă -dire que le client DNS demande au serveur DNS de rĂ©pondre obligatoirement Ă  sa requĂȘte, qu’il possĂšde ou non la rĂ©ponse, sans rediriger la requĂȘte vers un autre serveur DNS.

Info + : ce type de requĂȘte se fait le plus souvent de PC client DNS Ă  serveur DNS local.

Dans ce cas-lĂ , le serveur DNS va faire lui-mĂȘme sa propre requĂȘte auprĂšs d’autres serveurs DNS pour trouver une rĂ©ponse.

  • Par requĂȘte itĂ©rative : c’est-Ă -dire que le client DNS demande au serveur DNS de lui fournir la meilleure rĂ©ponse possible par tous les moyens. Le rĂ©sultat d’une telle requĂȘte fait souvent rĂ©fĂ©rence Ă  d’autres serveurs DNS.

Info + : ce type de requĂȘte se fait le plus souvent de serveur DNS Ă  serveur DNS.

Le rĂ©sultat de la requĂȘte DNS sera donc le contenu d’un DNS Record, c’est-Ă -dire d’un enregistrement d’une zone prĂ©cise.

 

Voici un tableau montrant quelques types d’enregistrements DNS que l’on rencontre souvent en entreprise, avec des exemples de donnĂ©es totalement fictives pour le domaine « mondomaine.fr » :

Le serveur DNS en charge de la zone « mondomaine.fr » peut contenir tous les enregistrements ci-dessus.

Pour connaĂźtre les donnĂ©es, les clients DNS vont donc Ă©mettre des requĂȘtes selon le type d’enregistrement qu’ils veulent (A, CNAME, NS
) Ă  l’aide du protocole DNS sur le port 53 (TCP & UDP).

Info + : vous pouvez utiliser des outils en ligne de commandes comme « nslookup »  sous Windows et « host »  sous Linux pour voir certains types d’enregistrement dans un domaine.

 

Fonctionnement pas Ă  pas du service DNS

Maintenant que vous avez cernĂ© le principe du service DNS, nous allons prendre un exemple et dĂ©tailler toutes les Ă©tapes de rĂ©solutions d’un nom de domaine pour bien en comprendre le fonctionnement.

Dans notre exemple, nous avons un PC qui veut accéder au site internet de google.

Souvenez-vous, pour communiquer les machines ont besoin d’adresses IP. Donc notre poste client aura tacitement besoin de l’adresse IP du serveur web qui hĂ©berge le site internet de google. Il va devoir utiliser le service DNS pour obtenir cette information (enregistrement de type A) venant du domaine google.fr.

La premiĂšre action du PC sera de vĂ©rifier si il ne connait pas dĂ©jĂ  l’adresse IP du serveur web de google. Il va alors aller rechercher dans sa mĂ©moire interne qu’on appelle son cache DNS.

Info + : Le cache DNS est trÚs utile car il va stocker temporairement les enregistrements demandés afin de pouvoir les restituer plus rapidement et ne pas solliciter les serveurs DNS.

Le cache DNS du poste client ne possĂšde pas d’information sur l’enregistrement DNS dont il a besoin. Il va donc devoir demander au serveur DNS de son rĂ©seau local. Il va alors lui envoyer une requĂȘte rĂ©cursive sur le port 53 en lui demandant de rĂ©pondre lui-mĂȘme Ă  sa requĂȘte.

Le serveur DNS qui reçoit la requĂȘte va commencer par vĂ©rifier si le domaine visĂ© par la requĂȘte, Ă  savoir « google.fr », est un domaine que lui-mĂȘme gĂšre, c’est-Ă -dire si il fait parti de ses zones pour lesquelles il a directement les enregistrements.

Le serveur DNS local ne gĂšre pas la zone « google.fr ». Il va donc vĂ©rifier dans son propre cache DNS si il n’a pas dĂ©jĂ  l’information recherchĂ©e, Ă  savoir l’adresse IP du serveur web de google.

Le serveur DNS local n’a pas l’enregistrement dans son cache. Il va devoir lui-mĂȘme demander l’information Ă  d’autres serveurs DNS. Il va devoir parcourir l’ensemble du nom de domaine de google en partant de la droite pour trouver la rĂ©ponse.

Info + : les notions qui vont suivre ont déjà été abordées dans la premiÚre partie de cette introduction au DNS disponible ici : Le principe des noms de domaine

Notre serveur DNS local va donc commencer par interroger les serveurs DNS racines pour savoir quels sont les serveurs DNS en charge du nom de domaine de 1er niveau (TLD) « .fr ». Il va alors envoyer Ă  l’un des DNS racines une requĂȘte itĂ©rative pour connaĂźtre l’adresse IP de l’un de serveurs TLD.

Le serveur DNS racine va lui renvoyer l’information demandĂ©e, c’est-Ă -dire l’adresse IP d’un des serveurs du domaine de 1er niveau « .fr ».

Le serveur DNS va ensuite renvoyer une requĂȘte itĂ©rative au serveur du TLD « .fr » pour connaĂźtre l’adresse IP du serveur DNS qui gĂšre le nom de domaine de 2nd niveau (SLD) « google.fr ».

Le serveur TLD va Ă  son tour lui rĂ©pondre et lui envoyer l’adresse IP du serveur SLD qui gĂšre le domaine « google.fr ».

Le serveur DNS connaĂźt maintenant l’adresse IP du DNS en charge de la zone « google.fr » ! Il peut donc lui envoyer une requĂȘte pour connaĂźtre les donnĂ©es de l’enregistrement de type A correspondant au serveur web. En rĂ©sumĂ©, il va lui demander l’adresse IP associĂ©e au nom d’hĂŽte « www ».

Le serveur DNS qui gĂšre le domaine « google.fr » va vĂ©rifier ses enregistrements et renvoyer la rĂ©ponse au DNS local. Il s’avĂšre que « www » est un alias (CNAME), associĂ© Ă  un hĂŽte (A) nommĂ© « srv-web », qui a pour adresse IP 216.58.201.227.

Maintenant que le serveur DNS Ă  l’information, il va rĂ©pondre au poste client qui a fait la requĂȘte initiale. Il va dire au client DNS « l’adresse IP de www.google.fr est 216.58.201.227 ».

Il va Ă©galement en profiter pour garder cette information temporairement dans son cache DNS, au cas oĂč une requĂȘte similaire est Ă©mise.

Le client peut désormais communiquer avec le serveur web directement grùce à son adresse IP en utilisant le protocole http sur le port 80 ou de préférence https sur le port 443.

Il va Ă©galement en profiter lui aussi pour stocker temporairement l’adresse IP du serveur web dans son propre cache DNS.

Le serveur web va répondre à la demande du PC et ce dernier aura accÚs au site internet comme si il avait saisi directement son adresse IP.

Voilà comment nous pouvons illustrer le fonctionnement du service DNS !

Info + : retrouvez le schéma précédent en entier ICI et un tableau récapitulatif de chaque étape ICI.

 

Ce sera tout pour cette introduction au DNS qui vous aura permis, je l’espĂšre, de mieux comprendre le fonctionnement de ce service si prĂ©cieux sur internet !

Je vous prĂ©pare un petit tuto d’installation d’un serveur DNS cache sous Windows pour trĂšs prochainement (et peut ĂȘtre sous Linux Debian aussi, Ă  voir
)

A bientĂŽt ! cool


Introduction au DNS [2/2] : Le fonctionnement du service DNS

Articles pouvant vous intéresser