Ceci est une ancienne révision du document !
Bind (Berkeley Internet Name Domain) est le service DNS le plus utilisé. Il peut être utilisé pour héberger une zone primaire ou tout simplement comme cache DNS.
Il suffit d'installer le paquet :
Les fichiers de configuration sont situés dans le répertoire /etc/bind/.
Pour que le serveur qui héberge le bind utilise son service pour la résolution, il faut modifier /etc/resolv.conf ainsi :
nameserver 127.0.0.1
Par défaut le service est configuré en proxy et interroge directement les root DNS. Cette configuration permet de ne pas dépendre des DNS opérateurs.
La configuration par défaut dans named.conf.default-zones est la suivante :
// prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; };
Il est également possible de configurer un forwarding vers d'autres serveurs DNS.
Voici un exemple de configuration à ajouter à named.conf.local :
zone "." { type forward; forward only; forwarders { 192.168.10.10; } ; };
Voici comment déclarer une redirection pour un domaine particulier :
zone "thisdomain.com" { type forward; forward only; forwarders { 10.0.10.11; 10.0.10.12; } ; };
Il s'agit de la principale fonction de Bind : déclarer des zones publiques ou privées.
Cela nécessite deux étapes :
L'exemple suivant montre la création de la zone bouthors.fr.
Voici un exemple de fichier de zone pour bouthors.fr, nous avons créé db.bouthors.fr :
$ORIGIN . $TTL 300 ; 5 minutes bouthors.fr IN SOA dc1.bouthors.fr. matthieu.bouthors.fr. ( 1110210001 ; serial 604800 ; refresh (1 week) 86400 ; retry (1 day) 2419200 ; expire (4 weeks) 300 ; minimum (5 minutes) ) NS dc1.bouthors.fr. A 88.174.63.25 MX 10 mail.bouthors.fr. $ORIGIN bouthors.fr. matthieu CNAME www www A 88.174.63.25 mail CNAME ghs.google.com. dc1 A 88.174.63.25
Un fichier de zone est composée d'enregistrement de différents type (SOA, NS, A, MX, …). Quelques explications :
A noter que les enregistrement textes sont relatifs à la zone par défaut, il faut ajouter un ”.” à la fin pour indiquer qu'il s'agit de noms absolus.
Ensuite, il faut renseigner la zone dans Bind, pour cela la modification de /etc/bind/named.conf.local est le moyen le plus propre :
zone "bouthors.fr" { type master; file "/etc/bind/db.bouthors.fr"; };
Pour appliquer les modifications, il faut redémarrer bind :
/etc/init.d/bind9 restart
Pour ajouter votre propre résolution, il faut à nouveau créer un fichier de zone inverse, par exemple db.192.168 :
$ORIGIN . $TTL 60 ; 1 minute 168.192.in-addr.arpa IN SOA dc1.bouthors.fr. matthieu.bouthors.fr. ( 1110210001 ; serial 604800 ; refresh (1 week) 86400 ; retry (1 day) 2419200 ; expire (4 weeks) 60 ; minimum (1 minute) ) NS dc1.bouthors.fr. $ORIGIN 10.168.192.in-addr.arpa. 1 PTR rt1.bouthors.fr. 2 PTR dc1.bouthors.fr.
Ensuite on ajouter la zone à named.conf.local :
zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.192.168"; };
Le principe du serveur secondaire est de se synchroniser sur le primaire afin d'avoir un serveur de secours.
Lorsqu'il y a une modification du primaire, celui-ci notifie les secondaires, la zone est transférée et stockée dans un fichier temporaire.
Le serial est utiliser pour identifier la révision du fichier, il est important de l'incrémenté à chaque modification.
Par défaut le primaire autorise tous les transferts et notifie automatiquement les serveurs définis par les enregistrements NS.
Il est cependant possible de configurer manuellement ces éléments, voici un exemple :
zone "bouthors.fr" { type master; file "/etc/bind/db.bouthors.fr"; allow-transfer {192.168.10.3;}; also-notify {192.168.10.3;}; };
La déclaration d'une zone slave sur le deuxième serveur est également relativement simple :
zone "bouthors.fr" { type slave; file "/var/cache/bind/db.bouthors.fr"; masters {192.168.10.2;}; };
Il faut choisir un répertoire modifiable et définir l'ip du primaire.
Il est possible de sécuriser les échanges entre serveurs (update, transfert) avec TSIG.
Les étapes sont :
La génération de la clef se fait avec la commande dnssec-keygen (remplacer dc1-dc2 par les noms de vos serveurs) :
dnssec-keygen -a hmac-md5 -b 128 -n HOST dc1-dc2
:!:Sous VMWare le résultat n'arrive pas rapidement (cf bug https://bugs.launchpad.net/ubuntu/+source/bind9/+bug/650721), le plus simple est de générer de l'activité disque par exemple avec “find /”).
Deux fichiers sont alors créés avec les extensions .key et .private
Voir Configuration Réseau