Split DNS avec Bind
Par Dju » 26 novembre 2009 (21:59) - Serveur
Voici une petite astuce qui peut être très pratique quand vous gèrez vos DNS avec Bind, le Split DNS
Split DNS ? kézako ? à tes souhaits !
C'est en fait tout simple. Sous ce terme technico-anglo-barbare, se cache une configuration permettant d'avoir des adressages différents suivant la provenance de la requête DNS.
Et voici d'ailleurs un exemple concret, qui est en place sur mon routeur perso, et qui marche à merveille
Supposons que vous avez un nom de domaine domaine.com, hébergé chez vous
Quand vous tapez domaine.com, d'ou que ce soit, cela vous donne toujours l'adresse IP publique.
Mais vous souhaitez que quand vous êtes chez vous, ça vous donne l'adresse interne de votre serveur web
No problemo !
dans votre fichier named.conf, vous avez normalement quelques lignes qui décrivent votre zone :
zone "domaine.com" { type master; file "/etc/bind/db.domaine.com"; };
et votre fichier db.domaine.com qui doit ressembler à ceci
$TTL 86400 @ IN SOA ns1.domaine.com. root.domaine.com ( 2009100101 8H 2H 1W 1D ) @ IN NS ns1.domaine.com. @ IN NS ns2.domine.com. ns1 IN A 1.2.3.4 ns2 IN A 2.3.4.5 @ IN A 1.2.3.4 www IN CNAME domaine.com.
Donc de chez vous, vous avez une machine faisant serveur web, dont l'adresse IP interne est (par exemple) 192.168.0.2
Et vous souhaitez que depuis votre ordinateur, www.domaine.com donne 192.168.0.2 plutôt que votre adresse ip publique. Voici comment faire
1/ Edition du fichier named.conf
view "internal" { match-clients { 127.0.0.1; 192.168.0.0/24; } recursion yes; zone "domaine.com" { type master; file "/etc/bind/INTERNAL/db.domaine.com"; }; }; view "external" { match-clients { any; }; recursion no; zone "domaine.com" { type master; file "/etc/bind/EXTERNAL/db.domaine.com"; }; };
2/ Edition du fichier INTERNAL/db.domaine.com
$TTL 86400 @ IN SOA ns1.domaine.com. root.domaine.com ( 2009100101 8H 2H 1W 1D ) @ IN NS ns1.domaine.com. @ IN NS ns2.domine.com. ns1 IN A 192.168.0.254 ns2 IN A 192.168.0.253 @ IN A 192.168.0.2 www IN CNAME domaine.com. nas IN A 192.168.0.10
Vous voyez ici que nous avons attribué l'adresse 192.168.0.2 à l'entrée domaine.com, et même défini une entrée supplémentaire "nas.domaine.com", qui ne fonctionnera qu'en interne
3/ Conclusion
Grâce à la commande "view", on sépare les zones suivant la provenance de la requète DNS.
Ainsi, lorsque depuis un poste en interne, en adressage 192.168.0.x, vous demanderez www.domaine.com, bind ira chercher le résultat dans le fichier "INTERNAL/db.domaine.com"
Et de l'exterieur, bind donnera toujours les adresses ip publiques
Cela vous permet d'avoir ainsi des entrées DNS personnalisées, accessibles uniquement de l'intérieur de votre réseau local.
sources :
http://www.laboratoire-microsoft.org/articles/win/splitdns/1/ http://www.bind9.net/manual/bind/9.3.1/Bv9ARM.ch04.html http://www.supinfo-projects.com/fr/2005/securite_dns/
Grand merci pour cette astuce, jusqu'à présent j'ajoutais une entrée dans le fichier hosts, mais du coup il faut y repenser lors d'un changement de machine ou une mise à jour violente par réinstallation alors que dans l'exemple donné ce sera automatique.
ouais.. les hosts peuvent être pratiques, mais faut tous les ré-éditer dès qu'on change un truc. ça devient vite ingèrable![;)](/themes/BlueSky/smilies/wink.gif)
Fil des commentaires de ce billet
URL de rétrolien : https://blog.crifo.org/trackback/3