Aller au contenu

DNS

Le DNS (Domain Name System) est un système essentiel sur Internet qui permet de traduire les noms de domaine conviviaux pour les humains en adresses IP compréhensibles par les ordinateurs.

Traduction des noms de domaine

  • Le DNS agit comme un annuaire de l'Internet, associant des noms de domaine (comme www.exemple.com) à des adresses IP numériques (par exemple, 192.168.1.1).
  • Cette traduction facilite la navigation sur le web.

Hiérarchie des domaines

  • Le DNS est organisé de manière hiérarchique, avec des domaines de niveau supérieur (TLD) comme .com, .org, et .net, ainsi que des domaines (exemple.com) et des sous-domaines (blog.exemple.com), créant une structure arborescente.

dns-hierarchy.png

Source

Serveurs DNS

  • Les serveurs DNS sont des ordinateurs spécialisés qui stockent des informations sur les domaines et leurs adresses IP correspondantes.
  • Il existe des serveurs racines, des serveurs de domaine de premier niveau et des serveurs de domaine autoritaires.

dns-server.png

Source

Résolution DNS

  • Lorsque vous saisissez une URL dans votre navigateur, votre ordinateur envoie une requête DNS à un serveur DNS local pour traduire le nom de domaine en adresse IP.
  • Si le serveur local ne connaît pas la réponse, il interroge d'autres serveurs DNS jusqu'à obtenir la bonne adresse.

Mise en cache

  • Les résultats des requêtes DNS sont souvent mis en cache localement pour accélérer les requêtes futures vers le même domaine.
  • Cela réduit la charge sur les serveurs DNS racines et les serveurs de domaine de premier niveau.

TTL (Time to Live)

  • Chaque enregistrement DNS possède un TTL qui détermine combien de temps les informations peuvent être mises en cache.
  • Une fois le TTL expiré, une nouvelle résolution DNS est nécessaire.

Sécurité DNS

  • Le DNS peut être vulnérable à des attaques comme le détournement DNS (DNS spoofing) ou les attaques DDoS.
  • Des technologies comme DNSSEC sont utilisées pour améliorer la sécurité du système DNS.

Le processus DNS, étape par étape

  1. Requête depuis le client

    Le processus commence lorsqu'un client, comme un navigateur web, souhaite accéder à un site web (par exemple google.com). Le client envoie une requête DNS pour obtenir l'adresse IP du domaine.

    Avant d'envoyer la requête DNS à un serveur externe, le client vérifie dans son cache local (ordinateur ou navigateur). Si l'adresse IP du domaine est déjà connue et valide, elle est utilisée directement, et le processus s'arrête ici.

    Si l'adresse IP n'est pas présente dans le cache local, la requête est envoyée à un serveur DNS récursif (généralement fourni par le fournisseur d'accès à Internet - FAI). Ce serveur va essayer de trouver l'adresse IP en interrogeant d'autres serveurs DNS.

  2. Serveur DNS racine

    Si le serveur récursif n'a pas l'information dans son propre cache, il envoie une requête à l'un des serveurs DNS racine (root server). Les serveurs racine ne connaissent pas l'adresse IP exacte, mais ils savent où trouver des informations sur le domaine de premier niveau (TLD, comme .com, .org, etc.).

    Le serveur DNS racine renvoie une réponse au serveur récursif avec l'adresse du serveur TLD (Top-Level Domain) correspondant au domaine demandé.

  3. Serveur TLD

    Le serveur récursif interroge alors le serveur TLD approprié (par exemple, le serveur TLD pour .com si le domaine est google.com).

    Le serveur TLD répond au serveur récursif avec l'adresse du serveur DNS autoritaire pour le domaine spécifique (par exemple, pour google.com).

  4. Serveur DNS autoritaire

    Ces serveurs sont responsables de fournir l'adresse IP du domaine en question.

    Le serveur DNS autoritaire renvoie l'adresse IP du domaine au serveur DNS récursif, qui la stocke temporairement dans son cache pour de futures requêtes.

  5. Réponse au client

    Le serveur DNS récursif envoie l'adresse IP au client (ordinateur ou navigateur), permettant au client de se connecter au serveur web en utilisant cette adresse IP.

  6. Connexion au serveur

    Le client utilise ensuite l'adresse IP pour établir une connexion avec le serveur web et accéder au contenu du site web.

dns-lookup.png

Source image

Note

Avant l'introduction du DNS, la résolution des noms de domaine en adresses IP se faisait principalement à l'aide d'un fichier texte centralisé appelé "hosts.txt".

  • Ce fichier était mis à jour manuellement par les administrateurs système et distribué aux ordinateurs connectés à ARPANET.
  • Lorsqu'un utilisateur voulait accéder à un autre ordinateur sur ARPANET en utilisant son nom de domaine, le système local vérifiait d'abord le fichier "hosts.txt".
  • Si une correspondance était trouvée, l'adresse IP associée était utilisée pour établir la connexion.
  • Le principal inconvénient de ce système était sa centralisation et la difficulté de mise à jour à mesure qu'Internet grandissait.

Avec la croissance rapide d'ARPANET, le système basé sur le fichier "hosts.txt" est devenu impraticable. C'est à ce moment-là que le DNS a été introduit dans les années 1980 pour résoudre ces problèmes.

Le fichier "hosts.txt" existe encore sur les systèmes d'exploitation modernes : - Windows : %SystemRoot%\system32\drivers\etc\hosts - Unix / macOS : /etc/hosts

La résolution d'un nom de domaine commence généralement par la consultation du fichier "hosts.txt", et si aucune correspondance n'est trouvée, elle passe ensuite par le système DNS.