Ceci est une ancienne révision du document !
Table des matières
Notions de base
Découverte du serveur DNS utilisé
Donc, notre fournisseur d'accès nous propose une ou plusieurs adresses de serveurs DNS récursifs, et notre système va les récupérer lors de sa configuration IP. Pour connaître ces adresses, il faut savoir retrouver sa configuration. La façon de faire varie suivant le système d'exploitation utilisé.
Pour les distributions Debian GNU/Linux et dérivées, l'information se trouve généralement dans le fichier /etc/resolv.conf
. Par exemple :
cat /etc/resolv.conf nameserver 212.27.40.240 nameserver 212.27.40.241
Mais sur du matériel compatible IPv6, nous pourrions trouver des choses plus modernes comme:
cat /etc/resolv.conf Generated by NetworkManager nameserver 2a01:e0a:875:b1d2::1 nameserver fd0f:ee:b0::1
Le contenu de ce fichier peut être dynamiquement mis à jour de diverses manières. Sur un poste sans interface graphique ce pourra être l'outil dnsconf
qui collecte les informations fournies par le client DHCP, la découverte des voisins en IPv6, systemd-resolved…
Avec une station graphique qui utilise network-manager comme dans l'exemple, c'est encore plus opaque et plus simple pour l'utilisateur. Quoi qu'il en soit, sur un hôte correctement configuré, le système doit avoir des informations réputées valides sur le ou les serveurs à interroger.
Test de résolution
Dans les systèmes GNU/Linux, la commande nslookup
n'est plus maintenue. Les outils à retenir sont host
et dig
.
# host irp.nain-t.net irp.nain-t.net has address 213.186.40.149
Quel que soit le service que nous utilisons sur un réseau, navigateur web, client de messagerie, IRC, dès lors que nous identifions le serveur interrogé par son nom, le système devra effectuer une résolution de ce nom, de manière à trouver l'adresse IP correspondante, et exploitera les services du serveur DNS, comme nous l'avons fait avec host
.
Analyse d'un FQDN
Prenons un exemple un peu compliqué, comme www.education.gouv.fr
; en toute rigueur, il serait plus correct d'écrire www.education.gouv.fr.
(avec un point final, subtile différence).
- la partie la plus à gauche représente toujours un hôte ;
- la partie la plus à droite représente toujours un domaine générique (TLD) ;
- entre les deux, les éventuels sous-domaines et le domaine déposé de l'entité concernée.
Ainsi, un serveur (un hôte), ici www
appartiendrait à un sous-domaine (education
) du domaine gouv
, lui-même étant un élément du domaine générique fr
(la réalité n'est hélas pas si simple, comme l'avenir va le montrer). Notons qu'il serait plus judicieux de parler d'un nœud ; en effet, un hôte peut disposer de plusieurs interfaces réseau et donc disposer de plusieurs adresses IP.
Nous avons donc une structure arborescente dont l'origine est le fameux point final, que l'on omet généralement, mais qui existe bel et bien et qui représente la racine de l'arbre. Nous pouvons d'ailleurs utiliser la commande host
comme ceci :
$ host www.education.gouv.fr. www.education.gouv.fr is an alias for front.webedu.men.aw.atosorigin.com. front.webedu.men.aw.atosorigin.com has address 160.92.130.142
Tiens, voilà autre chose…
www.education.gouv.fr
ne serait pas un « vrai nom », mais simplement un synonyme de front.webedu.men.aw.atosorigin.com
? Encore une remarque à se mettre sous le coude. En effet, DNS prévoit qu'un hôte (un nœud) puisse s'appeler de diverses manières, parfois très différentes comme c'est le cas ici. L'éclaircissement viendra sans doute dans la suite de ce chapitre.
Pourquoi « serveur récursif » ?
Dans la suite de ce chapitre, nous allons voir d'un peu plus près comment un serveur DNS est structuré et comment l'architecture arborescente d'un FQDN est en fait l'image d'une arborescence de serveurs DNS spécialisés.
A priori, un serveur DNS récursif n'a par lui-même aucune réponse, du moins aucune réponse « qui fait autorité ». en revanche il sait exactement rechercher qui et dans quel ordre il faut interroger pour obtenir une réponse « qui fait autorité ». Comme en informatique, la paresse et la mémoire sont deux qualités fondamentales, notre serveur DNS récursif va conserver dans sa mémoire pendant « un certain temps » les résultats de recherche qu'il a obtenus et s'en servira en priorité, pour avoir moins de travail. Nous étudierons tout ceci plus loin, mais cette fonctionnalité explique déjà la réponse « ne faisant pas autorité » vue plus haut. En effet, lorsqu'un serveur DNS sert une réponse issue de son cache, il signale de cette manière qu'elle ne vient pas d'un serveur de référence.