Une erreur fréquente en informatique, c'est de se lancer tête baissée dans l'installation et la configuration d'un logiciel sans même saisir pleinement sa raison d'être et son utilité (je plaide coupable !

). Ici, pour savoir si vous avez besoin d'un serveur DNS et pour comprendre à quoi ça sert, vous devez vous approprier un minimum de vocabulaire et comprendre le processus de
résolution DNS. Continuez de lire pour voir si, à tout hasard, ne j'expliquerais pas tout ça dans les prochaines lignes.
Un nom de domaine
Allons-y pour la définition très précise, de ma main :
Un nom de domaine désigne, en général, une adresse Internet composée de caractères alphanumériques à laquelle on peut attribuer un sens (en la composant de mots par exemple). Un nom de domaine peut être composé de toutes les vingt-six lettres de l'alphabet latin, des chiffres de 0 à 9 et du trait d'union. Les noms de domaine sont insensibles à la casse ; chaque lettre majuscule sera considérée comme son homologue minuscule.
Certains donnent la même signification à l'expression
nom de domaine qu'au terme
DNS.
DNS est l'acronyme de
Domain Name System, c'est-à-dire un ensemble de serveurs, de réseaux et de règles rendant un ou plusieurs noms de domaine opérationnels. Certains vont donner à l'acronyme
DNS la signification
Domain Name Server. Ce n'est pas nécessairement une erreur, cette définition est généralement bien acceptée dans le jargon. L'expression
serveur DNS, bien qu'un peu répétitive si traduite ainsi, désigne, au sens large, tout logiciel ou serveur physique répondant à des requêtes DNS. Bref, DNS est utilisé un peu n'importe comment, mais généralement on comprend qu'on réfère à quelque chose en lien avec les noms de domaine.
Les différents niveaux de domaine
Il existe différents
niveaux de domaine, qui suivis d'un point, forment un nom de domaine :
- Domaine de premier niveau (abrégé TLD) : c'est le domaine complètement à la fin du nom de domaine. Par exemple, dans le nom de domaine exemple.com., le domaine de premier niveau est com.
- Domaine de second niveau (abrégé SLD) : c'est généralement le domaine que nous pouvons choisir lorsque nous enregistrons un nom de domaine. Par exemple, dans le nom de domaine news.google.com, le domaine de second niveau est google.com.)
- Et ainsi de suite.. on entend très rarement le terme domaine de troisième niveau, on préférera le terme sous-domaine par convention.
Remarquez la présence d'un point chaque fois que l'on termine l'écriture d'un niveau de domaine, même pour le TLD. En effet, en théorie, chaque nom de domaine devrait se terminer par un point, dans toutes les circonstances. Cependant, toutes les applications client comprennent et acceptent l'omission de ce point. Ainsi, en théorie, on devrait visiter :
Code : Autre1
| http://google.com./images |
plutôt que :
Code : Autre
Vous pouvez essayer de l'entrer dans votre navigateur, vous aboutirez à la même page, car votre navigateur, peu importe duquel il s'agit, comprendra la requête.
S'il est facultatif, pourquoi insister sur la présence de ce point à la fin ?
S'il est vrai que le point terminal est facultatif dans toutes les applications client tels les navigateurs Web, il en est autrement lorsque l'on parle d'un serveur DNS. Partout dans la configuration d'un serveur DNS, lorsque nous référerons à un nom de domaine, nous devrons nous assurer de le terminer par un point, comme il se doit.
Généralement, lorsque l'on parle
d'enregistrer un nom de domaine, on réfère à la réservation d'un domaine de second niveau (SLD). Dans certains cas, on réfère à l'enregistrement d'un domaine de troisième niveau. Ce peut être le cas lorsque l'association régissant l'allocation du TLD décide de le diviser en plusieurs SLD. Par exemple, le TLD
ca., pour les enregistrements géographiques canadiens, peut être divisé en plusieurs SLD pour chacune de ses provinces. Ainsi, lorsque l'on veut enregistrer un nom de domaine se terminant par
qc.ca., on enregistrera un domaine de troisième niveau. Certains considéreront
qc.ca. comme le TLD, mais c'est une erreur, il s'agit là bel et bien du SLD.
Domaines géographiques et génériques
Les TLD peuvent être...
- génériques : le TLD est ouvert à tous et considéré comme international, c'est-à-dire qu'aucun état politique n'exerce de contrôle sur sa répartition. Ces domaines sont gérés par l'ICANN (Internet Corporation for Assigned Names and Numbers).
- géographiques : le TLD est géré par un organisme mandaté (généralement une société d'état) et l'enregistrement de SLD est soumis à quelques restrictions. Exemple d'organismes : CIRA (Canada) et AFNIC (France)
Afin de bien comprendre le rôle de ces organismes et la façon dont ils interviennent au quotidien lorsque nous sollicitions des noms de domaine, nous devons définir un nouveau concept : la résolution DNS.
La résolution DNS
La résolution DNS est un processus au cours duquel on désire obtenir, pour un domaine (peu importe le niveau), une adresse IP. Peu importe qu'il s'agisse du domaine
test.test2.example.qc.ca. ou tout simplement de
com., l'objectif de la résolution DNS est le même : obtenir une adresse IP. Pour chaque niveau de domaine, en partant du TLD (premier niveau, à droite complètement), on devra solliciter un serveur DNS pour obtenir une adresse IP. Une fois que le premier serveur est sollicité, il nous fournira les informations nécessaires pour savoir quel serveur solliciter pour résoudre le SLD, et ainsi de suite. Le problème demeure : par où commencer ? Comment savoir quel serveur solliciter pour obtenir une adresse IP pour résoudre le TLD ? La réponse est simple : les serveurs racines du DNS.
Les serveurs racines du DNS
Les serveurs racines du DNS représentent une poignée de serveurs de l'ICANN (environ une vingtaine) dont les adresses IP sont connues et
fixes. L'adresse IP d'un serveur à la racine du DNS ne doit pas changer, ou alors très rarement. Ainsi, depuis plus de dix ans, ces serveurs ont conservé leur adresse IP et tous les autres serveurs DNS du monde utilisent ces adresses IP pour résoudre les domaines de premier niveau. Et voilà donc, notre problème est résolu. Avec les serveurs racines du DNS, nous connaissons l'adresse IP du serveur qui nous aidera à résoudre le TLD. Nous enverrons donc une requête DNS et le serveur DNS auquel cette adresse est attribuée nous transmettra une nouvelle adresse IP pour le TLD concerné. Si pour le TLD
com. nous avons obtenu l'adresse IP
a.b.c.d, nous enverrons donc une nouvelle requête à cette adresse pour résoudre le SLD (domaine de second niveau). Pour l'exemple, le SLD sera
exemple.com.
Généralement, une fois que le SLD est résolu, on obtient l'adresse IP d'un serveur à interroger, mais dans un autre objectif : on veut toujours obtenir une adresse IP, mais cette fois, pas nécessairement celle d'un serveur DNS, mais plutôt celle d'une machine pour laquelle le nom de domaine sera un alias de l'IP. Autrement dit, on veut enfin récupérer l'adresse IP qui répondra aux pings du nom de domaine.
Compliqué ? Pas tant que ça. Si on résume,
la résolution DNS consiste, ultimement, en l'obtention d'une adresse IP pour un nom de domaine. Pour résoudre un nom de domaine, on doit d'abord résoudre tous les domaines des niveaux qui le précèdent : si on veut résoudre un domaine de second niveau, on doit d'abord résoudre le domaine de premier niveau. Pour débuter la résolution, on sollicite les serveurs à la racine du DNS, dont l'ip ne changent pas et permet de résoudre tous les domaines de premier niveau.
En résumé, pour résoudre le nom de domaine www.exemple.com., on procède ainsi :
- on demande une adresse IP aux serveurs à la racine du DNS nous permettant de résoudre com.
- on sollicite cette nouvelle adresse IP pour obtenir l'adresse IP correspondant à exemple.com.
Attention par contre, l'adresse IP obtenue ici pour exemple.com n'est pas nécessairement celle vers laquelle il "pointe". Non, c'est l'adresse du prochain serveur DNS à interroger. Ça continue comme ça tant et aussi longtemps qu'on n'obtient pas une réponse dite autoritaire (la réponse finale qui met fin au processus de résolution DNS, je définis plus bas).
Cette explication du processus est très sommaire et ne tient pas compte d'un facteur essentiel au bon fonctionnement du DNS :
la mise en cache. De nombreux serveurs DNS intermédiaires peuvent intervenir dans le processus et mettre en cache les données qu'ils ont déjà sollicitées. Ainsi, les adresses IP correspondant au nom de domaine
google.com. ne font pas l'objet d'une résolution DNS complète à chaque fois que l'on visite une page sur Google. Non, car :
- Votre ordinateur met en cache les adresses IP pour un temps déterminé (environ 1 heure).
- Votre FAI met également en cache les adresses IP pour un temps plus long (environ 24 heures).
- D'autres acteurs peuvent mettre en cache les données avant qu'elles ne parviennent à vous ou à votre FAI.
Du coup, vous venez de comprendre le processus de
propagation DNS. Si l'adresse IP associée à un nom de domaine venait à changer, il ne suffit pas de vider le cache DNS de son ordinateur : cela ne servira à rien tant et aussi longtemps que votre FAI ne rafraîchira pas son cache. Pour cette raison, lorsqu'un changement est apporté à un configuration DNS, il peut prendre de 24 à 48 heures pour être connu de tous les intermédiaires entre l'utilisateur final et le serveur dont provient la modification.
Serveur DNS autoritaire et serveur DNS récursif
Il existe deux types de serveurs DNS :
- autoritaire : on dit du serveur autoritaire qu'il a autorité sur la zone DNS. C'est-à-dire que c'est ce serveur qui fournira, au final, toutes les adresses IP associées au nom de domaine et sous-domaines.
- récursif : le serveur sert uniquement de relais entre un serveur et un autre dans le processus de résolution DNS qui se terminera lorsque le serveur autoritaire aura été contacté.
Un serveur peut agir à titre de serveur autoritaire pour certaines zones, et à titre de serveur récursif pour d'autres zones.
Le terme zone DNS que j'ai commencé à utiliser désigne la configuration d'un nom de domaine au sein d'un serveur DNS. Lorsque l'on parle d'une zone DNS, on désigne souvent le fichier de configuration d'un nom de domaine desservi par le serveur, ou plus généralement, le nom de domaine directement.
Nous apprendrons à configurer un serveur DNS autoritaire qui ne supporte pas la récursion. Les raisons de ce choix sont simples :
- L'objectif de ce tutoriel est de vous apprendre à configurer un serveur DNS qui répondra aux besoins du commun des administrateurs systèmes. Le serveur DNS récursif sert davantage à de gros acteurs du DNS (fournisseurs d'accès Internet notamment). Notre serveur DNS aura autorité sur les zones qu'il dessert.
- L'AFNIC, l'association en charge du TLD fr., ne valide pas les zones desservi par des serveurs acceptant la récursion (elle évoque des motifs de sécurité très discutables sur lesquels nous ne nous acharnerons pas
).
Nous sommes maintenant prêts à commencer la configuration d'un serveur DNS. Ne continuez pas si vous n'êtes pas capable de réciter par coeur la définition de la résolution DNS, parce que si vous ne comprenez pas ça, vous n'avez aucune raison d'installer un serveur DNS, croyez-moi.

Prétentieux ? Non, juste faites pas les mêmes erreurs que moi.