El manual fue realizado sobre una máquina con sistema operativo Linux Debian Squeeze.
Empezamos:
Paso 1.-Instalamos el servidor DNS bind9 y las dnsutils que nos harán falta para la comprobación de funcionamiento con el comando dig:
aptitude install bind9 dnsutilsPaso 2.- Configuramos bind9 en la máquina “goku” que será master del dominio “example.com”. Para ello comenzamos añadiendo la zona directa y la zona inversa del servidor en el fichero /etc/bind/named.conf.local:
include "/etc/bind/zones.rfc1918"; zone "example.com" { type master; file "/var/cache/bind/example.com.db"; allow-update {key "rndc-key";}; notify yes; }; zone "0.0.10.in-addr.arpa" { type master; file "/var/cache/bind/10.0.0.db"; allow-update {key "rndc-key";}; notify yes; };
Comprobaremos si existen errores de sintaxis (esto no quiere decir que este bien configurado pero si que está bien escrito) con el siguiente parser:
/etc/bind# named-checkconf named.conf.local
*rndc-key es la clave que utilizarán para comunicarse entre el servidor DNS y DHCP para poder realizar las actualizaciones dinámicas. Este fichero contiene lo siguiente:
key "rndc-key" { algorithm hmac-md5; secret "NJAvKcLLKI5pUyr5SdWc7A=="; };
Paso 3.- Los ficheros que definirán con detalle las asociaciones entre IP y nombre, tanto de la zona directa como de la inversa, se encuentran en el directorio /var/cache/bind/.
Estos ficheros contienen lo siguiente (hay que tener cuidado de no dejarnos un espacio o un caracter por este fichero, si esto ocurre fallará, con lo cual aconsejo copiar a mano lo siguiente):
Zona directa: /var/cache/bind/example.com.db
$ORIGIN . $TTL 86400 example.com IN SOA goku.example.com. root.goku.example.com. ( 1 ; 604800 ; 21600 ; 3600 ; 604800 ; ) ; @ NS goku.example.com. $ORIGIN example.com. goku A 10.0.0.1 $TTL 1800 ; 30 minutes krilin A 10.0.0.2 TXT "0034c01d37441096e65f6c71820527d786" $TTL 86400 ; 1 day localhost A 127.0.0.1Para comprobar posibles errores de sintaxis utilizaremos el siguiente parser:
/var/cache/bind# named-checkzone example.com example.com.db
Zona inversa: /var/cache/bind/10.0.0.db
$ORIGIN 0.0.10.in-addr.arpa. $TTL 86400; @ IN SOA goku.example.com. root.goku.example.com. ( 1 ; 604800 ; 3600 ; 604800 ; 21600 ; ) ; @ NS goku.example.com. 1 IN PTR goku.example.com.Por último para comprobar errores de sintaxis de la zona inversa utilizaremos este parser:
/var/cache/bind# named-checkzone 0.0.10.in-addr.arpa 10.0.0.dbPaso 4.- Llegados a este punto, haremos comprobaciones de que el dns funciona correctamente mediante el comando dig:
Comprobación Zona directa:
dig @10.0.0.1 goku.example.com
Comprobación Zona inversa:
dig -x 10.0.0.1
Hasta este momento hemos configurado un servidor DNS estático y hemos comprobado que funciona, ahora nos disponemos a montar el servidor DHCP para integrarlos y hacer un servidor DNS-Dinámico.
Paso 5.- Instalamos el servidor DHCP:
aptitude install isc-dhcp-server
Paso 6.- Editamos el fichero de configuración del servidor DHCP:
nano /etc/dhcp/dhcpd.conf #Lineas para la actualización del servidor DNS server-identifier goku; ddns-updates on; ddns-update-style interim; ddns-domainname "example.com."; ddns-rev-domainname "in-addr.arpa."; deny client-updates; include "/etc/bind/rndc.key"; zone example.com. { primary 127.0.0.1; key rndc-key; } zone 0.0.10.in-addr.arpa. { primary 127.0.0.1; key rndc-key; } #Configuración general DHCP default-lease-time 3600; max-lease-time 86400; authoritative; subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.1 10.0.0.127; option domain-name "example.com."; option domain-name-servers 10.0.0.1; option broadcast-address 10.0.0.255; }Paso 7.- Puesta en marcha. Pararemos ambos servidores y vaciaremos los ficheros de peticiones dhcp que se pudiesen haber generado:
/etc/init.d/bind9 stop /etc/init.d/dhcp3-server stop echo "" > /var/lib/dhcp3/dhcpd.leases echo "" > /var/lib/dhcp3/dhcpd.leases~Arrancamos los servicios de nuevo:
/etc/init.d/bind9 start /etc/init.d/dhcp3-server startPaso 8.- En el cliente (krilin) editaremos el fichero /etc/dhcp/dhclient.conf y le diremos que envíe su nombre junto con la petición DNS:
send host-name krilin;Así el DHCP y el DNS sabrán quien realiza la petición.
Paso 9.- Comprobamos que el DHCP concede IP a krilin automáticamente:
dhclient
Paso 10.- Echaremos un vistazo al log del servidor (goku) para comprobar que se están realizando las peticiones y las respuestas correctamente:
tail -f /var/log/syslog
Paso 11.- Hacemos ping desde goku hacia krilin y comprobamos que aun cambiando la IP de krilin se realiza con éxito:
ping krilin
Y al fin tenemos nuestro servidor DNS Dinámico funcionando.
Espero que les sea útil.
No hay comentarios:
Publicar un comentario