Configurer un ndd avec bind

Publié le 24 août 2008 par Mikebrant

parce qu' everybody's got to learn sometimes

Alors pour le tuto, j'utilise une CentOs 5 , qui va être le serveur DNS et web .
monNomDeDomaine : qui-saura.com
monIp : 87.98.150.XX

Pensez à faire pointer le nom de domaine sur le serveur.

On commence par installer bind :

yum install bind-chroot


Mais comme notre bind est chrooté , il faut faire des liens symboliques pour éviter des ratages :

cd /var/named/chroot/var/named/ & ln -s ../../ chroot


Puis on crée le fichier /var/named/chroot/etc/named.conf :

touch /var/named/chroot/etc/named.conf  #très compliqué ...


On va mettre dedans :

acl "ipInternes"{
 127.0.0.1;
};
view "interne"{
match-clients{ ipInternes; };
recursion yes;
include "/var/named/chroot/etc/zones.conf";
};
view "externe"{
match-clients{ any; };
recursion no;
include "/var/named/chroot/etc/zones.conf";
};


Alors l' acl "ipInternes" va nous permettre de lister les IP appartenant aux réseaux de confiances .
Ensuite on définit 2 vues :
- une vue "interne", qui va donc être utilisée pour les clients dont leurs ips appartiennant à notre acl "ipInternes" ;
on met le mode recursion à yes, cad que l'on va autoriser notre serveur à résoudre d'autres noms de domaines en interrogeant d'autres serveurs.
puis on charge le fichier /var/named/chroot/etc/zones.conf
- une vue "externe", qui va être utilisée pour tous les autres clients .
On va mettre recursion à no, afin d'éviter le cache-poisoning .
Et on charge également le fichier /var/named/chroot/etc/zones.conf .

Maintenant on va créer notre fichier de déclaration de zones/var/named/chroot/etc/zones.conf :


Zone
"qui-saura.com" IN {

type master;
file "/var/named/chroot/etc/db.qui-saura.com";
allow-transfer{ none; };

};


Quand on essaie d'accéder, par exemple, à www.qui-saura.com, notre requête va passer par le serveur de noms de notre FAI (en règle général).
Si celui-ci ne connait pas le serveur qui gère ce Full Qualified Domain Name (c'est le nom de domaine + le sous domaine : www ) , alors il va envoyer une requête pour l'adresse  www.qui-saura.com :
au serveur de noms . ,
=>au serveur de noms com. ,
==>au serveur de noms qui-saura.com.
On dit alors que chaque serveur de noms gère une zone.
Donc Zone "qui-saura.com" indique que notre serveur gère la résolution du nom qui-saura.com.
master pour définir notre serveur en tant que serveur 'maître' (qui l'eut cru) , c'est lui qui va gérer la zone qui-saura.com.
allow-transfer à none puisqu'on a pas de serveurs esclaves ( serveurs de répliques du serveur maître ).

on va maintenant créer notre fichier de configuration de la zone qui-saura.com./var/named/chroot/etc/db.qui-saura.com:

; qui-saura.com
$TTL    604800
@   IN   SOA   dns.qui-saura.com. root.qui-saura.com (
   2008042401; numero de serie
   172800; rafraichissement
   900; retentative
   3600; expiration
   604800); TTL minimum
;
@   IN   NS   dns
qui-saura.com.  IN   A   87.98.150.XX
www.qui-saura.com.    IN   CNAME    qui-saura.com.


Alors :
- À la 2° ligne :  $TTL permet d'indiquer la durée, en secondes, pendant laquelle les enregistrements devront être gardés par les autres serveurs DNS.
- La 3° ligne doit être de la forme : zone IN SOA serveurMaitre email
la zone est désignée par @ ( on aurait pu le remplacer par qui-saura.com. )
le serveurMaitre est dns.qui-saura.com.
le mail du responsable de l'espace de noms est root.qui-saura.com
- Ensuite, les options entre parenthèses :
 numéro de serie : est du type AAAA/MM/JJ/NM où NM désigne le numéro de la modification ( on l'incrémente à chaque changement )
 rafraichissement : le temps en seconde avant que le serveur esclave questionne le serveur maître afin de voir si une modification a été effectuée.
 retentative : si le serveur maître ne répond pas, le temps, en seconde, avant que le serveur esclave retente un rafraichissement .
expiration : quand le serveur maître ne répond plus, durée en seconde après laquelle les serveurs esclaves cessent de répondre aux requêtes de l'espace de nom .
TTL minimum : comme le TTL à la 2° ligne . La différence c'est ce silence .. mais en fait  la ligne 2 est optionnelle : si elle n'est pas présente alors on prend cette durée .

- La ligne 10 indique le serveur de nom faisant autorité pour la zone, ici on l'appelle dns ( cf ligne 3 )

- La ligne 11 fait la résolution de noms ( FQDN => IP ).

- La ligne 12 fait un aliasredirige www.qui-saura.com. sur qui-saura.com. ).

Voilà , il nous reste plus qu'à démarrer le service :

service named start


et c'est terminé.