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/