Qu'est-ce qu'un serveur DNS ?

Un serveur DNS (Domain Name System) est un service fondamental d’Internet qui permet de traduire les noms de domaine en adresses IP.

Imaginons que nous voulons regarder une vidéo sur YouTube. Pour cela, nous ouvrons un navigateur web et nous tapons l’adresse « youtube.com » dans la barre de recherche. Presque instantanément, la page YouTube s’affiche et nous pouvons lancer la vidéo de notre choix. Cette action semble très simple, mais en réalité, elle repose sur le fonctionnement du serveur DNS.

Le serveur DNS, c'est ça. Il nous permet de naviguer sur Internet facilement en utilisant des noms de domaine plutôt que de devoir mémoriser des adresses IP.

Comment fonctionne le serveur DNS ?

Dans l'exemple précédent, nous avons pu voir que lors de notre recherche web on ne renseignait pas d'adresse IP mais bien une URL. Mais il ne faut pas oublier ce qui se passe lorsque l'on tape sur "Entré" pour lancer notre recherche.

En effet notre ordinateur (avec une adresse IP) va chercher à communiquer avec une autre machine (ici un serveur web) et donc une autre adresse IP. Il faut retenir, qu'une machine (ordinateur, serveur etc) ne peut communiquer qu'en adresse IP. Notre ordinateur ne comprend pas directement ce qu'est « youtube.com ».

Donc si le serveur DNS n'existait pas, nous devrions taper l'adresse IP du site que nous voulons consulter, à chaque recherche. Ce qui n'est pas pratique car il faudrait retenir toutes les adresses IP de tous les sites que l'on consulte régulièrement (sachant qu'un site comme YouTube n'a pas d'IP fixe mais ne nous éloignons pas).

Pour illustrer tout ça, ouvrons notre terminal et rentrons la commande "ping youtube.com"

ping YouTube

Pour rappel, "ping" + adresse IP ou nom de domaine permet de tester la connexion entre notre machine et celle que l'on ping (le -4 permet d'avoir l'IPv4)

Ici on peut voir que nous avons pingé le nom de domaine "youtube.com" et que notre machine a traduit ce nom de domaine en adresse IP, ici 172.217.18.206, du serveur qui héberge YouTube

Le ping a bien fonctionné : notre ordinateur a réussi à contacter le serveur de YouTube, qui a répondu en envoyant des paquets de données. Cela montre que la connexion entre notre machine et le serveur est opérationnelle, et nous avons pu obtenir l'adresse IP correspondante du serveur.

Donc dans notre navigateur, on pourrait rentrer "172.217.18.206" pour accéder à YouTube.

Le DNS sert donc d'attribuer à une adresse IP un nom de domaine. Cela permet donc de faciliter nos recherches sur Internet

Comment configurer un serveur DNS ?

Imaginons le réseau suivant :

Représentation d'un réseau

Le PC1 a l'adresse IP 192.168.1.1, le PC2, 192.168.1.2 et le ServerDNS 192.168.1.3. Essayons maintenant de pingé le PC1 depuis le PC2.

Ping de PC2 vers PC1

Le ping a fonctionné, nos 2 PC sont donc bien dans le même réseau et peuvent communiquer entre eux. Les packets ont été envoyé (Paquets: Sent = 4), reçus (Paquets: Received = 4). IL n'y a eu aucune perte (Lost = 0).

Dans l'image de notre réseau, nous pouvons voir que les 2 PC ont des noms, appelés aussi nom d'hôte (hostname). Tentons maintenant de ping, non plus leur adresse IP, mais leur nom d'hôte.

Ping des noms d'hôtes

Nous pouvons voir que maintenant il y a une erreur. Il ne reconnait pas notre nom de domaine. Et c'est normal car aucun serveur DNS n'a été configuré.

Il faut maintenant que l'on dise à notre serveur DNS que PC1 = 192.168.1.1 et que PC2 = 192.168.1.2

hostname dans le DNS

Ici nous enregistrons dans le serveur DNS une correspondance nom d'hôte - adresse IP. Il faut maintenant renseigner l'adresse IP du serveur DNS (192.168.1.3) a nos PC.

adresse IP du DNS dans les machines

Récapitulons. Nous avons un réseau avec 2 PC et un serveur DNS. Les machines sont bien connectées entre elles et peuvent communiquer. On peut communiquer avec elles grâce à leurs adresses IP. Mais nous voulons aussi communiquer avec elles grâce à leur nom d'hôte. Pour ce faire nous avons dit à notre serveur DNS que tel PC = telle adresse IP. Tentons alors maintenant de ping "PC1" depuis le terminal de commande de PC2.

Ping de nom d'hôte

Le ping fonctionne !

Pour résumer :