Configurar un DNS de horizonte dividido maestro/esclavo con Bind

Opciones de la sentencia view

Contents

Se puede colocar casi todo lo que la declaración de opciones soporta. Cosas como la recursividad, el tipo (es decir, si actuar como maestro o esclavo), las zonas, las firmas, etc.

acl "ejemploacl" { 10.10.20.0/24; };
view "ejemplovista" {
        match-clients { "ejemploacl"; };
		zone "prueba.ejemplo.edu.ar" {
				type master;
				file "prueba.ejemplo.edu.ar.zona";
		};
};

Otro caso perfecto de uso de las vistas es permitir la recursión sólo para nuestros clientes internos y negar la recursión para los clientes externos. Esto se puede lograr fácilmente usando views. Esto se debe a que views soporta la opción de recursión (se puede permitir o negar la consulta dns recursiva a una dirección de origen particular)
También la sentencia match-clients soporta una entrada comodín llamada any, que es realmente útil para hacer vistas que se apliquen a todo el mundo. Como el ejemplo que se muestra a continuación…

acl "ejemploacl" { 10.10.20.0/24; };
view "vistainterna" {
        match-clients { "ejemploacl"; };
		recursion yes;
		zone "prueba.ejemplo.edu.ar" {
				type master;
				file "prueba.ejemplo.edu.ar.int.zona";
		};
};
view "vistaexterna" {
		match-clients { any; };
		recursion no;
		zone "prueba.ejemplo.edu.ar" {
				type master;
				file "prueba.ejemplo.edu.ar.ext.zona";
		};
};

Es una medida de seguridad común para permitir la recursión sólo a los clientes conocidos. Esto se debe a que la recursión plantea muchos riesgos de seguridad.
De contar con servidores distribuidos en diferentes ubicaciones geográficas, para proporcionar el mismo servicio, se puede utilizar la sentencia views para hacer que el dns responda con la dirección IP del servidor más cercano al solicitante. Usando esto se puede obtener una red distribuida con latencia reducida, similar a una red CDN. Basta añadir los rangos de IP públicas de la ubicación/país de origen en la lista match-client o en la lista acl.