A quoi ça sert?
Un serveur DNS, Domain Name Server, permet d’accéder à Internet très facilement. En effet, il est plus simple de retenir une simple adresse (au hasard, www.google.fr) que son adresse IP (173.194.40.143 ; 173.194.40.151 ; 173.194.40.152 ; 173.194.40.159 soit 4 adresses IP juste pour www.google.fr !!).
Nous allons voir ici comment installer son propre serveur DNS.Prérequis
On suppose que la machine est correctement configurée pour accéder à Internet et possède une adresse IP fixe.
Installation comme serveur DNS Principal
Attribuez un nom à la machine. Pour ce faire, modifiez le fichier /etc/hostname avec le nom complet du serveur (exemple : srv-dns.exemple.org). Exécutez la commande /etc/init.d/hostname.sh start pour lancer le service hostname.
Vérifiez que le fichier /etc/host.conf est de la forme suivante :
order hosts, bindmulti on |
Modifiez ensuite le fichier /etc/hosts afin de préciser le serveur DNS à utiliser pour la machine.
domain exemple.orgsearch exemple.org nameserver 127.0.0.1nameserver 8.8.8.8 |
Pour les sections domain et search, précisez votre nom de domaine. Pour la section nameserver, précisez l’adresse IP de votre serveur DNS. Le temps de l’installation, laissez 8.8.8.8 afin d’avoir un accès à Internet.
Redémarrez la couche réseau avec la commande service networking restart.
Ensuite, installez le serveur DNS avec apt-get install bind9.
Voilà, votre serveur DNS est installé, mais pas correctement configuré.
Mise en place de la zone de recherche directe
Une zone de recherche directe met en relation le nom de la machine et son adresse IP (contrairement à la zone de recherche indirecte où c’est l’adresse IP qui est mise en relation avec le nom de la machine).
Se placer dans le dossier /etc/bind , et copier le fichier db.local en db.exemple.org avec la commande cp db.local db.exemple.org. Modifier ce fichier comme suit :
;; BIND data file for eth0 interface ;$TTL 604800
@ IN SOA srv-dns.exemple.org. root.exemple.org. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 6048000 ) ; Negative Cache TTL ; @ IN NS srv-dns.exemple.org. Srv-dns IN A ip_machine |
Mise en place de la zone de recherche indirecte
Se placer dans le dossier /etc/bind , et copier le fichier db.127 en db.exemple.org.inv avec la commande cp db.127 db.exemple.org.inv . Modifier ce fichier comme suit :
;; BIND reverse data file for eth0 interface ;$TTL 604800
@ IN SOA srv-dns.exemple.org. root.exemple.org. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 6048000 ) ; Negative Cache TTL ; @ IN NS srv-dns Ip_machine IN PTR srv-dns.exemple.org |
Déclaration des fichiers
Modifier le fichier named.conf.local
zone « exemple.org » { type master ; file « /etc/bind/db.exemple.org » ; forwarders {} ;
} ; zone « xxx.xxx.xxx.in-addr » { type master ; file « /etc/bind/db.exemple.org.inv » ; forwarders { } ; } ; |
Enfin, modifier le fichier named.conf.options et repérer la ligne :
// forwarders {// xxx.xxx.xxx.xxx ;// } ; |
Décommenter les lignes et remplacer le xxx.xxx.xxx.xxx par une adresse IP de DNS (par exemple 8.8.8.8 pour le DNS géré par Google ou 213.186.33.99 pour celui géré par OVH).
Terminer par un service bind9 restart.
Vérifier vos fichiers de configuration à l’aide de la commandes named-checkconf -z .
Pour vérifier le bon fonctionnement de votre serveur, donnez à un poste client l’adresse IP de votre serveur dans sa configuration DNS et ouvrez une invite de commande (Démarrer –> cmd sous Windows 7) et tapez nslookup srv-dns.exemple.org. Si vous obtenez l’adresse IP du serveur, tout fonctionne.