MaraDNS comme serveur DNS

Formation

En Ligne

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Méthodologie

    En ligne

Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Le programme

Introduction du cours

À partir du moment qu'on gère un site avec un trafic considérable, on est confronté à la gestion de plusieurs noms de domaine. Posséder son propre serveur DNS peut apporter une solution à certains problèmes, mais attention, vous devez bien saisir son rôle et décider si oui ou non vous en avez besoin.

J'expliquerai donc d'abord le fonctionnement global des noms de domaine sur Internet, et par la suite, si vous êtes toujours des nôtres, on entamera l'installation et la configuration de Maradns.

Qu'est-ce qu'un serveur DNS ?

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 :

http://google.com./images

plutôt que :

http://google.com/images

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. :D Prétentieux ? Non, juste faites pas les mêmes erreurs que moi. :-°

Configuration de Maradns

On ne parle généralement que d'un seul serveur DNS sur Debian, il s'agit de Bind9. La documentation sur le net est abondante pour ce serveur très performant. Personnellement, mon choix s'est arrêté sur Maradns pour la charmante simplicité de sa configuration (qui n'en demeure pas moins très malléable !). Mais détrompez-vous si vous pensez qu'il s'agit d'un nouveau serveur encore expérimental. Au contraire, Maradns est développé et maintenu très à jour depuis 2001 et les releases sont toujours extrêmement stables.

Si vous n'êtes pas sûr de comprendre le rôle de Maradns, relisez plusieurs fois la première partie qui explique tout le processus de résolution DNS. Le Maradns que l'on va configurer sera un serveur autoritaire et non un serveur récursif, c'est-à-dire qu'il sera le dernier de tous les serveurs DNS interrogés à donner l'IP finale recherchée par tout le processus.

Installation de Maradns

Si vous êtes sous Debian, sachez que Maradns, dans sa dernière version stable, est présent sur les dépôts officiels. Par contre, pour profiter des derniers correctifs apportés, on va compiler la dernière version. C'est vraiment pas compliqué ! (J'ai inséré le lien pour télécharger la version 1.4.03, mais rendez-vous sur le http://www.maradns.org pour récupérer la dernière version).

wget http://www.maradns.org/download/1.4/1.4.03/maradns-1.4.03.tar.gz tar -xf maradns-1.4.03.tar.gz cd maradns-1.4.03.tar.gz ./configure make make install

Le fichier principal de configuration de Maradns se crée automatiquement dans /etc/maradns/mararc, et bug éternel dans l'installation du logiciel (en fait le bug ne vient pas du logiciel, mais bien du make install). Tout ce que je vous demande, c'est de déplacer le fichier dans /etc/ ainsi :

mv /etc/maradns/mararc /etc/mararc

Voilà pour l'installation. Pour lancer le serveur, il vous suffit de taper maradnsça va, tout le monde a essayé ? mais ça ne sert à rien de le faire maintenant, il n'est pas configuré. :)

Le fichier de configuration principal /etc/mararc

On n'aura que quelques lignes à modifier dans /etc/mararc.

D'abord, on définit l'adresse IP du serveur (l'adresse sur laquelle le serveur écoutera et recevra les requêtes). Si c'est un serveur sur un réseau local, vous entrez l'IP locale, sinon, l'IP sur Internet. Simplement :D Recherchez la ligne, ou créez-la si vous ne la trouvez pas :

ipv4_bind_addresses = "x.x.x.x"

Le serveur pourrait écouter sur plusieurs adresses IP, il vous suffirait de les séparer par une virgule.

Ça veut dire quoi "écouter" ?
C'est simplement être attentif aux requêtes. Une machine peut être contactée de plusieurs façons, mais le serveur DNS Maradns ne recevra que les requêtes pour lesquelles la machine a été contactée par les IPs sur lesquelles il écoute. Ex : l'IP 127.0.0.1 pour la machine elle-même, une IP débutant par 192.168.x.x pour un autre ordinateur sur le réseau, et une autre IP pour identifier la machine sur Internet. Si le serveur est destiné à un réseau local mais tout de même connecté à Internet, alors il pourrait n'écouter que sur son IP locale. Il ne pourrait être contacté que par les autres ordinateurs du réseau.

Ensuite, on change la...

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

MaraDNS comme serveur DNS

Prix sur demande