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.