26/11/2024

Le principe de la résolution de noms

I. Présentation

Le mécanisme permettant de trouver une adresse IP correspondant au nom d’une machine s’appelle la résolution de nom de domaine. Généralement, on effectue cette opération grâce à un logiciel ou une application, la plupart du temps, intégrée au système d’exploitation, appelé résolveur.

Ainsi, lorsqu’une application souhaite se connecter à un hôte connu de par son nom de domaine, elle  interroge le serveur de noms défini dans sa configuration réseau. Chaque machine connectée à ce même réseau possède alors dans son paramétrage les adresses IP des deux serveurs de noms liés au fournisseur d’accès à Internet.

L’application ou le client envoie alors une requête au premier serveur de noms (appelé serveur primaire). Si celui-ci possède l’enregistrement dans son cache, il renvoie le résultat à l’application. Dans le cas contraire, il interroge un serveur racine TLD. Ce dernier lui renvoie alors une liste de serveurs de noms faisant autorité sur le domaine :

Les hôtes n’ont qu’une connaissance limitée du système et de l’ampleur des noms de domaine. Lorsqu’ils doivent résoudre un nom, ils s’adressent à un (ou à plusieurs) serveur de noms, alors appelés récursifs, en raison de leur facilité à parcourir la hiérarchie DNS et de faire suivre la requête à un ou plusieurs autres serveurs de noms en mesure de répondre.

II. Serveurs DNS récursifs

Les adresses IP des serveurs récursifs, sont souvent récupérées via le protocole DHCP ou carrément configurées en dur, sur le serveur concerné. Les fournisseurs d’accès à Internet (ou FAI), mettent à disposition des clients, ces serveurs récursifs. Il existe également des serveurs récursifs ouverts, tels que Google Public DNS ou OpenDNS. Les serveurs récursifs s’apparentent donc aux serveurs primaire et secondaire mentionnés plus haut.

Afin d’optimiser ce processus itératif permettant de trouver une adresse IP à partir d’un nom, les serveurs DNS font souvent office de cache DNS : c’est-à-dire qu’ils gardent en mémoire (appelée cache), la réponse d’une résolution de nom antérieure afin d’optimiser les requêtes ultérieures et ne pas effectuer cette recherche à nouveau, par la suite. L’information est conservée en cache durant une période appelée "time to live" et est associée à chacun des noms de domaine.

On dit des serveurs primaires et secondaires qu’ils font autorité. Cela signifie qu’ils ne font appels à aucun autre serveur pour récupérer la réponse à leur requête ou ils peuvent éventuellement piocher dans le cache. Ce dernier peut d’ailleurs conduire à des réponses obsolètes. Lorsqu’une telle réponse arrive, on parle alors de réponse non autoritaire (non-authoritative answer).

Grâce à ce modèle, le réseau Internet dispose d’une confortable continuité de service dans le mécanisme de résolution de noms. De plus, lorsqu’un serveur DNS tombe en panne ou est indisponible, le bon fonctionnement est assuré grâce aux serveurs secondaires.

III. Résolution de noms inversée

S’il est possible de résoudre une adresse IP par rapport à un nom de domaine, il est également possible de disposer de l’information inverse : trouver un nom de domaine depuis une adresse IP. L’opération est sensiblement la même que pour la résolution de nom. Dans un nom de domaine on a la partie la plus générale à droite.

Donc, pour le nom de domaine it-connect.fr, la résolution parcourt alors le nom de domaine de droite à gauche.

REMARQUE : pour une adresse IPv4 250.32.54.3, la partie la plus générale se trouve à gauche : 250. Afin de conserver une méthode cohérente, il suffit d’inverser l’ordre des quatre membres de l’adresse IP et de les concaténer au pseudo-domaine in-addr.arpa.

Exemple : trouver le domaine de l’adresse 80.198.14.2 revient à résoudre 2.14.198.80.in-addr.apra.

IMPORTANT : la déclaration inverse est très importante concernant les adresses IP publiques Internet (cf. cours Réseau TCP/IP), car l’absence d’une résolution inverse est considérée comme une erreur et est décrit dans la RFC1912. Cela peut entraîner le refus d’accès au service.

Bien évidemment, cette résolution inverse, dans le cadre de diagnostique réseau, permet de rendre la commande traceroute, utilisée pour tracer le chemin emprunté par les paquets d’informations entre une source et son destinataire, beaucoup plus lisible et exploitable. Les spécifications de noms d’hôtes inverses sont souvent composées de sous-domaines de localisations telles que ville, région, pays… et de domaines précisant le fournisseur d’accès à Internet par lequel transitent les requêtes : xxxx.Aubervilliers.routers.proxad.net (pour Free Telecom).

Une adresse IP peut être associée à plusieurs noms de domaine différents que l’on précise lors de la déclaration des entrées PTR, dans le sous-domaine .arpa dédié à cette adresse (in-addr.arpa pour une adresse de type IPv4 et ip6.arpa pour le protocole IPv6). Ce type de déclaration d’enregistrements PTR multiples pour une même adresse IP sert surtout dans le cadre d’hébergement virtuel de plusieurs domaines web derrière la même adresse IP.

ATTENTION : ce genre de déclaration n’est pas recommandée, car le nombre de champs PTR à renvoyer peut faire déborder la taille des paquets UDP  de réponse et, de fait, entrainer l’utilisation du protocole TCP, plus coûteux, afin d’envoyer la requête de retour DNS.

En termes de performance, afin d’assurer une certaine qualité de service et permettre l’équilibrage de charge, en cas de trafic important, le service peut faire appel à la technique dite du DNS round-robin (ou DNS tourniquet), consistant à associer plusieurs adresse IP à un même FQDN. L’ordre dans lequel ces adresses sont renvoyées est modifié d’une requête à l’autre. Une rotation circulaire permet alors de répartir la charge générée par le trafic ambiant, entre les différentes machines ayant ces adresses IP. Toutefois, cette répartition n’a lieu qu’à la résolution du nom de machine, et subsiste par la suite, dans le cache des différents résolveurs (donc les clients DNS).

IV. Conclusion sur ce premier module

Le premier module de ce cours DNS se termine, il est temps de conclure avant de passer à la suite.

Je dirais qu'il ne faut surtout pas acheter un nom domaine, n’importe où. Seuls les registrar agréés par l’ICANN sont habilités à en vendre. La liste de ces revendeurs peut être consultée à l’adresse suivante : Registrars accrédités. Il ne faut pas oublier qu’en cas de litige, l’ICANN possède un médiateur que l’on peut appeler.

Un nom de domaine n’est jamais gratuit il y a toujours une souscription à payer. Une fois un nom de domaine acheté on doit être désigné comme l’unique propriétaire de celui-ci. Si ce n’est pas le cas il faut effectuer une réclamation. Le nom de domaine, dans les URL visibles depuis notre navigateur est le mot précédant le TLD : .com, .net, .fr, juste avant le premier slash :

http://www.it-connect.fr : le nom de domaine est it-connect.fr.

Les noms de domaines ne sont pas attribués à vie. Il ne s’agit que de locations à renouveler périodiquement. On peut généralement s’affranchir de son dû tous les ans tous les deux ans, voire même tous les dix ans. Le registrar est censé nous rappeler à l’ordre juste avant la date d’expiration du délai.

La société française Gandi, est un des registrar le plus en vue. Il propose des noms de domaine .com, .net, .org, .biz… pour quelques dizaines d’euros par an. C’est l’un des moins chers de la place. Il fournit gratuitement l’hébergement DNS, la redirection HTTP vers une page de son choix, et il est accrédité par l’ICANN.

author avatar
Philippe PIERRE
A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail