Practica dns1
Practica dns1
Practica dns1
Servidor maestro
En este modo de funcionamiento, nuestro servidor se comporta como un auténtico servidor DNS para
nuestra red local. Atenderá directamente a las peticiones de resolución de direcciones pertenecientes a
la
red local y reenviará a servidores DNS externos las peticiones del resto de direcciones de Internet.
Un servidor esclavo actuará como un servidor espejo de un servidor DNS maestro. Permanecerá
sincronizado con el maestro. Se utilizan para repartir las peticiones entre varios servidores aunque las
modificaciones solo se realicen en el maestro. En redes locales salvo por razones de disponibilidad, es
raro
que exista la necesidad de tener dos servidores DNS ya que con uno será suficiente.
En este modo de funcionamiento, nuestro servidor se comporta como si fuera un auténtico servidor
DNS
para nuestra red local aunque realmente no sea un servidor DNS propiamente dicho. Cuando recibe una
petición de DNS por parte de un cliente de nuestra red, la trasladará a un DNS maestro que puede estar
en
nuestra red o fuera, almacenará en una memoria caché la respuesta y a la vez la comunicará a quien
hizo la
petición. Si un segundo cliente vuelve a realizar la misma petición, como nuestro servidor tiene la
respuesta
almacenada en su memoria caché, responderá inmediatamente sin tener que cursar la petición a ningún
servidor DNS de Internet.
Disponer de un servidor caché DNS en nuestra red local aumenta la velocidad de la conexión a Internet
pues cuando navegamos por diferentes lugares, continuamente se están realizando peticiones DNS. Si
nuestro caché DNS almacena la gran mayoría de peticiones que se realizan desde la red local, las
respuestas de los clientes se satisfarán prácticamente de forma instantánea proporcionando al usuario
una
sensación de velocidad en la conexión.
El archivo de configuración del DNS es el archivo /etc/bind/named.conf, pero este hace referencia a
otros
cuantos archivos como por ejemplo:
Por defecto, al instalar el paquete bind está preconfigurado como servidor caché DNS. Tan solo será
necesario editar el archivo /etc/bind/named.conf.options y en la sección forwarders añadir las IPs de
dos servidores DNS donde redirigir las peticiones DNS:
Normalmente los servidores que aparecen aquí son los que nos proporciona nuestro ISP.
nuestro servidor sera capaz de resolver peticiones internas tanto directas como inversas, para ello es
necesario añadir en el archivo de configuracion 7etc/bind/named.conf.local la especificacion de
maestro para el dominio y para la resolucion inversa:
// Añadir en /etc/bind/named.conf.local
// Archivo para búsquedas directas
zone "lol.virtual.gcap.net" {
type master;
file "/etc/bind/lol.db";
};
// Archivo para búsquedas inversas
zone "112.168.192.in-addr.arpa" {
type master;
file "/etc/bind/192.rev";
};
Evidentemente sera necesario crear los archivos lol.db y 192.rev en el que se recogera la asociacion
entre nombres y direcciones ip de nuestra red, en un sentido y en otro respectivamente.
Archivo de busqueda directa.
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
;
@ IN NS lol.virtual.gcap.net.
www IN A 192.168.112.110
dns IN A 192.168.112.110
mail IN A 192.168.112.110
ftp IN A 192.168.112.110
vps IN A 192.168.112.110
ubuntu IN A 192.168.112.201
dns2 IN A 192.168.112.7
Las primeras líneas son unos parámetros relacionados con la actualización del DNS (número de serie y
periodos de actuación). (NS = Name Server) (MX = Mail eXchange). Las siguentes líneas especifican
las IPs de los distintos PCs componentes del dominio (A = Address).
;
$TTL 86400
@ IN SOA lol.virtual.gcap.net. root.lol.virtual.gcap.net. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
110 IN NS dns.lol.virtual.gcap.net
110 IN PTR www.lol.virtual.gcap.net
110 IN PTR ftp.lol.virtual.gcap.net
110 IN PTR vsp.lol.virtual.gcap.net
201 IN PTR ubuntu.lol.virtual.gcap.net
7 IN PTR dns2.lol.virtual.gcap.net
Una vez configurado nuestro servidor dns, debemos indicarle a nuestro servidor linux, que el servidor
dns es el mismo, y que el subdominio es “lol.virtual.gcap.net”y esto se hace modificando el archivo
/etc/resolv.conf
Una vez hecho esto reiniciamos el demonio de bind9 para que se cargen las modificaciones realizadas:
// Arranque del servidor DNS
# /etc/init.d/bind9 restart
si todo se ha realizado correctamente, con las herramientas dig, host, o nslookup realizamos las pruebas
correspondientes:
Si deseamos configurar nuestro servidor DNS para que actue como esclavo de un servidor DNS
maestro, la configuración es mucho más sencilla que en el caso anterior ya que únicamente será
necesario indicar en el DNS esclavo quién es el servidor DNS maestro, y en el DNS maestro, la IP del
DNS esclavo
IN NS dns2.lol.virtual.gcap.net
de esta forma indicamos que existen mas servidores dns para esta zona, lo mismo haremos con el
archivo "192.rev" de la zona inversa:
7 IN NS dns2.lol.virtual.gcap.net
En el archivo /etc/bind/named.conf.local del servidor esclavo se debe indicar tambien que se trata
de un servidor esclavo y quien es el maestro.
// Añadir en /etc/bind/named.conf.local del esclavo
zone "lol.virtual.gcap.net" {
type slave;
file "/etc/bind/lol.db";
masters { 192.168.112.110; };
};
zone "112.168.192.in-addr.arpa" {
type slave;
file "/etc/bind/192.rev";
masters { 192.168.112.110; };
};
Tambien podemos sincronizar los servidores maestro y esclavos de manera que cualquier cambio en la
zona quede reflejado en todos servidores dns's de la zona. Est ose consigue añadiendo la linea "also-
notify"
De ésta forma dispondremos en la red de un servidor DNS esclavo que podrá satisfacer las
peticiones DNS al igual que lo haría el maestro. Es interesante si el número de peticiones es muy
elevado y se requiere distribuir la carga entre los dos servidores, o si deseamos disponer de
servicio DNS de alta disponibilidad de forma que aunque el servidor maestro deje de funcionar, el
servidor esclavo podrá seguir ofreciendo el servicio.
Cada vez que hagamos un cambio en los archivos /etc/bind/ieslapaloma.db y /etc/bind/192.rev del
maestro, debemos acordarnos de actualizar el parámetro serial (incrementar en una unidad) para
que los dns dependientes del maestro sepan que ha cambiado y actualicen su información para
mantenerse perfectamente sincronizados
Una vez realizado esto ocurre algo que es propio de las nuevas distribuciones de Ubuntu, y es que
el demonio apparmor evita que se hagan modificaciones en la carpeta /etc/bind quitandole al
grupo bind los permisos de escritura sobre dicha carpeta, esto lo hace por motivos de seguridad
para que si en algun momento alguien logra tener acceso al sistema con el usuario bind, este no
pueda realizar modificaciones en los archivos de configuracion dns antes mencionados.
De esta forma lo primero que tenemos que hacer es, en el servidor esclavo, darle al grupo bind
permisos de escritura sobre la carpeta /etc/bind:
Con esto garantizamos que al iniciar el demonio bind9, este sincronize con el servidor maestro
para recibir un archivo "lol.db" actualizado, en caso de que se hayan realizado modificaciones en
la zona.
# vim:syntax=apparmor
# Last Modified: Fri Jun 1 16:43:22 2007
#include <tunables/global>
/usr/sbin/named {
#include <abstractions/base>
#include <abstractions/nameservice>
capability net_bind_service,
capability setgid,
capability setuid,
capability sys_chroot,
capability sys_resource,
Para hacer efectivos estos cambios, reiniciamos el demonio apparmor y luego el demonio bind9
Una vez hecho esto, para comprobar que se a llevado a cabo la sincronizacion, lo podemos
comprobar facilmente en los log del sistema.
cat /var/log/syslog