Vous voulez que votre serveur linux fasse serveur dns, pour accéder aux machines de votre réseau local avec un nom et pas avec une adresse Ip.
Votre serveur DNS hébergera donc votre propre zone.
Il devra également transmettre les requêtes DNS des zonnes qu'il ne gère pas à un autre serveur dns, celui de votre FAI par exemple.
On va commencer par installer le serveur DNS de référence, BIND (pour Berkeley Internet Name Domain) de l'Internet Software Consortium.
Pour cela taper
sudo apt-get install bind9
Lien vers le fichier : cliquez ici
La configuration principale de BIND9 est effectuée dans les fichiers suivant :
/etc/bind/named.conf
/etc/bind/named.conf.options
/etc/bind/named.conf.local
On va configurer un forwarder, cad un serveur DNS qui saura répondre aux requêtes que votre serveur ne sait pas résoudre, cad en gros toutes sauf celles de la zone que l'on va héberger pour nos machines locales.
Pour cela on va modifier named.conf.options avec la commande
sudo nano /etc/bind/named.conf.options
Lien vers le fichier : cliquez ici
Décommentez le bloc fowarders et indiquez par exemple l'ip du serveur dns qui est donné par le serveur dhcp de votre box. Chez free c'est 192.168.0.254
Vous pouvez aussi mettre l'ip d'un dns de google comme 8.8.8.8
forwarders {
192.168.0.254;
8.8.8.8;
};
Lien vers le fichier : cliquez ici
Pour héberger notre propre zone en tant que serveur maître, on va modifier le fichier named.conf.local avec la commande
nano /etc/bind/named.conf.local
Lien vers le fichier : cliquez ici
On va déclarer une zone nommée local.lan
Pour cela entrer
zone "local.lan" IN {
type master;
file "/etc/bind/local.lan";
};
Lien vers le fichier : cliquez ici
Puis il faut créer le fichier /etc/bind/local.lan
qui va avec. Pour cela on va copier db.local qui sert de référence.
Taper
sudo cp /etc/bind/db.local /etc/bind/local.lan
Lien vers le fichier : cliquez ici
Modifiez la zone.
Ici on définie le SOA (Start Of Authority). Pour cela on déclare ns (pour Name server). On déclare aussi un second nom, ici root.
Je ne sais pas à quoi il sert mais si on ne met pas ce second nom cela ne fonctionne pas.
Après avoir défini le SOA, toujours ns, on déclare aussi un ou plusieurs enregistrementq de type A.
Un enregistrement de type A permet de faire la correspondance entre un nom DNS et une adresse IP .
Dans cet exemple 2 enregistrements de type A pointent sur la même ip.
Vous remarquerez aussi que local.lan a été modifié en lan.
Aussi l'enregistrement domo répond à domo.lan
Pour éviter que vos tests soient faussés car ils passeront par le dns de l'ipv6, modifiez /etc/bind/named.conf.options
avec
nano /etc/bind/named.conf.options
Lien vers le fichier : cliquez ici
Au niveau de listen-on-v6 passer { any; } à { ::1; };
De là, depuis une autre machine vous pouvez normalement tester la résolution de ns.local.lan
Par exemple, sur une machine windows, tapez dans une invite de commande
nslookup
Lien vers le fichier : cliquez ici
Indiquez à nslookup qu'il doit utiliser votre serveur linux comme serveur dns.
Le mien à l'ip 192.168.0.23, donc je tape
server 192.168.0.23
Lien vers le fichier : cliquez ici
Ici on voit que l'ip associée à ns.local.lan a bien été trouvée et affichée
On peut tester le dns avec la commande dig qu'on peut obtenir avec
sudo apt-get install dnsutils
Lien vers le fichier : cliquez ici
L'aide de la commande dig
Dans la Answer section, on voit qu'on a trouvé l'ip
Pour que vos périphériques prennent en compte votre nouveau serveur DNS, il faut leur dire de l'utiliser. Pour cela il faut modifier l'ip des serveurs DNS fournies en option par votre DHCP.
Dans mon cas l'ip actuelle fournie pour le DNS par le DHCP est 192.168.0.254.
Mon server Linux qui fait serveur DNS a l'ip 192.168.0.23
Donc en premier lieu j'ai indiqué au serveur DHCP de ne plus utiliser 192.168.0.254 mais 192.168.0.23.
Chez Free cela ressemble à ceci :
A noter que tout fonctionnait bien sur mes ordinateurs pour la résolution, sauf sur mon tel Android.
J'ai dû installer Network Info II pour vérifier ce qu'il prenait en ip pour le DNS. Je n'ai pas vu de soucis.
Puis j'ai installé Ping & Net pour me rendre compte que ce con utilisait la second ip du server dns, cad celui de l'opérateur, qui ne connait pas mon dns local bien sûr.
Seul moyen trouvé actuellement : ne mettre que l'ip de mon DNS local, et là cela fonctionne.
Cela veut dire que dès qu'il est éteind, plus d'internet à la maison car plus de résolution de nom, et çà c'est pas cool.
Pages Web
Site Web | Description |
---|---|
doc.ubuntu-fr.org | Bind9 |
Linux.developpez.com | Monter un serveur DNS |
Article(s) en relation(s)