Servidor DNS dos en uno con Bind


Este tutorial muestra cómo configurar el servidor DNS Bind9 para servir a una red interna y una red externa, al mismo tiempo con diferentes resoluciones de nombres/IP. Para lograr esto se utiliza una nueva caracteristica de Bind9 llamada «view» o vista.

Esto nos puede servir de gran ayuda cuando tenemos un servidor en la red de nuestra casa y queremos que resuelva la IP publica del servidor para las solicitudes que vienen desde Internet y que nos resuelva la IP interna para cuando lo solicitamos nosotros.

Para ello debemos modificar nuestro named.conf y añadir el siguiente codigo:

acl internals {
   127.0.0.0/8;
   192.168.1.0/24;
};

Con esto lo que queremos decir es que la ACL internals son las IPs 127.0.0.0/8 y todo el rango de IPs de la subred 192.168.1.0. De momento vamos a seguir configurando nuestro DNS.

A continuación añadimos algo similar a lo siguiente:

view "internal" {
   match-clients { internals; };
   recursion yes;
   zone "example.com" {
      type master;
      file "/etc/bind/internals/db.example.com";
   };
};
view "external" {
   match-clients { any; };
   recursion no;
   zone "example.com" {
      type master;
      file "/etc/bind/externals/db.example.com";
      allow-transfer { slaves; };
   };
};

Con esto ultimo lo que hemos querido decir, es que la vista internal solo pueden acceder los clientes (match-clients) que estan en la ACL internals y la vista external es el resto de clientes.

Con esto podemos decirle que al mismo dominio (dominio.com) coja un archivo distinto para cada una de las consultas y asi pueda resolver de una forma u otra.

A parte de lo interesante que es esto, tambien hay que decir que a los clientes de la vista internal les permitimos recursion DNS, es decir, que si solicitamos la IP de google.es nos la dara, pero la recursion de la vista external no esta permitida, por lo que si un cliente desde Internet nos pide cual es la IP de google.es no se la daremos. De esta forma configuraremos nuestros equipos de la red local para que su servidor DNS sea nuestro servidor Bind y este nos resuelva todos los DNS.

Solo cabe recalcar que hay que poner primero la vista internal y despues la external, ya que si lo hiciesemos al reves como el match-clients de la vista external es any (cualquiera) nos resolveria ese primero, ya que es el que primero esta.

Share
Javier Rodriguez Escrito por:

Sé el primero en comentar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *