Installer un serveur de nom (DNS) avec Bind
Gérer un serveur de nom sur son dédié.
Nous allons voir ici l’installation d’un serveur de Nom (DNS). Même si un tel serveur n’est franchement pas utile pour gérer quelques noms de domaines. Pour rappel, on nomme aussi DNS l’ensemble du système qui permet de transformer un nom (www.domaine.com) en adresse I.P.. Dans ce cas, DNS signifie Domaine Name Service.
Nous allons nous intéresser au Domaine Name Server que nous allons installer via debian mais l’installation diffère peu entre toutes les versions de Linux.
Le principe de fonctionnement
Généralement les serveurs de noms marchent par deux. Un primaire et un secondaire (la copie du primaire). Ceci principalement pour l’intégrité des données et avoir une roue de secours en cas de panne du serveur primaire.
Les informations des DNS sont regroupées par Zone, une zone peut être primaire ou secondaire. Voyons un peu plus loin un fichier de configuration en installant Bind.
Nous allons installer la version 9 de Bind qui est la plus sécurisée
apt-get install bind9 cd /etc/bind/ pico named.conf
Le fichier named.conf contient les informations de toutes les zones. L’installeur nous a normalement configuré par défaut plusieurs zones de ce type
zone "localhost" { type master; file "/etc/bind/db.local"; };
Le nom de la zone (ici localhost) doit être contenu entre guillemet, il s’agit du nom que l’on tape par exemple dans un navigateur. Par exemple votredomaine.com
Le type définit si la zone est primaire ou secondaire, dans ce cas le paramètre master définit une zone primaire.
Enfin le paramètre file indique un fichier contenant tous les autres paramètres de la zone.
Par conséquent, on ajoutera la gestion de notre nom de domaine en ajoutant une zone de ce type
zone "sos-dedie.com" { type master; file "/etc/bind/db.sos-dedie.com"; };
Donc c’est très simple.
Configuration d’une zone.
Maintenant que nous avons déclaré notre zone il faut donner les renseignements sur les services de cette zone dans le fichier db.sos-dedie.com
Tout d’abord commence une déclaration
$TTL 86400
Cette variable indique simplement la durée de vie de tout enregistrement (si une instruction contraire dans l’enregistrement n’est pas mentionnée)
@ IN SOA ns1.sos-dedie.com. postmaster.sos-dedie.com. ( 20050321 ;Serial 604800 ;Refresh 86400 ;Retry 2419200 ;Expire 604800 ) ;Cache TTL
Cette partie indique des paramètres généraux. Le signe @ correspond au nom de la zone. Ensuite nous déclarons le nom de notre serveur DNS et l’adresse email du responsable. Veuillez noter que le nom du serveur se termine par un point et que l’adresse du responsable ne contient pas d’arobase, celui-ci est remplacé par un point.
Le serial est un nombre, par convention la date à l’envers permettant aux autres serveurs de reconnaître une nouvelle configuration. Si vous changez le fichier, n’oubliez pas de remettre ce serial à jour. Les autres champs : Refresh, Retry, Expire, et Cache TTL indique aux serveurs esclaves divers paramètres de rafraîchissement.
@ IN NS ns1.sos-dedie.com.
Cette ligne indique que pour cette zone (pour rappel @ remplace sos-dedie.com) il existe un serveur de nom qui s’appelle ns1.sos-dedie.com.
@ IN A 84.244.3.78
Ensuite on indique l’adresse IP effective du nom de domaine sos-dedie.com, pour une adresse IPv6 (nouvelle version du protocole IP) vous devez remplacer A par AAAA
@ IN MX 5 mail
Enfin, on indique que l’adresse du serveur de courrier sera mail.sos-dedie.com et que celui-ci a une priorité de 5. On pourrait rajouter d’autres adresses de serveurs de courrier en créant d’autre ligne identique et en changeant la priorité et l’adresse. Les priorités permettent d’essayer l’accès à plusieurs serveurs de courrier dans l’ordre de la priorité.
Enfin nous finissons en indiquant que mail et www ont une adresse IP
www IN A 84.244.3.78 mail IN A 84.244.3.78
Remarquez que pour ces deux lignes on ne mentionne pas www.sos-dedie.com. Ou mail.sos-dedie.com. En effet, Bind rajoute automatiquement le nom de la zone si la mention de la colonne de gauche ne contient pas de . à la fin. Comme ici c’est le cas, bind interprete donc www comme étant www.sos-dedie.com.
Comme d’habitude on fait un restart du service
/etc/init.d/bind9 restart
On peut regarder ce que nous dit Bind dans le syslog
tail /var/log/syslog
Et enfin on peut tester la résolution des noms avec la commande host
apt-get install bind9-host host www.yahoo.fr ns1.sos-dedie.com
Normalement, la commande nous renvoi quelquechose de ce genre
Using domain server: Name: ns1.sos-dedie.com Address: 84.001.2.8#53 Aliases: www.yahoo.fr is an alias for www.euro.yahoo.akadns.net. www.euro.yahoo.akadns.net has address 217.12.3.11
qui indique bien que le nom www.yahoo.fr a été résolu grâce à notre serveur de nom dont l’adresse est ns1.sos-dedie.com
Dernière étape
Il ne reste plus qu’à indiquer à notre registrar nos nouveaux serveurs de noms. Nous lui indiquons donc que le DNS primaire est maintenant ns1.sos-dedie.com. Comme il ne connaît pas du tout ce serveur de nom, il y a de forte chance qu’il vous demande son adresse IP.
Merci beaucoup pour cette explication! C’est l’un des plus claires et des plus utiles que j’ai lus.
Salut,
J’ai suivi la procédure, et j’ai quelques remarques :
Avant toute chose, il faut associer une adresse IP au serveur « ns1.sos-dedie.com » (dans l’ewemple). Si votre nom de domaine est enregistré chez Gandi, par exemple, il faut déclarer un « glue record ». Cela va associer l’adresse IP 84.244.3.78 à l’hôte « ns1.sos-dedie.com ».
Ensuite, il faut un serveur DNS secondaire. Personnellement mon nom de domaine est hébergé chez Gandi. J’ai déclaré comme DNS secondaire l’hôte recommandé par Gandi (ns6.gandi.net).
A+
Salut,
J’ai une petite question. Je me demande s’il n’est pas nécessaire de créer un fichier du style « 84.244.3.rev » qui contiendrait quelque chose du style :
$TTL 1d ;
$ORIGIN 3.244.84.IN-ADDR.ARPA.
…
Qu’en est-il?
Merci,
Denis
Salut,
J’ai suivi les explications fournies dans le document. Mais, pour lancer BIND, j’ai été obligé de procéder à des opérations supplémentaires :
J’ai ajouté le nom de l’hôte « ns1.sos-dedie.com. » dans le fichier « /etc/hosts ». La ligne est, dans « /etc/hosts » est:
84.244.3.78 localhost ns1.sos-dedie.com.
Ensuite j’ai ajouté une ligne au fichier de zone:
ns1 IN A 84.244.3.78
En faisant cela, les tests sont positifs (mon site est « les-aperos.com »):
named-checkzone les-aperos.com db.les-aperos.com
zone les-aperos.com/IN: loaded serial 20050324
OK
host http://www.yahoo.fr ns1.les-aperos.com.
Using domain server:
Name: ns1.les-aperos.com.
Address: 92.243.4.221#53
Aliases:
http://www.yahoo.fr is an alias for http://www.euro.fyeu.b.yahoo.com.
http://www.euro.fyeu.b.yahoo.com has address 217.146.186.51
J’ai aussi modifié la configuration DNS chez GANDI:
J’ai désigné ns1.les-aperos.com. pour serveur DNS primaire.
J’ai désigné un serveur DNS de chez GANDI pour serveur DNS secondaire.
A+
A+