cours1 min de lecture

Adresses symboliques et DNS

D'un nom lisible comme nsi.rocks à une adresse IP, le détour obligé par le DNS.
programme

Introduction

Vous tapez nsi.rocks dans la barre d'adresse de votre navigateur et la page s'affiche en une fraction de seconde. Pourtant, votre ordinateur ne sait pas ce qu'est nsi.rocks : pour lui, une machine sur Internet est identifiée par une suite de chiffres appelée adresse IP. Comment passer alors de l'un à l'autre ? La réponse tient en trois lettres : DNS (Domain Name System), un immense annuaire distribué qui traduit les noms en adresses.

Adresse IP et adresse symbolique

Chaque machine connectée à Internet possède une adresse IP, une suite de quatre nombres séparés par des points pour la version la plus répandue (IPv4) :

192.168.1.42
172.217.18.131
2a00:1450:4007:80f::200e   (IPv6, version plus récente)

Les nombres entre 0 et 255 constituent les quatre octets d'une adresse IPv4. Cette numérotation est efficace pour les machines mais pénible pour les humains : qui mémoriserait 142.250.179.142 pour visiter Google ? On utilise donc, en parallèle, des adresses symboliques — les fameux noms de domaine :

Adresse symboliqueAdresse IP possible
google.com142.250.179.142
nsi.rocks185.158.133.1
wikipedia.org208.80.154.224

Une analogie utile : l'adresse symbolique est le nom inscrit sur un interphone, l'adresse IP est le numéro d'appartement. Vous appuyez sur le nom, le système se charge de vous mettre en relation avec la bonne porte.

Une même adresse symbolique peut pointer vers plusieurs adresses IP (pour répartir la charge entre serveurs), et une adresse IP peut héberger plusieurs adresses symboliques (un même serveur peut servir plusieurs sites).

Laquelle de ces écritures est une adresse IP valide ?

Le rôle du DNS

Le DNS est le service chargé de cette traduction. Quand vous tapez nsi.rocks, votre ordinateur n'envoie pas la requête directement : il interroge d'abord un serveur DNS, qui lui répond par l'adresse IP correspondante. Ensuite seulement, votre navigateur contacte cette IP.

Serveur webServeur DNSVotre ordinateurnsi.rocks ?1185.158.133.12requête HTTP vers 185.158.133.13
Étapes d'une résolution DNS

Le système est distribué : il n'existe pas un unique serveur DNS qui connaîtrait tous les noms du monde. Il existe plusieurs serveurs en cascade, chacun spécialisé dans une partie du nom, et chaque réponse est mémorisée temporairement (mise en cache) pour gagner du temps la fois suivante.

Pour rendre la chose tangible, voici ce qui se passe quand vous tapez nsi.rocks pour la première fois — l'ensemble dure typiquement moins de 50 ms :

Temps écouléÉtape
0 msVous appuyez sur Entrée. Votre ordinateur demande à son résolveur DNS s'il connaît nsi.rocks.
5 msLe résolveur ne connaît pas. Il interroge un serveur qui s'occupe des noms en .rocks.
25 msCe serveur répond : « pour nsi.rocks, va voir tel autre serveur ».
40 msLe résolveur interroge ce serveur, qui renvoie enfin l'IP 185.158.133.1.
45 msLe résolveur note la réponse dans son cache et vous la transmet.
50 msVotre navigateur peut enfin contacter le site.

La fois d'après, plus besoin de tout refaire : la réponse est dans le cache, c'est instantané.

Cette mise en cache explique pourquoi un nom de domaine récemment modifié peut sembler pointer encore vers l'ancienne adresse pendant quelques heures : les résolveurs intermédiaires conservent leur souvenir de la réponse précédente.

Lire un nom de domaine de droite à gauche

Un nom de domaine se lit du plus général au plus spécifique en allant de droite à gauche. Prenons dashboard.nsi.rocks :

PartieNiveauRôle
. (implicite)racinesommet de la hiérarchie DNS
rocksTLDextension générique
nsidomaineenregistré par le propriétaire
dashboardsous-domainechoisi par le propriétaire pour un service

C'est l'inverse d'une adresse postale, où le pays s'écrit en dernier. Ici, le plus large (le TLD) se trouve à droite.

Dans 'cours.lycee-jaures.fr', quel élément est le TLD ?

Retrouver l'IP en pratique

Plusieurs outils permettent d'observer le DNS au travail. Sous un terminal :

$ host nsi.rocks
nsi.rocks has address 185.158.133.1

L'opération inverse — retrouver le nom à partir d'une IP — s'appelle une résolution inverse. Elle n'est pas toujours possible : certaines adresses IP n'ont pas de nom associé.

Pièges courants

  • Un nom de domaine n'est pas une URL. nsi.rocks est un nom de domaine ; https://nsi.rocks/cours est une URL complète, qui inclut un protocole et un chemin.
  • L'adresse IP change : un site peut déménager d'un serveur à l'autre sans prévenir. C'est tout l'intérêt du DNS, qui découple le nom (stable) de l'adresse (variable).
  • Une adresse IP locale (par exemple 192.168.1.10) n'est pas visible depuis Internet. Elle n'a de sens qu'à l'intérieur du réseau local de la maison ou du lycée.

Pour aller plus loin

Le DNS a une responsabilité critique : si tous les serveurs DNS d'une catégorie tombent, des pans entiers d'Internet deviennent inatteignables — non pas parce que les serveurs hébergeant les sites sont en panne, mais parce que plus personne ne sait les trouver. La panne Facebook du 4 octobre 2021 illustre ce maillon vital : un retrait accidentel des routes BGP (le protocole qui indique aux routeurs comment atteindre les réseaux de Facebook) a rendu les serveurs DNS de Facebook inaccessibles pendant plusieurs heures, plongeant Facebook, Instagram et WhatsApp dans le noir alors que les serveurs eux-mêmes fonctionnaient toujours.