Vous êtes sur la page 1sur 9

Crer un serveur DNS avec Bind9 sous Linux

Vous avez sans doute dj entendu parler du DNS, un protocole incontournable dans le
monde du rseau. Vous retrouvez ce protocole dans absolument nimporte quel appareil
pouvant se connecter internet ou sur un rseau quelconque : ordinateurs, box internet,
consoles de jeu, smartphones
Le fait est que sans DNS, avec les millions dappareils connects internet aujourdhui et les
milliers de serveurs qui existent dans le monde, il serait impossible de pouvoir surfer
correctement sur internet. Rien quen voulant accder un moteur de recherche, par exemple
Google, grce au DNS vous tapez dans votre URL google.fr . Mais si aucun serveur DNS
navait t mis en place, alors la place de google.fr , il aurait fallu entrer
173.194.41.151 . Encore faut-il savoir que cette adresse IP appartient Google. Il est tout
de mme plus facile de retenir un nom quune suite de chiffre vous ne trouvez pas ?
Et dans un rseau dentreprise avec 300 postes vous imaginez sil fallait retenir les 300 IP
plus les IP des routeurs, serveurs Cest absolument impossible et la ractivit en cas de
panne serait catastrophique !
Comme vous pouvez le constater, pas de DNS, pas dinternet et une gestion des rseaux
dentreprise dsastreuse. Cest aussi simple que a.
Cest pour cela que je vais vous expliquer comment fonctionne un serveur DNS et les
configurations appliquer pour en crer un. Si vous voulez suivre le tutoriel suivant, il va
vous falloir un Linux (Debian ou Ubuntu feront trs bien laffaire) et Bind9 dinstall (je vous
recommande de linstaller par lintermdiaire des dpts logiciels).

1) Fonctionnement dun serveur DNS


Le service DNS cest quoi ? Pour info, DNS = Domain Name System. Cest un systme
hirarchique distribu permettant la rsolution des noms de machines en adresses IP et
inversement.
Le DNS considre le rseau comme une arborescence de domaines.
Voici un schma sur le fonctionnement de larborescence :

Un nom de domaine est en fait une succession de domaines spars par un point. Par exemple
.net. est un TLD (Top Level Domain), sous-domaine de la racine. virtualix.net. est un
sous-domaine de .net. .
La rsolution de nom de domaine se fait en parcourant la hirarchie de haut en bas et donc de
droite gauche. Si la dlgation ne se fait pas correctement chaque niveau alors la
rsolution de nom de domaine ne se fera pas.
Le FQDN (Fully Qualified Domain Name) dsigne de manire unique une machine dans le
rseau. Ici le FQDN est www.virtualix.net. .
Dans une entreprise vous aurez toujours deux serveurs DNS. Un serveur primaire et un
serveur secondaire qui va soccuper de la rsolution de nom de domaine en cas de
dysfonctionnement du serveur primaire.
Dans un serveur DNS vous avez deux types de zones : le premier type va rsoudre les noms
de domaine par nom dhte et le deuxime type va rsoudre les noms de domaine par
rsolution inverse (A partir dune adresse IP).
Maintenant que vous savez comment fonctionne le service DNS, attaquons nous la cration
dun serveur DNS. La rsolution de nom se fera uniquement de manire locale, on utilisera
donc comme domaine virtualix.intra . En effet comme les requtes se feront uniquement de
manire locale on peut crer arbitrairement nos domaines de premier niveau.

2) Cration du serveur DNS matre


Lorsque vous avez install Bind9 depuis les dpts, le dossier de configuration de celui-ci se
situe /etc/bind/ .
Les fichiers de configuration de Bind9 se nomment named.conf , named.conf.local et
named.conf.options .
Voici le fichier named.conf :

On ne touchera pas ce fichier.


Voici le fichier named.conf.local :

Cest ce fichier quon modifiera pour ajouter nos zones.


Le fichier named.conf.options ne sera pas abord dans cet article.
On va crer donc les zones correspondant virtualix.intra .
Ma carte est configure avec ladresse IP fixe suivante :
192.168.1.2; 255.255.255.0
Voici quoi ressemble le fichier named.conf.local configur :

Dans le fichier de configuration on peut voir que le serveur est bien de type master et que
les fichiers de zone se situeront dans /etc/bind/ .
Maintenant configurons les fichiers de zones.
Voici quoi ressemble le fichier zone.virtualix.intra :

Voici quoi ressemble le fichier rev.192.168.1 :

Et cest l que vous vous dites, mais cest quoi IN, SOA, CNAME, PTR et toutes ces
valeurs, je ny comprends rien. Patience jy viens.
Les fichiers de configuration qui contiennent les enregistrements DNS sont appels
Ressource Records . Ces Ressource Records contiennent diffrents types
denregistrements que nous allons dcrypter :
TTL (Time To Live) : Cest un terme trs connu dans le domaine du rseau et qui
dfinit dans le cas prsent la dure de vie de lenregistrement dans la mmoire cache du
serveur.
-

IN : Correspond la famille de protocoles TCP/IP.

SOA (Start of Authority) : Permet de dfinir et dcrire le serveur ayant autorit sur la
zone ainsi que ladresse lectronique de ladministrateur du serveur DNS.
Serial : Cest le numro de version pour la zone en question. Par convention le serial est dfini
de cette faon : YYYYMMDDxx . YYYYMMDD est la date laquelle la zone a t
dernirement modifie et xx est le numro de version du jour.
Refresh : Priodicit laquelle les serveurs esclaves regardent si le serial a t incrment.
Dans le cas o il la t, les serveurs esclaves copient la mise jour de la zone en question.
Retry : Dure entre la dernire tentative de mise jour qui a choue et la prochaine tentative
de mise jour de la zone en question.
Expire : Dure de validit de la zone pour les serveurs esclaves. Si les serveurs esclaves ne
peuvent joindre le serveur matre, la zone est considre comme invalide.
Minimum : Dure de vie des demandes denregistrements conservs dans la mmoire cache
considrs comme inexistants.
NS (Name Server) : Noms des serveurs faisant autorit sur la zone (matres ou
esclaves).
-

MX (Mail Exchanger) : Nom de serveur de courrier lectronique.

CNAME : Permet de dfinir des alias associ des noms de machines.

A : Fais correspondre un nom dhte une adresse IPv4. Si ladresse est de type IPv6, le
type denregistrement est AAAA .

PTR : Fais correspondre une adresse IPv4 ou IPv6 un nom dhte. Cest linverse de
A ou AAAA .
Aprs avoir configur Bind9 vous pensez que le travail est termin et que votre serveur DNS
est fonctionnel. Seulement comment en tre sr sans avoir test notre configuration ? Cest
pour cela que nous allons tre notre propre client sur le serveur matre en modifiant lun des
trois fichiers dcrits ci-dessous suivant votre configuration.
Il faut modifier le fichier /etc/dhcp/dhclient.conf si votre carte est en mode DHCP et
dcommenter puis modifier les deux lignes suivantes :

Si votre carte est en mode statique, il faut modifier le fichier /etc/resolv.conf et ajouter les
lignes suivantes :

Si vous avez resolvconf dinstall et que votre carte est en mode statique, il faut modifier
le fichier /etc/resolvconf/resolv.conf.d/head pour ajouter les deux lignes du dessus.
Lentre search indique que maintenant nous faisons partie du domaine virtualix.intra
et lentre nameserver indique que notre serveur DNS sera le premier appel pour la
rsolution de nom de domaine.
Aprs toutes ces oprations, redmarrez le serveur puis faites des tests pour voir si le serveur
DNS fonctionne correctement en utilisant les commandes suivantes : host, nslookup et dig.
Voici comment utiliser la commande host :

Voici comment utiliser la commande nslookup :

Voici
comment utiliser la commande dig :

Vous pouvez aussi consulter les logs systme de Bind9 avec la commande suivante :
tail -30 /var/log/syslog
Si tout fonctionne, vous tes enfin parvenu avoir un serveur DNS fonctionnel. Autrement
reprenez toutes les tapes depuis le dbut. Il suffit parfois dune seule faute de frappe dans
lun des fichiers de configuration pour empcher le bon fonctionnement du serveur DNS.

3) Cration du serveur DNS esclave


Maintenant que le serveur matre a t cr, il est temps de passer la cration du serveur
esclave qui servira en tant que serveur de secours en cas de dfaillance du serveur matre afin
de permettre la continuit du service.
Aprs avoir install votre distribution Linux et Bind9 sur votre deuxime serveur nous allons
passer la configuration du service DNS.
Sur mon second serveur ma carte rseau est configure avec ladresse IP fixe suivante :
192.168.1.3 ; 255.255.255.0
Pour le serveur esclave, le fichier named.conf.local sera configur de cette manire :

Dans le fichier de configuration on peut voir que le serveur est de type slave , il faut
renseigner ladresse IP du ou des serveur(s) matre(s) et enfin il faut mettre un nom de fichier
mais pas le chemin entier /etc/bind/ .
Pourquoi ? Parce que lorsque la zone sera copie, Bind mettra les fichiers de zone dans
/var/cache/bind puisque ces fichiers sont temporaires et seront recopis partir du serveur
matre si les fichiers de zone ont t modifis.

Revenons maintenant sur le serveur matre et procdons quelques petits changements sur le
fichier de configuration et sur les fichiers de zone afin dintgrer le serveur secondaire au
serveur principal.
Voici la configuration pour le fichier named.conf.local :

On peut voir dans le fichier de configuration du serveur matre que deux lignes ont t
rajoutes: notify et allow-transfer qui autorisent le serveur esclave recopier les informations
de zone.
Voici maintenant la configuration pour les deux fichiers de zone zone.virtualix.intra et
rev.192.168.1 :

Comme vous pouvez le constater, je viens de rajouter une entre A et une entre NS ,
les entres de mon serveur esclave.
Maintenant faites comme pour le serveur matre et faites en sorte dtre votre propre client sur
le serveur esclave et faites les tests avec host, nslookup et dig .
Pour tre certain que le transfert de zone seffectue correctement, je vous invite consulter les
logs systme. Si le transfert a bien t effectu alors votre serveur DNS esclave est
oprationnel, sinon reprenez toutes les tapes depuis de dbut.

4) Conclusion
Au cours de cet article nous avons dfini ce quest un service DNS et nous avons cr un
service DNS complet avec un serveur matre et un serveur esclave.
Dans un prochain article, jaborderai les notions de DNS dynamique (DNS + DHCP) et de
scurisation du service DNS.