Noms de domaine

Objectif

  • Comprendre comment une application peut connaître la correspondance entre l'adresse IP et le nom de domaine.

Mise en situation

Les adresses IP permettent d'identifier de façon unique un appareil présent sur Internet. Par exemple l'adresse IP de l'ordinateur qui héberge le site de l'association Framasoft est : 144.76.131.212.

Les noms de domaine permettent d'associer des alias aux adresses IP, afin qu'elles soient plus facilement traitable par les humains. Ainsi je vous dis : « rendez-vous sur le site framasoft.org », ce qui est plus simple à retenir que : « rendez vous sur le site 144.76.131.212 ».

Cela permet aussi d'abstraire la gestion des machines physiques et celle des adresses logiques qui permettent d'y accéder. Par exemple si le site de Framasoft est déplacé sur une autre machine, qui a une autre adresse IP, il suffira de rediriger l'alias, et il ne sera pas nécessaire de demander à chaque utilisateur d'accéder à une adresse différente.

DéfinitionNom de domaine

Un nom de domaine est une adresse symbolique permettant d'éviter de devoir retenir des adresses IP.

Ainsi, à une adresse fixe telle que 91.198.174.192 on peut associer un nom de domaine tel que wikipedia.org.

Les noms de domaines ont une structure bien particulière : ils forment une arborescence dont la racine est un point, et dont les niveaux sont séparés par des points.

Cette arborescence permet de connaître l'endroit où chercher pour trouver l'adresse IP correspondante au nom de domaine concerné.

RemarqueUtilité d'un nom de domaine

Un nom de domaine est destiné à être utilisé par des utilisateurs humains. Il n'est fondamentalement pas nécessaire mais permet de donner du sens et est aussi plus facile à retenir.

De plus un nom de domaine peut être changé là où une adresse IP ne peut généralement pas l'être.

Pour autant, cela rajoute un niveau de complexité  : l'appareil qui veut communiquer avec le serveur de Wikipédia a besoin de transformer www.wikipedia.org. en une adresse IP.

Pour cela, il fait appel à un serveur de noms de domaine.

DéfinitionDNS

Un serveur DNS (pour Domain Name System) est un serveur qui a connaissance de la correspondance entre noms de domaines et adresses IP. Il est capable de répondre à des requêtes qui lui demandent de résoudre un nom de domaine en une adresse IP.

DNS, un système hiérarchique

Les serveurs DNS sont organisés hiérarchiquement et sont habilités à établir la correspondance entre IP et nom de domaines pour seulement certains noms de domaines et un certain niveau de l'arborescence. Quand un DNS est autorisé à établir cette correspondance, il est fait autorité pour un ensemble de noms de domaines donnés.

Si un serveur DNS n'a pas l'adresse IP correspondante pour un nom de domaine, il va faire appel à un autre serveur DNS.

Les serveurs DNS responsables du premier niveau d'arborescence (.fr, .com, .org, etc.) sont appelés TLD, pour Top-Level Domain.

ExempleRésolution d'une requête DNS

Les navigateurs web ont besoin de résoudre des noms de domaine. Lorsque www.wikipedia.org est consulté, un résolveur DNS entre en jeu.

Chaque nœud de cet arbre correspond à un serveur DNS, responsable d'une partie de l'arborescence.

Pour résoudre www.wikipedia.org, le résolveur commence donc le haut de l'arborescence : le serveur racine. Ce dernier n'est pas responsable de l'adresse IP de Wikipédia mais connaît les serveurs DNS TLD pour .org.

Les serveurs DNS autoritaires pour .org ne sont pas non plus responsables de l'adresse IP de Wikipédia. À leur tour, ils connaissent les adresses IP des serveurs DNS faisant autorité pour Wikipédia.

Ces serveurs fourniront finalement l'adresse du sous-domaine www de wikipedia.org.

MéthodeTrouver une IP soi-même

Il existe des résolveurs DNS en ligne de commande, comme host.

1
$ host www.wikipedia.org
2
www.wikipedia.org is an alias for dyna.wikimedia.org.
3
dyna.wikimedia.org has address 91.198.174.192
4
dyna.wikimedia.org has IPv6 address 2620:0:862:ed1a::1

host retourne les enregistrements DNS, ici on voit l'adresse IPv4 actuelle de Wikipédia, qui est 91.198.174.192

ComplémentRéponse ne faisant pas autorité

L'exemple ci-dessus mentionne que la réponse ne fait pas autorité, ce qui signifie qu'elle émane d'un serveur n'ayant pas autorité sur le nom de domaine.

Ceci s'explique par un système de cache : pour éviter que les serveurs DNS de Wikipédia soient surchargés, d'autres serveurs hébergent une copie des correspondances entre IP et nom de domaine. Ces serveurs ne sont en revanche pas autorisés à modifier ces correspondances.

FondamentalComment est-ce que les noms de domaines sont enregistrés ?

Un nom de domaine peut être acheté auprès d'organismes en charge de l'administration des nom de domaines, appelés registrar. Le registrar va s'occuper d'ajouter le nom de domaine à un de ses DNS faisant autorité puis va aller indiquer aux DNS TLD correspondants qu'un nouvel enregistrant a eu lieu.

ComplémentRésolution itérative ou récursive

Les résolutions DNS peuvent se faire de deux façons :

  • La méthode récursive laisse le premier serveur DNS interrogé faire le travail, et interroger les DNS autoritaires. À la fin, il renvoie la réponse attendue.

  • La méthode itérative laisse le résolveur DNS faire l'ensemble des requêtes à tous les serveurs intermédiaires.

La méthode récursive est plus coûteuse pour le serveur DNS, mais la méthode itérative génère plus de requêtes.

ComplémentRésolution locale de nom de domaine via le fichier hosts

Les systèmes d'exploitation maintiennent un fichier hosts contenant les informations de résolution de certains nom de domaines. Ce fichier a généralement cette forme :

1
127.0.0.1        localhost
2
127.0.0.1        monPC
3
208.80.154.224   www.wikipedia.org.

Ce fichier est interrogé en premier : il est ainsi possible de forcer la résolution d'un nom de domaine en n'importe quel adresse, au niveau de l'ordinateur.

À retenir

  • Un nom de domaine est un alias pour une adresse IP.

  • Les noms de domaines décrivent une arborescence.

  • Le système permettant d'associer adresse IP et nom de domaine s'appelle DNS.

  • Les serveurs DNS sont organisés de manière hiérarchique et s'occupent d'un ensemble donné de noms de domaines.

Informations[1]
Stéphane Crozat, Youssef El Saadany, Quentin Duchemin, Kyane Pichou Paternité - Partage des Conditions Initiales à l'Identique