Une configuration split DNS est la capacité d’un serveur DNS à répondre des informations spécifiques selon l’origine des requêtes DNS, à savoir l’adresse IP/nom d’hôte des clients. Il est ainsi possible d’utiliser des zones réservées/spécifiques et au final cumuler la fonction de DNS interne et externe sur le même serveur.

Concernant le serveur bind, l’utilisation des vues permet de faire un split DNS interne/externe sur la même instance. Voici la configuration type :

acl internal {
   localhost;
   192.168.1.0/24;
};

view "internal-view" {
   match-clients {
      internal;
   };

   allow-query {
      127.0.0.1; 192.168.1.0/24;
      ::1;;
   };

   allow-recursion {
      127.0.0.1; 192.168.1.0/24;
      ::1;
   };

   include "/etc/namedb/named.conf.internal";
};

view "external-view" {
   match-clients {
      any;
   };

   allow-query {
      any;
   };
   allow-query-cache {
      none;
   };
   allow-recursion {
      none;
   };

   include "/etc/namedb/named.conf.external";
};

Deux vues sont définies : une interne et une externe. Les zones internes sont déclarées ensuite dans le fichier /etc/namedb/named.conf.internal ; les zones externes dans /etc/namedb/named.conf.external. Une même zone peut évidemment être déclarée dans chaque vue, mais avec un fichier de zone différent pour distinguer le côté interne / externe. Une restriction ACL sur la vue internal-view limite son accès seul aux clients du LAN 192.168.1.0. La vue external-view n’a quant à elle aucune limitation du fait de l’ACL any. Un client externe n’obtient donc que les informations des zones externes. Toutefois, un client interne peut obtenir les informations des zones externes si elles ne sont pas déclarées dans les zones internes.