Chapitre 6.12Les noms de domaine

Des alias pour les adresses IP.

3 minutes de lecture

Ton nouveau restaurant a maintenant une adresse postale. "Venez nombreux au 45 bis rue Jean-Michel Lapoutre", ça ne fait par contre pas très vendeur. Tu donnes donc un nom à ce restaurant, "Chez Tonton", que tu communiques à différents organismes pour être inscrit dans les annuaires locaux. Les clients pourront désormais te trouver juste en utilisant ce nom.

Tout pareil, ça serait super pénible de devoir se souvenir des adresses IP de tous les sites. Imagine que tu doives taper http://[2001:db8:3c4d:0015:0000:0000:d234:3eee] pour me contacter 🥲. L'enfer !

le-guide.tech, google.com, ohhappy.dev... ce sont tous des alias qui masquent une adresse IP.

Une histoire de fichier texte

Au tout début d'ARPANET, l'ancêtre d'Internet, il n'y avait pas de noms de domaine. Chaque machine du réseau gardait une copie d'un simple fichier texte, HOSTS.TXT, qui listait les quelques centaines de machines connectées et leur adresse. Ce fichier était maintenu à la main par une seule équipe, au Stanford Research Institute, et chacun devait penser à en télécharger la dernière version.

Tu vois le problème arriver. Plus le réseau grossissait, plus ce fichier devenait ingérable, et plus les copies partaient dans tous les sens. En 1983, Paul Mockapetris propose donc un système décentralisé et hiérarchique, le DNS (Domain Name System). Les premiers domaines de premier niveau (.com, .org, .net, .edu, .gov, .mil) sont délégués en 1985, et symbolics.com devient le tout premier nom de domaine commercial enregistré.

Le fichier HOSTS.TXT n'a jamais complètement disparu. Ton ordinateur possède toujours un fichier hosts qui, s'il contient une entrée pour un nom de domaine, court-circuite le DNS. Les développeurs s'en servent tous les jours pour faire pointer un nom de domaine vers leur machine locale.

Anatomie d'un nom de domaine

Un nom de domaine se lit de droite à gauche, du plus général au plus précis. Prenons blog.le-guide.tech.

  • .tech : l'extension, ou domaine de premier niveau (TLD, pour Top Level Domain). C'est le sommet de la hiérarchie, et c'est le sujet du chapitre suivant.
  • le-guide : le domaine de second niveau, la partie que tu choisis et que tu enregistres.
  • blog : un sous-domaine, que tu crées librement une fois le domaine à toi.

Ce qui s'achète, c'est le couple "le-guide" + ".tech". Une fois qu'il est à toi, tu peux créer autant de sous-domaines que tu veux, gratuitement et instantanément. C'est très pratique pour séparer les usages, par exemple blog.mon-site.com pour le contenu éditorial, api.mon-site.com pour ton back-end et preprod.mon-site.com pour ton environnement de préproduction.

Le fameux "www" n'a rien de magique, c'est juste un sous-domaine comme un autre, hérité de l'époque où on nommait chaque machine d'après son rôle, www pour le serveur web, ftp pour le serveur de fichiers, mail pour le courrier. Aujourd'hui la plupart des sites redirigent simplement www.mon-site.com vers mon-site.com, ou l'inverse.

Qui fait quoi

Trois acteurs se partagent le travail, et on les confond souvent.

  • L'ICANN : l'organisation à but non lucratif qui coordonne l'ensemble du système, décide quels TLD existent et à qui leur gestion est déléguée. C'est l'arbitre, elle ne te vend rien.
  • Le registre : l'organisation qui gère la base de données d'un TLD donné. Verisign pour le .com, l'Afnic pour le .fr. Il y a un registre par extension.
  • Le registraire (registrar) : l'entreprise chez qui tu achètes, comme OVH, Gandi, Namecheap ou Cloudflare. Elle est accréditée pour vendre les noms d'un ou plusieurs TLD et te sert d'intermédiaire avec le registre.

Toi, dans ce schéma, tu es le "titulaire" (registrant). Et je pèse mes mots quand je dis titulaire, car un nom de domaine ne s'achète pas vraiment. Tu le loues, par tranches d'un à dix ans. Si tu oublies de renouveler, il finit, après une période de grâce puis une phase de rachat payante, par retourner à la vente, et n'importe qui peut le récupérer. J'ai vu des entreprises perdre leur nom de domaine principal parce que la carte bancaire enregistrée chez le registraire avait expiré et que les mails de relance partaient sur l'adresse d'un salarié parti depuis six mois. Active le renouvellement automatique, et mets une alerte dans un agenda partagé.

Whois et vie privée

Historiquement, les coordonnées du titulaire d'un nom de domaine étaient publiques, consultables par tout le monde via un service appelé Whois. L'idée de départ était louable, puisqu'il fallait pouvoir contacter le responsable d'une machine en cas de problème technique.

En pratique, ça a surtout offert une base de données de prospection gratuite aux spammeurs. Avec l'arrivée du RGPD en 2018, les données personnelles des titulaires ont été massivement masquées. Aujourd'hui, la plupart des registraires proposent par défaut une protection de la vie privée qui affiche leurs coordonnées à la place des tiennes.

Exemple :

Une commande whois le-guide.tech dans un terminal te donnera encore la date de création du domaine, sa date d'expiration, le registraire utilisé et les serveurs de noms configurés. C'est un réflexe utile quand tu veux savoir depuis quand un concurrent existe, ou vérifier qu'un domaine est réellement libre.

Les domaines avec accents

Le DNS ne comprend historiquement que des lettres non accentuées, des chiffres et des tirets. Pourtant café.fr existe. Le tour de passe-passe s'appelle Punycode, un encodage qui convertit un nom écrit en Unicode vers une écriture compatible avec ces contraintes. En coulisses, café.fr voyage sous la forme xn--caf-dma.fr.

Ces domaines internationalisés ouvrent la porte à une attaque redoutable, l'homographe. Certains caractères cyrilliques ressemblent trait pour trait à nos lettres latines, ce qui permet de fabriquer un "аpple.com" visuellement identique à l'original. Les navigateurs modernes se défendent en affichant le Punycode brut quand l'adresse mélange des alphabets.

Et ensuite

Tu sais maintenant à quoi ressemble un nom de domaine et qui le gère. Restent deux questions, celle du choix de l'extension, qu'on creuse dans le chapitre sur les TLD, et celle du mécanisme qui traduit réellement ce nom en adresse IP, qu'on détaille dans le chapitre sur le DNS.

PrécédentLa programmation objet Tous les chapitres