Installer un serveur DNS basique
Nous allons voir dans ce billet comment installer un serveur DNS. Celui ci va nous permettre d’utiliser les noms de notre zone en guise d’IP : le serveur DNS a pour unique but de transformer un nom d’hôte (ex : www.domaine.fr) en adresse IP afin que les machines puissent communiquer. Cela permet à l’utilisateur de retenir des noms plutôt que de multiples adresses IP pour naviguer sur le net, mais cela permet également de changer l’adresse IP d’une machine de manière transparente pour les autres.
Si le serveur DNS permet de transformer un nom d’hôte en adresse IP, il doit également permettre de réaliser l’inverse : transformer une adresse IP en nom d’hôte. Ce processus est appelé résolution inverse, et correspond à la zone in-addr.arpa.
Installation
Nous utilisons une machine sous Debian Lenny.
Le paquet aptitude correspondant au serveur DNS s’appelle bind9.
apt-get install bind9
Le fichier de configuration générale du serveur DNS se situe dans /etc/bind/named.conf
Une zone est définie comme çi après :
zone « localhost » {
type master;
file « /etc/bind/db.local »;
};
Cela signifie que les hôtes de la zone localhost sont définis dans le fichier /etc/bind/db.local
Par exemple, www.localhost est un hôte de la zone localhost.
Tandis que la zone in-addr.arpa est défini comme ceci :
zone « 127.in-addr.arpa » {
type master;
file « /etc/bind/db.127″;
};
Cela signifie que toutes les IP appartenant à la plage 127.0.0.1 – 127.255.255.254 seront concernées par la résolution inverse. Le fichier contenant les données de résolution inverse trouve à cet endroit: /etc/bind/db.127
Pour créer une zone, il nous faudra donc ajouter les deux éléments vu ci dessus dans le fichier /etc/bind/named.conf
Nous allons créer une zone « zone-test.local », valable pour la plage d’adresse 192.168.0.1 à 192.168.0.254
On ajoute les lignes suivantes au fichier /etc/bind/named.conf :
zone « zone-test.local » {
type master;
file « /etc/bind/db.zone-test.local »;
};
zone « 0.168.192.in-addr.arpa » {
type master;
file « /etc/bind/db.zone-test.local.inv »;
};
Les fichiers de configuration de zone (ici /etc/bind/db.zone-test.local et db.zone-test.local.inv) contiennent certaines informations utiles pour la résolution mais aussi pour la configuration de la zone (temps de rafraichissement des informations, etc…)
Note : un commentaire dans un fichier de configuration est précédé de ‘;’ sans les quotes.
Ces informations sont appelées enregistrements.
Il existe 6 principaux types d’enregistrements :
Les enregistrements de type SOA : (Start of Authority) indiquent l’autorité sur la zone, c’est à dire qu’ils contiennent toutes les informations sur le domaine (délai de mise à jour des bases de données entre serveurs de noms, nom du responsable du site, etc…)
Les enregistrements de type NS : (Name Server) donnent l’adresse du serveur de nom pour le domaine concerné.
Les enregistrements de type MX : (Mail eXchanger) servent à déclarer les serveurs de messagerie.
Les enregistrements de type A (Adress) permettent de définir les adresses IP fixes de la zone.
Les enregistrements de type CNAME (Canonical Name) permettent de définir des alias sur des enregistrements de type A existants.
Les enregistrements de type PTR (Pointer) permettent de réaliser la résolution inverse.
Exemple d’un enregistrement de type SOA :
$TTL 38400
zone-test.local. IN SOA ns1.zone-test.local. root.zone-test.local. (
20000000000 ;numéro de série
10800 ;rafraichissement
3600 ;nouvel essai
604800 ;obsolète après une semaine (si pas de contact avec le serveur maitre)
86400 ;TTL minimal à 1 jour
)
Ici, zone-test.local est défini sur le serveur de noms ns1.zone-test.local et le responsable de la zone est déclaré comme étant root.
Le numéro de série est sous la forme AAAAMMJJNN (dernière modification sur le serveur maitre)
Le . final après chaque domaine signifie que le domaine est pleinement qualifié : le serveur DNS ne devra donc pas tenir compte de la zone actuelle pour trouver ns1.zone-test.local, nous aurions pu écrire ns1 (le serveur aurait alors complété)
Exemple d’enregistrement de type NS :
zone-test.local. IN NS ns1.zone-test.local.
zone-test.local. IN NS ns2.zone-test.local.
Nous avons défini là deux serveurs de noms pour notre zone zone-test.local
Exemple d’enregistrements de type A :
ns1.zone-test.local. IN A 192.168.0.1
ns2.zone-test.local. IN A 192.168.0.2
localhost.zone-test.local. IN A 127.0.0.1
(ns1.zone-test.local sera traduit en 192.168.0.1)
Exemple d’enregistrement de type CNAME :
www IN CNAME ns1.zone-test.local.
ftp IN CNAME ns1.zone-test.local.
Nous avons défini içi des alias, ainsi www pointera sur ns1, et l’hôte www.zone-test.local aura la meme IP que l’hôte ns1.zone-test.local (192.168.0.1)
Exemple d’enregistrement de type PTR :
1.0.168.192.in-addr.arpa. IN PTR ns1.zone-test.local.
2.0.168.192.in-addr.arpa. IN PTR ns2.zone-test.local.
Grâce à cette configuration, le serveur DNS saura donner le nom d’hôte ns1.zone-test.local à la machine qui possède l’IP 192.168.0.1
Avec tous ces enregistrements, nous pouvons maintenant configurer nos deux fichiers DNS. (/etc/bind/db.zone-test.local et db.zone-test.local.inv)
Editons d’abord le fichier de résolution de nom (nous ferons ensuite la résolution inverse).
$TTL 38400
zone-test.local. IN SOA ns1.zone-test.local. root.zone-test.local. (
20000000000 ;numéro de série
10800 ;rafraichissement
3600 ;nouvel essai
604800 ;obsolète après une semaine (si pas de contact avec le serveur maitre)
86400 ;TTL minimal à 1 jour
)
zone-test.local. IN NS ns1.zone-test.local.
zone-test.local. IN NS ns2.zone-test.local.
ns1.zone-test.local. IN A 192.168.0.1
ns2.zone-test.local. IN A 192.168.0.2
localhost.zone-test.local. IN A 127.0.0.1
www IN CNAME ns1.zone-test.local.
ftp IN CNAME ns1.zone-test.local.
Editons maintenant le fichier de résolution inverse, db.zone-test.local.inv :
1.0.168.192.in-addr.arpa. IN PTR ns1.zone-test.local.
2.0.168.192.in-addr.arpa. IN PTR ns2.zone-test.local.
Il faudra ensuite alors redémarrer le serveur bind, en utilisant la commande /etc/init.d/bind restart.
In: Services · Tagged with: A, cname, debian, dns, domain, howto, install, MX, serveur, setup, SOA
