dernière modification : 2025

DNS

Le DNS (Domain Name Service) permet d’associer des noms à des adresses IP, par exemple associer dns.google.com à 8.8.8.8.

Les résolutions de noms sont effectuées par des serveurs DNS. Pour qu’un équipement puisse résoudre les noms en IP ou inversement, il doit connaitre l’adresse IP d’au moins un serveur DNS (qui peut être définie dans la configurartion réseau de l’équipement, ou bien être récupérée par DHCP).

Historiquement sur Unix, les IP d'1, 2 ou 3 serveurs DNS sont définies dans le fichier /etc/resolv.conf. Mais aujourd’hui, cela est remis en cause par systemd.

exemple de résolution DNS avec la commande host
$ host 8.8.8.8 (1)
8.8.8.8.in-addr.arpa domain name pointer dns.google.com (2)

$ host dns.google.com (3)
dns.google.com has address 8.8.8.8 (4)
1 quel est le nom de l’équipement d’IP 8.8.8.8
2 c’est dns.google.com
3 quel est l’IP de l’équipement nommé dns.google.com
4 c’est 8.8.8.8

1. Architecture des noms de domaines

tld

Chaque domaine possède au moins un serveur qui sert (en première main) ses informations, c’est-à-dire les associations nom ←→IP. Ce serveur connait aussi les serveurs DNS de ses sous-domaines.

Par exemple, le domaine .fr est servi par les 3 serveurs ci-dessous :

$ host -t ns fr
fr name server f.ext.nic.fr.
fr name server d.nic.fr.
fr name server g.ext.nic.fr.

Chaque serveur DNS sur Internet connait les IP des serveurs des TLD (top level domains)

2. Fonctionnement du DNS

Exemple :

  1. saisie d’une requête https://www.inria.fr sur le navigateur web d’un poste de travail

  2. le poste de travail effectue une requête auprès de son serveur DNS préféré (l’un de ceux référencés dans /etc/resolv.conf) pour récupérer l’adresse IP de www.inria.fr

  3. le serveur DNS contacté cherche dans son cache cette information

    1. s’il la possède, il la retourne au poste de travail, et c’est fini

    2. sinon, il recherche dans son cache quel est le serveur DNS du domaine inria.fr

      1. s’il la possède, alors :

        • ou bien il questionne lui-même ce serveur (requête récursive),

        • ou bien il renvoie au poste de travail l’adresse de ce serveur DNS qui connait la réponse cherchée

      2. sinon, il récupère le nom du serveur DNS de inria.fr auprès du TLD .fr dont il a l’adresse en main propre (dans sa configuration)